#include <bits/stdc++.h>
using namespace std;
long long modpow(long long x, long long y, long long m) {
  long long z = 1;
  while (y) {
    if (y & 1) z = (z * x) % m;
    x = (x * x) % m;
    y >>= 1;
  }
  return z;
}
int egcd(int a, int b, int& x, int& y) {
  if (a == 0) {
    x = 0;
    y = 1;
    return b;
  }
  int x1, y1;
  int gcd = egcd(b % a, a, x1, y1);
  x = y1 - (b / a) * x1;
  y = x1;
  return gcd;
}
string z[2] = {"NO", "YES"};
long long mod = 1e9 + 7;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int t = 1;
  string s;
  while (t--) {
    long long i, j, n, m, k;
    cin >> n >> m >> k;
    if (k < 0 && (n + m) % 2) {
      cout << 0 << "\n";
      return 0;
    }
    n--;
    m--;
    n %= (mod - 1);
    m %= (mod - 1);
    cout << modpow(2, (n * m) % (mod - 1), mod) << "\n";
  }
  return 0;
}
