#include using namespace std; #if __has_include() #include using namespace atcoder; #endif template void print(const T& a, const Ts&... b){cout << a;(cout << ... << (cout << ' ', b));cout << '\n';} template void input(T&... a){(cin >> ... >> a);} void print(){cout << '\n';} typedef long long ll; typedef long double ld; typedef pair P; typedef tuple T; typedef modint998244353 mint; #define rep(i, n) for(ll i = 0; i < n; i++) int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); ll n,m; input(n,m); if(n < m)return print(0),0; vector r(100,0); r[0] = 1; r[1] = 2; for(int i=2;i<=100;i++)r[i] = r[i-1]*r[i-1]; ll cnt = 1; mint t1 = 1,t2 = 1; while(n){ if(n & 1)t1 *= r[cnt]; n >>= 1; cnt++; } m--; cnt = 1; while(m){ if(m & 1)t2 *= r[cnt]; m >>= 1; cnt++; } print((t1-t2).val()); return 0; }