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.util.*;





public class Main {
    static Scanner input = new Scanner(System.in);
   
    static char[][] arr1;
    static ArrayList<ArrayList<Integer>> graph;
    static boolean[] vis;
    static int n; 
    static long m; 
    static ArrayList<Integer> lengths;
    static Stack<Integer> s = new Stack<>();
    static ArrayList<Integer> topo;
    static int count;
    static int arr[];
    static char[] charArr;
    static String word;
    static int[] d;
 
    public static class Pair{
    	int x;
    	int y;
    	
    	public Pair(int x, int y) {
    		this.x = x;
    		this.y = y;
		}
    	@Override
    	public String toString() {
    		return "(" + x + ", " + y + ")";
    	}
    }
    

	public static double distance(int x1, int y1, int x2, int y2) {
	   	return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
	}
	
	public static long stirling2(int i, boolean contain1, long n, long k) {
		if (n == k || k == 1)
			return 1;
		
		if (!contain1 && word.charAt(i) == '0')
			return k * stirling2(i + 1, false, n - 1, k);
		
		return k * stirling2(i + 1, true, n - 1, k) + stirling2(i + 1, false, n - 1, k - 1);  
	}
	
	public static long normalStirling(long n, long k) {
		if (n == k || k == 1)
			return 1;
		
		return k * normalStirling(n - 1, k) + normalStirling(n - 1, k - 1);  
	}
	
	public static int countDiv(int val) {
		
		if (val == 1)
			return 1;
		else if (val < 4)
			return 2;
		else {
			int count = 2;
			double sq = Math.sqrt(val);
			for (int i = 2; i < sq; i++)
				if (val % i == 0)
					count += 2;
			
			if (sq - (int) sq < 1e-6)
				count++;
			
			return count;
		}
		
	}
	 

    public static void main(String[] args) {
    	int a = input.nextInt();
    	int b = input.nextInt();
    	int c = input.nextInt();
    	
    	d = new int[a * b * c + 1];
    	
    	long total = 0;
    	
    	for (int i = 1; i <= a; i++)
    		for (int j = 1; j <= b; j++)
    			for (int k = 1; k <= c; k++) {
    				int val = i * j * k;
    				
    				if (d[val] == 0) {
    					int count = countDiv(val);
    					d[val] = count;
    					//total += count;
    				}
    				
    				total += d[val];		
    			}
    	
    	System.out.println(total % 1073741824);
    	
    }


    	
    




}    	