#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
long long n, m, k;
long long mpow(long long b, long long e) {
  if (e == 0) return 1;
  if (e == 1) return b % MOD;
  long long tmp = mpow(b, e / 2) % MOD;
  tmp = tmp * tmp % MOD;
  if (e % 2) tmp = tmp * (b % MOD) % MOD;
  return tmp;
}
int main() {
  cin >> n >> m >> k;
  if (n % 2 != m % 2 && k == -1)
    cout << 0 << endl;
  else {
    long long r = mpow(2, n - 1) % MOD;
    r = mpow(r, m - 1) % MOD;
    cout << r << endl;
  }
}
