#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 100, MOD = 998244353;
int add(long long a, int b) { return (a + b + 2LL * MOD) % MOD; }
int mul(long long a, int b) { return (a * b) % MOD; }
void sadd(int &a, int b) { a = add(a, b); }
void smul(int &a, int b) { a = mul(a, b); }
int a[N], inv[N];
bool mark[N];
void solve() {
  int n, k;
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    a[i]--;
    inv[a[i]] = i;
  }
  vector<int> v;
  for (int i = 0; i < k; i++) {
    int d;
    cin >> d;
    d--;
    v.push_back(inv[d]);
    mark[inv[d]] = true;
  }
  int ans = 1;
  for (auto i : v) {
    mark[i] = false;
    int cnt = 0;
    if (i + 1 < n && !mark[i + 1]) cnt++;
    if (i && !mark[i - 1]) cnt++;
    smul(ans, cnt);
  }
  cout << ans << "\n";
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  while (t--) solve();
}
