#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
long long n, m, ans;
int k;
long long qpow(long long a, long long b) {
  long long ans = 1;
  a = a % mod;
  while (b) {
    if (b & 1) ans = ans * a % mod;
    a = a * a % mod;
    b >>= 1;
  }
  return ans % mod;
}
int main() {
  scanf("%I64d %I64d %d", &n, &m, &k);
  if (k == -1 && ((n + m) & 1)) {
    printf("0\n");
    return 0;
  }
  long long x = 1, ans = 1;
  x = (x * qpow(2, n - 1)) % mod;
  ans = (ans * qpow(x, m - 1)) % mod;
  printf("%I64d", ans);
  return 0;
}
