Problem: 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 ≤ 2000).

Output

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

Examples

Input

2 2 2


Output

20


Input

4 4 4


Output

328


Input

10 10 10


Output

11536

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.

Solution (in JAVA):

Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;


public class B236 {

	static int memo [] = new int[(int) 1e7 +10]; 
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int A = Integer.parseInt(st.nextToken()),
			B = Integer.parseInt(st.nextToken()),
			C = Integer.parseInt(st.nextToken());
		
		int res = 0;
		for(int i = 1; i <= A; i++)
			for(int j = 1; j <= B; j++)
				for(int k = 1; k <= C; k++){
					res += d(i*j*k) % (1 << 30);					
					}
		
		System.out.println(res);
		
	}	
	
	public static int d(int n){
		if(memo[n]!= 0)
			return memo[n];
		int T = n;
		
		int dis = 1;
		int p = 0;
		
		for(int i = 2;i < 1000;i++)
			if(n % i == 0){
				while(n % i == 0){
					p++;
					n/=i;
				}
				dis *= (p+1);
				p = 0;
				if(n == 1)
					break;
			}		
		memo[T] = dis;
		return dis;
	}
}