Let's denote d(n) as the number of divisors of a positive integer n. You are given three integers a, b and c. Your task is to calculate the following sum:

<image>

Find the sum modulo 1073741824 (230).

Input

The first line contains three space-separated integers a, b and c (1 ≤ a, b, c ≤ 100).

Output

Print a single integer — the required sum modulo 1073741824 (230).

Examples

Input

2 2 2


Output

20


Input

5 6 7


Output

1520

Note

For the first example.

  * d(1·1·1) = d(1) = 1; 
  * d(1·1·2) = d(2) = 2; 
  * d(1·2·1) = d(2) = 2; 
  * d(1·2·2) = d(4) = 3; 
  * d(2·1·1) = d(2) = 2; 
  * d(2·1·2) = d(4) = 3; 
  * d(2·2·1) = d(4) = 3; 
  * d(2·2·2) = d(8) = 4. 



So the result is 1 + 2 + 2 + 3 + 2 + 3 + 3 + 4 = 20.
import java.io.*;
import java.util.*;

public class Main{
	public static void main(String args[]){
		/*
		int[] d = new int[10000001];
		for(int i = 0; i < 1000000; i++){
			for(int j = 0; j < 1000000; j++){

			}
		}
		 */
		new Main().run();
	}

	public void run(){
		Scanner scanner = new Scanner(System.in);
		int[] input = new int[3];

		String line = scanner.nextLine();
		for(int i = 0; i < 3; i++){
			input[i] = Integer.parseInt(line.split(" ")[i]);
		}
		//System.out.println(line);

		int[] d = new int[10000001];
		Arrays.fill(d, 0);
		long res = 0;
		
		for(int i = 1; i <= 1000000; i++) d[i] = 1;
		for(int i = 1; i <= 1000000; i++){
			for(int j = i + i; j <= 1000000; j += i){
				//if(i % j == 0){
					d[j]++;
				//}
			}
			//System.out.println(i + " " + d[i]);
		}
		
		for(int i = 1; i <= input[0]; i++){
			for(int j = 1; j <= input[1]; j++){
				for(int k = 1; k <= input[2]; k++){
					/*
					if(d[i * j * k] == 0){
						System.out.println(i * j * k);
						//System.out.println(i * j * k + ": " + d[i * j * k]);
						for(int l = 1; l * 2 <= i * j * k; l++){
							if(i * j * k % l == 0) d[i * j * k]++;
						}
						d[i * j * k]++; //Itself
					}
					*/
					//System.out.println(i + " " + j + " " + k + ": " + d[i * j * k]);

					res += d[i * j * k];
					res %= 1073741824;
				}
			}
		}

		/*
		for(int i = 1; i <= input[0]; i++){
			for(int j = 1; j <= input[1]; j++){
				for(int k = 1; k <= input[2]; k++){
					d[i * j * k]++;
				}
			}
		}
		for(int i = 0; i <= 1000000; i++)
			if(d[i] > 0) {
				//System.out.println(i + " " + d[i]);
				int tmp = 0;
				for(int l = 1; l * 2 <= i; l++){
					if(i % l == 0) tmp++;
				}
				tmp++; //Itself
				res += tmp * d[i];
				res %= 1073741824;
			}
		 */
		System.out.println(res);
	}

	public void Reading(){
		//File Reading
		try{
			FileReader f = new FileReader("input.txt");
			BufferedReader b = new BufferedReader(f);
			String s;
			s = b.readLine();
		} catch(Exception e){
		}
	}

	public void Writing(String s){
		try{
			FileWriter fw = new FileWriter("output.txt");
			fw.write(s);
			fw.close();
		} catch(Exception e){
		}
	}

}

