#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int a[N], b[N];
int visit[N], pos[N];
int main(void) {
  int i, j;
  int n, m;
  int t;
  scanf("%d", &t);
  while (t--) {
    int n, k;
    scanf("%d%d", &n, &k);
    for (i = 1; i <= n; i++) {
      scanf("%d", a + i);
      pos[a[i]] = i;
      visit[a[i]] = 0;
    }
    for (i = 1; i <= k; i++) {
      scanf("%d", b + i);
      visit[b[i]] = 1;
    }
    long long res = 1;
    for (i = 1; i <= k; i++) {
      int temp = 0;
      int idx = pos[b[i]];
      if (idx >= 2 && visit[a[idx - 1]] == 0) temp++;
      if (idx <= n - 1 && visit[a[idx + 1]] == 0) temp++;
      visit[b[i]] = 0;
      res = (res * temp) % 998244353;
    }
    printf("%lld\n", res);
  }
}
