import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int t = in.nextInt();
        for (int i = 0; i < t; i++) {
            int m = in.nextInt();
            int n = in.nextInt();

            char[][] mn = new char[m][n];
            List<WordFirstIndex> wordFirstIndexArray = new ArrayList<WordFirstIndex>();
            for (int j = 0; j < m; j++) {
                String line = in.next();
                mn[j] = line.toCharArray();
            }
            String word = in.next();
            char[] worChar = word.toCharArray();
            char wordFirst = worChar[0];
            for (int j = 0; j < m; j++) {
                for (int k = 0; k < n; k++) {
//                    System.out.println("j=" + j + ",k=" + k);
                    if (mn[j][k] == wordFirst) {
                        WordFirstIndex wordFirstIndex = new WordFirstIndex();
                        wordFirstIndex.x = j;
                        wordFirstIndex.y = k;
                        wordFirstIndexArray.add(wordFirstIndex);
                    }
                }
            }
            int inFirstWordCount = wordFirstIndexArray.size();

            int count = 0;
            for (int j = 0; j < inFirstWordCount; j++) {
                WordFirstIndex wordFirstIndex = wordFirstIndexArray.get(j);
                int x = wordFirstIndex.x;
                int y = wordFirstIndex.y;
                //单词长度
                int worCharLen = worChar.length;
                //向右
                if (y + worCharLen <= n) {
                    char[] match = new char[worCharLen];
                    for (int k = 0; k < worCharLen; k++) {
                        match[k] = mn[x][y + k];
                    }
                    if (word.equals(new String(match))) {
                        count++;
                    }
                }
                //向下
                if (x + worCharLen <= m) {
                    char[] match = new char[worCharLen];
                    for (int k = 0; k < worCharLen; k++) {
                        match[k] = mn[x + k][y];
                    }
                    if (word.equals(new String(match))) {
                        count++;
                    }
                }
                //斜向下45°
                if (x + worCharLen <= m && y + worCharLen <= n) {
                    char[] match = new char[worCharLen];
                    for (int k = 0; k < worCharLen; k++) {
                        match[k] = mn[x + k][y + k];
                    }
                    if (word.equals(new String(match))) {
                        count++;
                    }
                }
            }
            System.out.println(count);
        }
    }


    static class WordFirstIndex {
        int x;
        int y;
    }
}