#include <bits/stdc++.h>
const int inf = 0x3f3f3f3f;
using namespace std;
long long f[700010];
void init(int p) {
  f[0] = 1;
  for (int i = 1; i <= 700000; ++i) f[i] = f[i - 1] * i % p;
}
long long pow_mod(long long a, long long x, int p) {
  long long ret = 1;
  a %= p;
  while (x) {
    if (x & 1) {
      ret = ret * a % p;
      --x;
    } else {
      a = a * a % p;
      x >>= 1;
    }
  }
  return ret;
}
long long Lucas(long long n, long long k, int p) {
  long long ret = 1;
  while (n && k) {
    long long nn = n % p, kk = k % p;
    if (nn < kk) return 0;
    ret = ret * f[nn] * pow_mod(f[kk] * f[nn - kk] % p, p - 2, p) % p;
    n /= p;
    k /= p;
  }
  return ret;
}
int main() {
  int n, m;
  init(1e6 + 3);
  cin >> n >> m;
  {
    long long ma = max(n, m);
    long long mi = min(n, m);
    long long ans = Lucas(ma + mi, mi, 1e6 + 3) - 1;
    cout << ans << endl;
  }
  return 0;
}
