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.util.*;
public class nineteen{
	public static void main(String[] args) {
		Scanner scn= new Scanner(System.in);
		int n;
		int a,b,c;
		a=scn.nextInt();
		b=scn.nextInt();
		c=scn.nextInt();
		int[] prime ={2,3,5,7,11,13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89,97};

		int i=2;
		Map<Integer,Map<Integer,Integer>> mymap = new HashMap<Integer,Map<Integer,Integer>>();

Map<Integer,Integer> temap=new HashMap<Integer,Integer>();
temap.put(2,0);		
		mymap.put(1,temap);
		while(i<=100)
		{
			int temp=i;
			while(temp>1)
			{
				for(int pr:prime)
				{
					if(temp%pr==0)
					{	
						Map<Integer,Integer> tempmap;
						int prcount=0;
						if(mymap.containsKey(i))
						{
								tempmap= mymap.get(i);
								if(tempmap.containsKey(pr))
								{
									prcount=tempmap.get(pr);
									tempmap.put(pr,prcount+1);
								}
								else
								{
									tempmap.put(pr,1);
								}
						}
						else
						{
								tempmap=new HashMap<Integer,Integer>();
								tempmap.put(pr,1);
								mymap.put(i,tempmap);
						}
						temp=temp/pr;
						break;
					}
				}
			}


			i++;
		}


		long sum=0;

		Map<Integer,Integer> mentrya,mentryb,mentryc;

		for(int q=1;q<=a;q++)
		{
			mentrya=new HashMap(mymap.get(q));
			for(int qb=1;qb<=b;qb++)
			{
				mentryb=new HashMap(mymap.get(qb));

				for(Map.Entry<Integer,Integer> trb:mentrya.entrySet())
				{
					if(mentryb.containsKey(trb.getKey()))
					{
						int yui=mentryb.get(trb.getKey());
						mentryb.put(trb.getKey(),yui+trb.getValue());
					}
					else
					{
						mentryb.put(trb.getKey(),trb.getValue());
					}
				}

				for(int qc=1;qc<=c;qc++)
				{

					mentryc=new HashMap(mymap.get(qc));	
					for(Map.Entry<Integer,Integer> trb:mentryb.entrySet())
					{
						if(mentryc.containsKey(trb.getKey()))
						{
							int yui=mentryc.get(trb.getKey());
							mentryc.put(trb.getKey(),yui+trb.getValue());
						}
						else
						{
							mentryc.put(trb.getKey(),trb.getValue());
						}
					}
					int product=1;
					for(Map.Entry<Integer,Integer> trb:mentryc.entrySet())
					{
							product*=(trb.getValue()+1);						
							
							// System.out.println(product);
					}	
					sum+=product;
					sum%=1073741824;
				}
			}			
		}


		// System.out.println(mymap);
		System.out.println(sum);




	}
}