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
import java.io.*;
import java.util.*;
import static java.util.Arrays.*;
import static java.lang.Math.*;
import java.math.BigDecimal;

public class Main implements Runnable {
    static Scanner in;
    static PrintWriter out;

    /*final int maxN = 1000000;
    boolean[] sieve = new boolean[maxN + 1];
    int[] num = new int[maxN + 1];*/

    int f (int n, int m) {
        if (n <= 0 || m <= 0) return 0;
        if (n % 2 == 0) {
            return n * m / 2;
        } else {
            return (m % 2 == 0? m / 2: m / 2 + 1) + f(n - 1, m);
        }
    }

    public void run() {
        int n = in.nextInt(), m = in.nextInt(), x = in.nextInt();
        out.println(f(n - 2 * (x - 1), m - 2 * (x - 1)) - f(n - 2 * x, m - 2 * x));
        out.close();
    }

    /*void genSieve() {
        fill(sieve, true);
        sieve[0] = sieve[1] = false;
        for (int i = 2; i * i <= maxN; i++) {
            if (sieve[i]) {
                for (int j = i * i; j <= maxN; j += i) {
                    sieve[j] = false;
                }
            }
        }
        int cnt = 1;
        num[0] = 0;
        for (int i = 0; i <= maxN; i++) {
            if (sieve[i]) num[i] = cnt++;
        }
    }*/
    
    int[] array (int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        return a;
    }

    int[][] matrix (int n, int m) {
        int[][] a = new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                a[i][j] = in.nextInt();
            }
        }
        return a;
    }

    public static void main(String[] args) throws IOException {
        //final String FILENAME = "cubroot"; in = new Scanner(new File(FILENAME + ".in")); out = new PrintWriter(new File(FILENAME + ".out"));
        in = new Scanner (System.in); out = new PrintWriter (System.out);
        new Main().run();
    }
}