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.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.StringTokenizer;

public class A {
	static final long MOD = 1L << 30;
	public static void main(String[] args) throws IOException {
		FastScanner in = new FastScanner(System.in);
		PrintWriter out = new PrintWriter(System.out);
		int[] pf = new int[101];
		for(int i=2;i<pf.length;i++) {
			if(pf[i] != 0) continue;
			pf[i] = i;
			for(long j=i*(long)i;j<pf.length;j+=i)
				pf[(int)j] = i;
		}
		int a = in.nextInt(), b = in.nextInt(), c = in.nextInt();
		long sum = 0;
		for(int i=1;i<=a;i++) {
			for(int j=1;j<=b;j++) {
				for(int k=1;k<=c;k++) {
					long cur = 1;
					int i1 = i, j1 = j, k1 = k;
					while(i1 > 1 || j1 > 1 || k1 > 1) {
						int prime = pf[Math.max(i1, Math.max(j1, k1))];
						int cnt = 1;
						while(i1 % prime == 0) {
							i1 /= prime;
							cnt++;
						}

						while(j1 % prime == 0) {
							j1 /= prime;
							cnt++;
						}

						while(k1 % prime == 0) {
							k1 /= prime;
							cnt++;
						}
						cur *= cnt;
						cur %= MOD;
					}
					sum += cur;
					sum %= MOD;
				}
			}
		}
		out.println(sum);
		out.close();
		
	}
	static class FastScanner {
		BufferedReader br;
		StringTokenizer st;
		public FastScanner(InputStream in) {
			br = new BufferedReader(new InputStreamReader(in));
			st = null;
		}
		public String next() throws IOException {
			while(st == null || !st.hasMoreElements())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}
		public int nextInt() throws IOException {
			return Integer.parseInt(next());
		}
	}
}