#include <bits/stdc++.h>
using namespace std;
template <class T>
bool uin(T &a, T b) {
  return a > b ? (a = b, true) : false;
}
template <class T>
bool uax(T &a, T b) {
  return a < b ? (a = b, true) : false;
}
long long mod = 1e6 + 3;
long long fact(long long n) {
  long long ans = 1;
  for (long long i = 1; i <= (long long)(n); ++i) ans = (ans * i) % mod;
  return (ans);
}
long long fun(long long a, long long p) {
  if (p == 0) return (1);
  long long b = fun(a, p / 2);
  if (p % 2 == 0)
    return ((b * b) % mod);
  else
    return ((((b * b) % mod) * a) % mod);
}
int main() {
  long long n, c;
  cin >> n >> c;
  long long b = fact(n + c);
  long long d = fun(fact(c), mod - 2);
  long long e = fun(fact(n), mod - 2);
  long long a = (((b * d) % mod) * e) % mod;
  cout << (a - 1 + mod) % mod;
}
