← Home
package main

import (
	"bufio"
	"fmt"
	"math/bits"
	"os"
)

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var t int
	fmt.Fscan(in, &t)
	for ; t > 0; t-- {
		var n int
		var a, b string
		fmt.Fscan(in, &n, &a, &b)

		var dir [20][20]bool
		var used [20]bool
		var undir [20][20]bool

		for i := 0; i < n; i++ {
			u := int(a[i] - 'a')
			v := int(b[i] - 'a')
			if u == v {
				continue
			}
			dir[u][v] = true
			used[u] = true
			used[v] = true
			undir[u][v] = true
			undir[v][u] = true
		}

		ans := 0
		var vis [20]bool

		for s := 0; s < 20; s++ {
			if !used[s] || vis[s] {
				continue
			}

			queue := make([]int, 0, 20)
			comp := make([]int, 0, 20)
			queue = append(queue, s)
			vis[s] = true

			for head := 0; head < len(queue); head++ {
				u := queue[head]
				comp = append(comp, u)
				for v := 0; v < 20; v++ {
					if undir[u][v] && !vis[v] {
						vis[v] = true
						queue = append(queue, v)
					}
				}
			}

			m := len(comp)
			if m == 1 {
				continue
			}

			pos := make([]int, 20)
			for i := 0; i < 20; i++ {
				pos[i] = -1
			}
			for i, v := range comp {
				pos[v] = i
			}

			inMask := make([]uint32, m)
			outMask := make([]uint32, m)

			for i, u := range comp {
				for v := 0; v < 20; v++ {
					if dir[u][v] {
						j := pos[v]
						if j >= 0 {
							outMask[i] |= 1 << j
							inMask[j] |= 1 << i
						}
					}
				}
			}

			limit := 1 << m
			acyclic := make([]uint8, limit)
			acyclic[0] = 1
			best := 0

			for mask := 1; mask < limit; mask++ {
				smask := uint32(mask)
				x := smask
				ok := false
				for x != 0 {
					lsb := x & -x
					i := bits.TrailingZeros32(lsb)
					prev := mask ^ int(lsb)
					if acyclic[prev] == 1 {
						if (outMask[i]&smask) == 0 || (inMask[i]&smask) == 0 {
							ok = true
							break
						}
					}
					x -= lsb
				}
				if ok {
					acyclic[mask] = 1
					pc := bits.OnesCount32(smask)
					if pc > best {
						best = pc
					}
				}
			}

			fvs := m - best
			ans += (m - 1) + fvs
		}

		fmt.Fprintln(out, ans)
	}
}