A chessboard n × m in size is given. During the zero minute we repaint all the black squares to the 0 color. During the i-th minute we repaint to the i color the initially black squares that have exactly four corner-adjacent squares painted i - 1 (all such squares are repainted simultaneously). This process continues ad infinitum. You have to figure out how many squares we repainted exactly x times.

The upper left square of the board has to be assumed to be always black. Two squares are called corner-adjacent, if they have exactly one common point.

Input

The first line contains integers n and m (1 ≤ n, m ≤ 5000). The second line contains integer x (1 ≤ x ≤ 109).

Output

Print how many squares will be painted exactly x times.

Examples

Input

3 3
1


Output

4


Input

3 3
2


Output

1


Input

1 1
1


Output

1
#include <bits/stdc++.h>
#pragma comment(linker, "/stack:256000000")
using namespace std;
template <typename first>
inline first abs(const first& a) {
  return a < 0 ? -a : a;
}
template <typename first>
inline first sqr(const first& a) {
  return a * a;
}
const int INF = INT_MAX / 2;
const long double EPS = 1e-9;
const long double PI = 3.1415926535897932384626433832795;
const int N = 5000 + 13;
const int dx[] = {1, 1, -1, -1};
const int dy[] = {1, -1, 1, -1};
int n, m;
int cnt[N];
int d[N][N];
int main() {
  cin >> n >> m;
  int x;
  cin >> x;
  if (x >= N) {
    cout << 0 << endl;
    return 0;
  }
  queue<pair<int, int> > q;
  int firstAns = 0;
  for (int i = 0; i < int(n); i++)
    for (int it = 0; it < int(2); it++) {
      int j = 0;
      if (it == 1) j = m - 1;
      if (!(i == 0 || i == n - 1 || j == 0 || j == m - 1)) continue;
      if (i % 2 != j % 2) continue;
      if (d[i][j] == 0) firstAns++;
      d[i][j] = 1;
      q.push(make_pair((i), (j)));
    }
  for (int j = 0; j < int(m); j++)
    for (int it = 0; it < int(2); it++) {
      int i = 0;
      if (it == 1) i = n - 1;
      if (!(i == 0 || i == n - 1 || j == 0 || j == m - 1)) continue;
      if (i % 2 != j % 2) continue;
      if (d[i][j] == 0) firstAns++;
      d[i][j] = 1;
      q.push(make_pair((i), (j)));
    }
  if (n > 4000 && m > 4000 && x < 1501) {
    int ans = firstAns;
    ans -= 4 * (x - 1);
    cout << ans << endl;
    return 0;
  }
  while (!q.empty()) {
    pair<int, int> cur = q.front();
    q.pop();
    int x = cur.first;
    int y = cur.second;
    for (int i = 0; i < int(4); i++) {
      int nx = x + dx[i];
      int ny = y + dy[i];
      if (!(0 <= (nx) && (nx) < (n) && 0 <= (ny) && (ny) < (m))) continue;
      if (d[nx][ny] > d[x][y] + 1 || d[nx][ny] == 0) {
        d[nx][ny] = d[x][y] + 1;
        q.push(make_pair((nx), (ny)));
      }
    }
  }
  for (int i = 0; i < int(n); i++)
    for (int j = 0; j < int(m); j++) cnt[d[i][j]]++;
  cout << cnt[x] << endl;
  cerr << clock() << endl;
  return 0;
}
