#include <bits/stdc++.h>
long long n, k;
const long long mod = 1000003;
long long pow(long long a, long long b, long long p) {
  long long t = 1;
  for (a %= p; b; b >>= 1LL, a = a * a % p)
    if (b & 1LL) t = t * a % p;
  return t;
}
int main() {
  scanf("%I64d%I64d", &n, &k);
  if (n <= 62 && k > 1ll << n) {
    puts("1 1");
    return 0;
  }
  long long num = 0;
  for (long long i = k - 1; i; i >>= 1) num += i / 2;
  long long b = 1, a = pow(2, n, mod);
  for (long long i = 1; i <= k - 1; i++) {
    long long tmp = (a - i + mod) % mod;
    b = b * tmp % mod;
    if (!tmp) break;
  }
  long long inv = pow(pow(2, num, mod), mod - 2, mod);
  a = pow(a, k - 1, mod);
  a = a * inv % mod;
  b = b * inv % mod;
  b = (a - b + mod) % mod;
  printf("%I64d %I64d\n", b, a);
  return 0;
}
