#include <bits/stdc++.h>
using namespace std;
long long int mo = 1000000007;
long long int f(long long int m, long long int a) {
  if (a == 0) return 1;
  if (a == 1) {
    return m % mo;
  }
  if (a % 2 == 0) {
    long long int x = f(m, a / 2);
    return (x * x) % mo;
  } else {
    long long int x = f(m, a / 2);
    return (((x * x) % mo) * m) % mo;
  }
}
int main() {
  long long int a, b, c;
  cin >> a >> b >> c;
  if (c == -1) {
    if ((a + b) % 2 != 0) {
      cout << 0 << endl;
    } else {
      long long int k = f(2, a - 1);
      long long int k1 = f(k, b - 1);
      cout << k1 << endl;
    }
  } else {
    long long int k = f(2, a - 1);
    long long int k1 = f(k, b - 1);
    cout << k1 << endl;
  }
}
