#include <stdio.h>
#include <iostream>
#include <set>
#include <vector>
#include <queue>
using namespace std;
const long long MOD = 998244353;long long quick_MOD(long long a,long long b)
{long long ans=1;long long t=a%MOD;while(b){if(b&1)ans=(ans*t)%MOD;t=(t*t)%MOD;b>>=1;}return ans;
}long long C(long long n, long long m)
{if(m > n) return 0;long long ans = 1;for(int i=1; i<=m; i++){long long a = (n + i - m) % MOD;long long b = i % MOD;ans = ans * (a * quick_MOD(b, MOD-2) % MOD) % MOD;}return ans;
}long long call(long long n,long long m)
{return C(n+m-1,m-1);
}int main()
{long long m,n;while(cin>>n>>m){if(m==1){cout<<1<<"\n";continue;}long long ans = 0;long long len = n/2;for(long long k=0;k<=len;k++){ans = (ans + call(k,m-1))%MOD;}if(!(n&1)) ans -= (m-1);ans = ans*m%MOD;cout<<ans<<endl;}
}