#include <bits/stdc++.h>   using namespace std;   long long n, k;   long long quickpow(long long x, long long y) {     long long res = 1;     for (; y; y >>= 1, x *= x, x %= 1000003)       if (y & 1) res *= x, res %= 1000003;     return res;   }   int main() {     scanf( %I64d %I64d , &n, &k);     if (n < 62 && k > (1LL << n))       printf(  1 1 n );     else {       long long A = 1, t = quickpow(2, n), cnt = n;       for (int y = 1; y < 62; y++) cnt += (k - 1) / (1LL << y);       if (k < 1000003) {         for (long long i = 1; i <= k; i++)           A = A * (t - i + 1000003 + 1) % 1000003;         A = A * quickpow(quickpow(2, 1000003 - 2), cnt) % 1000003;       } else         A = 0;       long long B = quickpow(quickpow(2, n), k) *                     quickpow(quickpow(2, 1000003 - 2), cnt) % 1000003;       printf( %I64d %I64d n , (B - A + 1000003) % 1000003, B);     }     return 0;   }   