#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000003;
const int MAXN = 1e6;
long long f[MAXN], fRev[MAXN];
long long modPow(long long a, long long b) {
  long long d = 1;
  for (int i = 30; i >= 0; i--) {
    d = (d * d) % MOD;
    if (b & (1ll << i)) {
      d = (d * a) % MOD;
    }
  }
  return d;
}
long long getRev(long long a) { return modPow(a, MOD - 2); }
long long choose(int k, int n) {
  return f[n] * fRev[k] % MOD * fRev[n - k] % MOD;
}
int main() {
  f[0] = fRev[0] = 1;
  for (int i = 0; i < (int)(MAXN - 1); i++) {
    f[i + 1] = f[i] * (i + 1) % MOD;
    fRev[i + 1] = getRev(f[i + 1]);
  }
  int n, k;
  cin >> n >> k;
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    ans = (ans + choose(k - 1, i + k - 1)) % MOD;
  }
  cout << ans << endl;
  return 0;
}
