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.awt.geom.Point2D;
import java.text.*;
import java.math.*;
import java.util.*;

public class t2 implements Runnable {

       
        public void solve() throws Exception {
                 }

        public void run() {
                try {
                        in = new BufferedReader(new InputStreamReader(System.in));
                        out = new BufferedWriter(new OutputStreamWriter(System.out));
                        // in = new BufferedReader(new FileReader(filename+".in"));
                        // out = new BufferedWriter(new FileWriter(filename+".out"));
                        int n=iread();
                        int m=iread();
                        int x=iread()-1;
                        if (x>10000) { System.out.println(0); return; }
                        if ((n==1) || (m==1) || (n==2) || (m==2))
                        {
                        	if (x==0) System.out.println(n*m/2+n*m%2);
                        	else System.out.println(0);
                        	return;
                        };
                        n=n-x*2;
                        m=m-x*2;
                        if ((n<=0) || (m<=0)) { System.out.print(0); return; };
                        if ((n==1) || (m==1)) System.out.print(n*m/2+n*m%2);
                        else System.out.print(n+m-2);
                        
                        solve();
                        out.flush();
                } catch (Exception e) {
                        e.printStackTrace();
                        System.exit(1);
                }
        }

        public int iread() throws Exception {
                return Integer.parseInt(readword());
        }

        public double dread() throws Exception {
                return Double.parseDouble(readword());
        }

        public long lread() throws Exception {
                return Long.parseLong(readword());
        }

        BufferedReader in;

        BufferedWriter out;

        public String readword() throws IOException {
                StringBuilder b = new StringBuilder();
                int c;
                c = in.read();
                while (c >= 0 && c <= ' ')
                        c = in.read();
                if (c < 0)
                        return "";
                while (c > ' ') {
                        b.append((char) c);
                        c = in.read();
                }
                return b.toString();
        }

        public static void main(String[] args) {
                try {
                        Locale.setDefault(Locale.US);
                } catch (Exception e) {

                }
                new Thread(new t2()).start();
                // new Thread(null, new Main(), "1", 1<<25).start();
        }
}
	
		
