#include <set>
#include <cstdio>
#include <cstring>
using namespace std;

const int mod = 1000003;
const int MAX = 1001;

int dp1A[MAX][MAX];
int dp1B[MAX][MAX];
int dp2[MAX];
int dp3[MAX];

int main(){
  int n, k;

  while(scanf("%d%d", &n, &k), n + k){
    int asum = 1;
    int bsum = 0;
    int ans = 0;

    if(k >= n){
      k = n - 1;
      ans = 2;
    }

    memset(dp1A, 0, sizeof(dp1A));
    memset(dp1B, 0, sizeof(dp1B));
    memset(dp2, 0, sizeof(dp2));
    memset(dp3, 0, sizeof(dp3));

    dp1A[1][1] = 1;
    dp1B[1][1] = 0;
    
    for(int i = 2; i <= n; i++){
      dp1A[i][1] = bsum;
      dp1B[i][1] = asum;

      asum = dp1A[i][1];
      bsum = dp1B[i][1];

      for(int j = 2; j <= min(k, i); j++){
	asum += (dp1A[i][j] = dp1A[i-1][j-1]); asum %= mod;
	bsum += (dp1B[i][j] = dp1B[i-1][j-1]); bsum %= mod;
      }
    }

    // puts("dp1A:"); for(int i = 1; i <= n; i++){ for(int j = 1; j <= k; j++) printf("%d ", dp1A[i][j]); puts(""); }
    // puts("dp1B:"); for(int i = 1; i <= n; i++){ for(int j = 1; j <= k; j++) printf("%d ", dp1B[i][j]); puts(""); }

    for(int i = 1; i <= n; i++)
      for(int j = 1; j <= k; j++){
	dp2[i] += dp1B[i][j];
	dp2[i] %= mod;
      }

    for(int i = 1; i <= n; i++)
      for(int j = 1; j < k; j++){
	dp1B[i][j + 1] += dp1B[i][j];
	dp1B[i][j + 1] %= mod;
      }

    for(int i = 1; i <= n; i++)
      for(int p = 1; p <= min(i, k); p++){
	dp2[i] += dp1B[i - p][k - p];
	dp2[i] %= mod;
      }

    /*
    puts("dp2:");
    for(int i = 1; i <= n; i++)
      printf("%d ", dp2[i]);
    puts("");
    */

    for(int i = 1; i <= n; i++){
      dp3[i] = (2 * dp2[i]) % mod;
      for(int j = 2; j < i; j++) if(i % j == 0){
	dp3[i] -= dp3[j];
	dp3[i] = (dp3[i] + mod) % mod;
      }
    }

    /* 
    puts("dp3:");
    for(int i = 1; i <= n; i++)
      printf("%d ", dp3[i]);
    puts("");
    */

    for(int i = 2; i <= n; i++){
      if(n % i == 0){
	int tmp = 0;
	for(int j = 0; j < mod; j++){
	  if(tmp == 1){
	    tmp = j; break;
	  }
	  tmp += i; tmp %= mod;
	}

	ans = (ans + ((long long)dp3[i] * tmp) % mod) % mod;
      }
    }

    printf("%d\n", ans, n, k);
  }
}