#include <bits/stdc++.h>
using namespace std;
constexpr long long int mod = 998244353;
int main() {
  cin.tie(nullptr);
  ios::sync_with_stdio(false);
  int q;
  cin >> q;
  while (q--) {
    int n, k;
    cin >> n >> k;
    vector<int> a(n), b(k);
    map<int, int> mp;
    for (int i = 0; i < n; i++) {
      cin >> a[i];
      mp[a[i]] = i + 1;
      a[i] = i + 1;
    }
    for (int i = 0; i < k; i++) {
      cin >> b[i];
      b[i] = mp[b[i]];
    }
    long long int res = 1;
    set<int> used;
    for (int i = 0; i < n; i++) {
      used.insert(i + 1);
    }
    for (int i = 0; i < k; i++) {
      used.erase(b[i]);
    }
    for (int i = 0; i < k; i++) {
      long long int cnt = 0;
      if (used.find(b[i] - 1) != used.end()) cnt++;
      if (used.find(b[i] + 1) != used.end()) cnt++;
      res *= cnt;
      res %= mod;
      used.insert(b[i]);
    }
    cout << res << "\n";
  }
}
