#include <bits/stdc++.h>
using namespace std;
template <class T>
void read(T& num) {
  char CH;
  bool F = false;
  for (CH = getchar(); CH < '0' || CH > '9'; F = CH == '-', CH = getchar())
    ;
  for (num = 0; CH >= '0' && CH <= '9';
       num = num * 10 + CH - '0', CH = getchar())
    ;
  F && (num = -num);
}
int stk[70], tp;
template <class T>
inline void print(T p) {
  if (!p) {
    puts("0");
    return;
  }
  while (p) stk[++tp] = p % 10, p /= 10;
  while (tp) putchar(stk[tp--] + '0');
  putchar('\n');
}
const long long mod = 1e6 + 3;
const double PI = acos(-1.0);
const long long inf = 1e18;
const int N = 5e5 + 10;
const int maxn = 1005;
const double eps = 1e-10;
long long n, m, dp[N];
long long pow_mod(long long x, long long y) {
  long long s = 1, base = x;
  while (y) {
    if (y & 1) s = s * base % mod;
    base = base * base % mod;
    y >>= 1;
  }
  return s;
}
void Init() {
  dp[0] = 1;
  for (long long i = 1; i <= n; i++) {
    dp[i] = (dp[i - 1] * (i + m - 1) % mod) * pow_mod(i, mod - 2) % mod;
  }
}
int main() {
  read(n);
  read(m);
  Init();
  long long sum = 0;
  for (long long i = 1; i <= n; i++) {
    sum = (sum + dp[i]) % mod;
  }
  cout << sum << "\n";
  return 0;
}
