#include <bits/stdc++.h>
#define endl '\n'
#define ll long long
#define task "COREWARD"
using namespace std;
const int N = 1e3, mod = 123456789;
int m, n;
ll dp[N + 5][N + 5];
void add(ll &x, const ll &y)
{
(x += y) %= mod;
}
int main()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
if(fopen(task".INP", "r"))
{
freopen(task".INP", "r", stdin);
freopen(task".OUT", "w", stdout);
}
cin >> m >> n;
dp[0][0] = 1;
for(int i = 1; i <= n; ++i)
for(int j = 0; j <= m; ++j)
{
add(dp[i][j], dp[i - 1][j]);
if(j >= i)
add(dp[i][j], dp[i][j - i]);
}
cout << dp[n][m] << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdGFzayAiQ09SRVdBUkQiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOID0gMWUzLCBtb2QgPSAxMjM0NTY3ODk7CgppbnQgbSwgbjsKbGwgZHBbTiArIDVdW04gKyA1XTsKCnZvaWQgYWRkKGxsICZ4LCBjb25zdCBsbCAmeSkKewogICAgKHggKz0geSkgJT0gbW9kOwp9CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCksIGNpbi50aWUoMCksIGNvdXQudGllKDApOwogICAgaWYoZm9wZW4odGFzayIuSU5QIiwgInIiKSkKICAgIHsKICAgICAgICBmcmVvcGVuKHRhc2siLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4odGFzayIuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIGNpbiA+PiBtID4+IG47CgogICAgZHBbMF1bMF0gPSAxOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyArK2kpCiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8PSBtOyArK2opCiAgICAgICAgewogICAgICAgICAgICBhZGQoZHBbaV1bal0sIGRwW2kgLSAxXVtqXSk7CiAgICAgICAgICAgIGlmKGogPj0gaSkKICAgICAgICAgICAgICAgIGFkZChkcFtpXVtqXSwgZHBbaV1baiAtIGldKTsKICAgICAgICB9CgogICAgY291dCA8PCBkcFtuXVttXSA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0K