/*
 * I/S. 12.
 * Tóth 827 Balázs
 * Budapest, Budapesti Fazekas M . Gyak. Ált. Isk. és Gimn., 9. o. t.
 * javac 1.8.0_91
 */

package is12;

import java.util.Scanner;

public class is12 {

	static int n; //Max elvehető 2^n*2^(n+1)
	static long teglalapokszama; //Hány téglalap kell
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		n = sc.nextInt();
		sc.close();
		Teglalap lap = new Teglalap(a,b); //Létrehoz egy ilyen téglalapot
		teglalapokszama = 0; //0 ról indul
		lefed(lap); //Rekurzívan elkezdi lefedni
		System.out.println(teglalapokszama); //Kiírja a szükséges lapokat
	}
	//rekurzívaaaan
	public static void lefed(Teglalap lap) {
		if(lap.x == 0 || lap.y == 0) { //Ha már nem kell lefedni
			return;
		}
		if(lap.x > lap.y) { // y ne legyen kisebb, így x csökkentésénél legalább négyzet elő fog állni
			int temp = lap.y;
			lap.y = lap.x;
			lap.x = temp;
		}
		int i = n; //a max 2^i*2^(i+1)
		int voltx = lap.x; //Ekkora volt az x
		int legnagyobby = 0; //Ekkorát mindig le kell fedni
		while(lap.x > 0) { // Amíg nem fedjük le x hosszában az egészet
			while(Math.pow(2, i) > lap.x) { //Amíg nem fér bele x-be 2^i, addig i csökkentése, úgy hogy minél többet lefedjünk
				i--;
			}//sor alatta lesz elég, mivel y >= x
			if(lap.y >= Math.pow(2, i+1)) { //ha k+1 is lehet
				if(Math.pow(2, i+1) > legnagyobby) { //Ha nagyobb lefedhető y t találtunk legnagyobby nál, akkor annak beállítása ennyit mindig le kell fedni
					legnagyobby = (int) Math.pow(2, i+1); 
				}
				long xlefedheto = (long) Math.floor(lap.x/Math.pow(2, i)); //x ből ennyiszer tudjuk lefedni ezt a 2^i t
				lap.x-= xlefedheto*Math.pow(2, i); //Ezt levonjuk belőle
				long ylefedheto = (long) Math.floor(lap.y/legnagyobby); //y ból ennyiszer le kell fedni, mivel első oszlopban ennyit fedtünk le
				teglalapokszama += xlefedheto*ylefedheto*legnagyobby/Math.pow(2, i+1); //Ennyi téglalap kell
			} else { //ha csak 2^i lehet, az biztos lehet mert y >= x
				if(Math.pow(2, i) > legnagyobby) { //Ha nagyobb lefedhető y t találtunk legnagyobby nál, akkor annak beállítása ennyit mindig le kell fedni
					legnagyobby = (int) Math.pow(2, i);
				}
				long xlefedheto = (long) Math.floor(lap.x/Math.pow(2, i)); //x ből ennyiszer tudjuk lefedni ezt a 2^i t
				lap.x-= xlefedheto*Math.pow(2, i); //Ezt levonjuk belőle
				long ylefedheto = (long) Math.floor(lap.y/legnagyobby); //y ból ennyiszer le kell fedni, mivel első oszlopban ennyit fedtünk le
				teglalapokszama += xlefedheto*ylefedheto*legnagyobby/Math.pow(2, i); //Ennyi téglalap kell
			}
		}
		int ylefedett = ((int) Math.floor(lap.y/legnagyobby))*legnagyobby; // Az x*ylefedettet már nem kell lefedni
		lefed(new Teglalap(voltx,lap.y-ylefedett)); //Az eredeti x marad, szóval x*(y-ylefedett)
	}

}

class Teglalap { //Az egyszerűbb tároláshoz
	public int x;
	public int y;
	public Teglalap(int xoldal, int yoldal) {
		x = xoldal;
		y = yoldal;
	}
}