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.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class Main {
	
	public static void main(String[] args) {
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			PrintWriter pw = new PrintWriter(System.out);
			
			int[][] table = new int[100+1][4];
			int[] sosu = new int[100+1];
			for (int i = 1; i <= 100; i++) {
				int num = i;
				while (num % 2 == 0) { num /= 2; table[i][0]++; }
				while (num % 3 == 0) { num /= 3; table[i][1]++; }
				while (num % 5 == 0) { num /= 5; table[i][2]++; }
				while (num % 7 == 0) { num /= 7; table[i][3]++; }
				sosu[i] = num;
			}
			
			String[] param = br.readLine().split(" ");
			int a = Integer.parseInt(param[0]);
			int b = Integer.parseInt(param[1]);
			int c = Integer.parseInt(param[2]);
			long total = 0;
			int s2, s3, s5, s7, sx;
			long s;
			for (int i = 1; i <= a; i++) {
				for (int j = 1; j <= b; j++) {
					for (int k = 1; k <= c; k++) {
						s2 = table[i][0]+table[j][0]+table[k][0]+1;
						s3 = table[i][1]+table[j][1]+table[k][1]+1;
						s5 = table[i][2]+table[j][2]+table[k][2]+1;
						s7 = table[i][3]+table[j][3]+table[k][3]+1;
						s = s2 * s3 * s5 * s7;
						if (sosu[i] > 1) {
							sx = 2;
							if (sosu[i] == sosu[j]) sx++;
							if (sosu[i] == sosu[k]) sx++;
							s *= sx;
						}
						if (sosu[j] > 1 && sosu[j] != sosu[i]) {
							sx = 2;
							if (sosu[j] == sosu[k]) sx++;
							s *= sx;
						}
						if (sosu[k] > 1 && sosu[k] != sosu[i] && sosu[k] != sosu[j]) {
							s *= 2;
						}
						total += s;
						total %= 1073741824;
					}
				}
			}
			pw.println(total);
			
			pw.close();
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
			return;
		}
	}
}
