```go
package main
import "fmt"
func main() {
var n, m int
fmt.Scan(&n, &m)
var s string
fmt.Scan(&s)
swaps := make([][2]byte, m)
for i := 0; i < m; i++ {
var a, b string
fmt.Scan(&a, &b)
swaps[i][0] = a[0]
swaps[i][1] = b[0]
}
final_map := make([]byte, 26)
for i := 0; i < 26; i++ {
temp := byte('a' + i)
for _, sw := range swaps {
if temp == sw[0] {
temp = sw[1]
} else if temp == sw[1] {
temp = sw[0]
}
}
final_map[i] = temp
}
ans := make([]byte, n)
for i := 0; i < n; i++ {
idx := int(s[i] - 'a')
ans[i] = final_map[idx]
}
fmt.Println(string(ans))
}
```