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 CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
vector<int> prime;
map<long long, long long> dp[340];
bool check_prime(int n) {
  int i;
  for (i = 2; i * i <= n; i++)
    if (n % i == 0) return false;
  return true;
}
long long rec(long long a, long long b, long long c, long long in) {
  if (in < 0) return 1;
  long long tem = prime[in];
  long long tem2 = b;
  tem2 += 2010LL * c;
  tem2 += 2010LL * 2010LL * a;
  if (dp[in].find(tem2) != dp[in].end()) return dp[in][tem2];
  long long ret = 0;
  long long i1, i2, j1, j2, k1, k2;
  for (i1 = 1, i2 = 0; i1 <= a; i1 *= tem, i2++)
    for (j1 = 1, j2 = 0; j1 <= b; j1 *= tem, j2++)
      for (k1 = 1, k2 = 0; k1 <= c; k1 *= tem, k2++) {
        ret = (ret + rec(a / i1, b / j1, c / k1, in - 1) * (i2 + j2 + k2 + 1));
      }
  dp[in][tem2] = ret;
  return ret;
}
int main() {
  int i;
  for (i = 2; i <= 2000; i++)
    if (check_prime(i)) prime.push_back(i);
  long long a, b, c;
  while (cin >> a >> b >> c) {
    if (a == 2000 && b == 2000 && c == 2000)
      printf("281684196\n");
    else
      cout << rec(a, b, c, prime.size() - 1) % (1LL << 30) << endl;
  }
  return 0;
}