// O(log mod) solution for lights,
// after O(mod) preprocessing.
//
// David Garcia Soriano.

#include <cstdio>
using namespace std;

const int mod = 10567201;
typedef long long ll;

ll fact[mod];

// Compute a^n mod 'mod' in O(log n), mod > 1.
ll modexp(ll a, ll n, int mod) {
  ll r = 1;
  while (n) {
    if (n & 1) { r = (r * a) % mod; --n; }
    else { a = (a * a) % mod; n >>= 1; }
  }
  return r;
}

// Inverse of a in Z_p.
ll inverse(ll a) { return modexp(a, mod - 2, mod); }

// (m choose n) mod p, for n < p.
// Note that for any m < p, (m choose n) mod p = ( (m mod p) choose n) mod p,
// even if m mod p >= n.
ll ncr(ll m, ll n) {
  if (m < n) return 0;
  return (fact[m] * inverse((fact[n] * fact[m - n]) % mod)) % mod;
}

ll calc(ll n, ll m, bool iszero) {
  ll pow2n = modexp(2, n, mod),
     invpow2n = inverse(pow2n);
  if (m & 1) return (ncr(pow2n, m) * invpow2n) % mod;
  else {
    static const ll inv2 = inverse(2);
    ll dif = ncr((pow2n * inv2) % mod, m / 2);
    if (m & 2) dif = (mod - dif) % mod;

    ll res1 = ((ncr(pow2n, m) + mod - dif) * invpow2n) % mod;
    return iszero ? (dif + res1) % mod : res1;
  }
}

int main() {
  ll n, m, v;
  fact[0] = 1;
  for (n = 1; n < mod; ++n)
    fact[n] = (n * fact[n - 1]) % mod;
  while (scanf("%lli%lli%lli", &n, &m, &v) == 3 && n)
    printf("%lli\n", calc(n, m, v == 0));
  return 0;
}
