#include<bits/stdc++.h> usingnamespace std; #define ll long long constint INF = 0x3f3f3f3f; const ll inf = 0x3f3f3f3f3f3f3f3f; const ll mod = 998244353; constint N = 2e5 + 10; int n, m; int a[N], b[N]; ll ans = 1ll; int s[N]; intmain(){ scanf("%d%d", &n, &m); for (int i = 1; i <= n; i++)scanf("%d", &a[i]); for (int i = 1; i <= m; i++)scanf("%d", &b[i]); s[n] = a[n]; for (int i = n - 1; i >= 1; i--)s[i] = min(a[i], s[i + 1]); int L = n, R = n, p = m; while (p > 1) { int tmp = 0; while (s[L] >= b[p]) { if (s[L] == b[p])tmp++; L--; } if (s[L + 1] != b[p]) { puts("0"); return0; } ans = ans * tmp % mod; p--; R = L; } if (s[1] != b[1]) { puts("0"); return0; } printf("%lld\n", ans); return0; }