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.util.StringTokenizer;
import java.util.Collections;
import java.util.*;
public class Main {
	

	
	public static void main(String args[] ) throws Exception 
	{

	   
		   Solve instance = Solve.getInstance();
		   //int n = Solve.sc.nextInt();
		   //instance.solve(n);
		   instance.test();

	}

}


class Solve{
	
	static FastReader sc;
	static Solve instance = null;
	static int n;
	static int k;
	long array[];
	private Solve(){
		sc = new FastReader();
	}
	
	public static Solve getInstance(){
		 
		if(instance == null)
			instance = new Solve();
		return instance;
	}
	
	
	private void input(){
		
		n = sc.nextInt();
		k = sc.nextInt();
		
	}

	public void solve(int n){
		
		int ar[] = new int[n+1];
		
		ArrayList<Integer> list[] = new ArrayList[100001];
		ArrayList<pair> p = new ArrayList<>();
		HashMap<Integer,ArrayList<Integer>> s = new HashMap<>();
		for(int i=0;i<100001;i++)
		{
			list[i] = new ArrayList<>();
			if(i<n+1 && i>0)
				ar[i] = sc.nextInt();

		}
		for(int i = 1;i<n+1;i++)
		{
			int t = ar[i];
			list[t].add(i);
		}

		for(int i = 1;i<100001;i++)
		
		{
				int size = list[i].size();
				boolean ok = true;
				
			  if(list[i].size() == 0)
				 continue;


			
				else if(size ==1)
				{
					p.add(new pair(i,0));
					
				}
				else if(size>=2)
				{
					int t = list[i].get(1) - list[i].get(0);
					for(int j = 2;j<list[i].size();j++)
					{
						if(t != list[i].get(j) - list[i].get(j-1)){
							ok = false;
							break;
						}
							
					}
					if(ok)
					{
										p.add(new pair(i,t));
					}
				}
			}
		
		
		System.out.println(p.size());
		for(pair a: p)
		{
			System.out.println(a.i+" "+a.j);
		}
		
	}
public  void test()
{
	int n = sc.nextInt();
	int m = sc.nextInt();
	int k = sc.nextInt();
    array = new long[n*m*k+1];
	long ans = 0;
	for(int i= 1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			for(int l = 1;l<=k;l++)
			{
				int temp = i*j*l;
				if(array[temp] == 0)
					ans += d(temp);
				else
					ans += array[temp];
			}
		}
	}
	sout(ans%(1073741824));
}
public void sout(Object s)
{
	System.out.println(s);
}
public long d(long n)
{
	long counter = 0 ;
	//long s = (long)Math.sqrt(n);
	for(int i= 1;i*i<=n;i++)
	{
		if(n%i == 0){
		 counter++;
		 if(i*i != n)
			counter++;
	 }
	}
	array[(int)n] = counter;
	return counter;
}
}


			
				

class pair{

int i;
int j;
public pair(int i,int j)
{
	this.i = i;
	this.j = j;
}
}

 class FastReader 
    { 
        BufferedReader br; 
        StringTokenizer st; 
  
        public FastReader() 
        { 
            br = new BufferedReader(new
                     InputStreamReader(System.in)); 
        } 
  
        String next() 
        { 
            while (st == null || !st.hasMoreElements()) 
            { 
                try
                { 
                    st = new StringTokenizer(br.readLine()); 
                } 
                catch (IOException  e) 
                { 
                    e.printStackTrace(); 
                } 
            } 
            return st.nextToken(); 
        } 
  
        int nextInt() 
        { 
            return Integer.parseInt(next()); 
        } 
  
        long nextLong() 
        { 
            return Long.parseLong(next()); 
        } 
  
        double nextDouble() 
        { 
            return Double.parseDouble(next()); 
        } 
  
        String nextLine() 
        { 
            String str = ""; 
            try
            { 
                str = br.readLine(); 
            } 
            catch (IOException e) 
            { 
                e.printStackTrace(); 
            } 
            return str; 
        } 
    } 

 
