#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using P = pair<ll,ll>;
#define rep(i, n) for(ll i = 0; i < n; i++)
#define all(x) (x).begin(),(x).end()
template<class T>bool chmin(T&a, const T&b){if(a>b){a=b;return 1;}return 0;}
template<class T>bool chmax(T&a, const T&b){if(a<b){a=b;return 1;}return 0;}
const ll MOD = 998244353;
ll mpow(ll x, ll y){
    ll res = 1; x %= MOD;
    while(y){
        if(y%2) res = res * x % MOD;
        x = x * x % MOD;
        y /= 2;
    }
    return res;
}
int main(){
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    ll n,m;
    cin >> n >> m;
    ll totn = 0, totm = 0;
    rep(i,n){
        ll x;
        cin >> x;
        totn ^= x;
    }
    rep(i,m){
        ll x;
        cin >> x;
        totm ^= x;
    }
    ll ans;
    if(totn==totm) ans = mpow(2,20*(n-1)*(m-1));
    else ans = 0;
    cout << ans << '\n';
    return 0;
}