#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long int n, m;
  cin >> n >> m;
  long long int a[n], b[m], ans = 1;
  map<long long int, long long int> u;
  map<long long int, long long int>::iterator itr;
  for (long long int i = 0; i < n; i++) {
    cin >> a[i];
    u[a[i]] = i;
  }
  for (long long int i = 0; i < m; i++) cin >> b[i];
  long long int i = 1, maxi = 0;
  if (u.begin()->first != b[0]) {
    cout << 0;
    return 0;
  }
  for (itr = u.begin(); itr != u.end(); itr++) {
    if (itr->first == b[i]) {
      long long int x = itr->second - maxi;
      if (x < 0) {
        cout << 0;
        return 0;
      }
      ans *= x;
      ans = (ans % 998244353);
      i++;
    }
    maxi = max(itr->second, maxi);
  }
  if (i != m) {
    cout << 0;
    return 0;
  }
  if (m == 1) {
    cout << 1;
    return 0;
  }
  cout << ans;
}
