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.BufferedInputStream;
import java.math.BigInteger;
import java.util.Scanner;

public class Repaintings { //Round #39 - Repaintings
	public static void main(String[] args) {
		Scanner sc = new Scanner(new BufferedInputStream(System.in));

		int boardWidth = sc.nextInt();
		int boardHeight = sc.nextInt();
		int numTimes = sc.nextInt();
		numTimes--;
		BigInteger two = new BigInteger("2");
		BigInteger numTimesBig = new BigInteger(Integer.toString(numTimes));

		BigInteger cols = new BigInteger(Integer.toString(boardWidth)).subtract(two.multiply(numTimesBig));
		BigInteger rows = new BigInteger(Integer.toString(boardHeight)).subtract(two.multiply(numTimesBig));
		
		if(cols.compareTo(BigInteger.ONE) < 0 || rows.compareTo(BigInteger.ONE) < 0) {
			System.out.println(0);
		} else {
			BigInteger numBlack = BigInteger.ZERO;

			if(boardWidth % 2 == 1) {
				if(boardHeight % 2 == 1) {
					numBlack = numBlack.add(cols.divide(two)).add(BigInteger.ONE);
					numBlack = numBlack.multiply(rows.divide(two).add(BigInteger.ONE));
				} else {
					numBlack = numBlack.add(cols.divide(two)).add(BigInteger.ONE);
					numBlack = numBlack.multiply(rows.divide(two));
				}
			} else {
				if(boardHeight % 2 == 1) {
					numBlack = numBlack.add(cols.divide(two));
					numBlack = numBlack.multiply(rows.divide(two).add(BigInteger.ONE));
				} else {
					numBlack = numBlack.add(cols.divide(two));
					numBlack = numBlack.multiply(rows.divide(two));
				}
			}
			numBlack = numBlack.add(cols.divide(two).multiply(rows.divide(two)));

			cols = cols.subtract(two);
			rows = rows.subtract(two);
			BigInteger subtract = BigInteger.ZERO;

			if(boardWidth % 2 == 1) {
				if(boardHeight % 2 == 1) {
					subtract = subtract.add(cols.divide(two)).add(BigInteger.ONE);
					subtract = subtract.multiply(rows.divide(two).add(BigInteger.ONE));
				} else {
					subtract = subtract.add(cols.divide(two)).add(BigInteger.ONE);
					subtract = subtract.multiply(rows.divide(two));
				}
			} else {
				if(boardHeight % 2 == 1) {
					subtract = subtract.add(cols.divide(two));
					subtract = subtract.multiply(rows.divide(two).add(BigInteger.ONE));
				} else {
					subtract = subtract.add(cols.divide(two));
					subtract = subtract.multiply(rows.divide(two));
				}
			}
			subtract = subtract.add(cols.divide(two).multiply(rows.divide(two)));

			if(numBlack.compareTo(subtract) != 0) {
				BigInteger result = numBlack.subtract(subtract);
				System.out.println(result);
			} else {
				BigInteger result = numBlack;
				System.out.println(result);
			}
		}
	}
}
