#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 int dp[10000007]; int cnt[10000007]; int main(){ for(int i=2;i<=10000003;i++){ if(dp[i]!=0)continue; for(int j=i;j<=10000003;j+=i){ dp[j] = i; } } int N,M; cin>>M>>N; long long ans = 0; if(M>=N){ rep(i,N){ { int cur = M-i; while(cur!=1){ cnt[dp[cur]]++; cur /= dp[cur]; } } { int cur = N-i; while(cur!=1){ cnt[dp[cur]]--; cur /= dp[cur]; } } } ans = 1; for(long long i=2;i<=10000000;i++){ if(cnt[i]!=0){ ans *= pow_mod(i,cnt[i],100000000); ans %= 100000000; } } } string Ans = to_string(ans); while(Ans.size()!=8)Ans.insert(Ans.begin(),'0'); cout<