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;
const long long mod = (1ll << 30);
int a, b, c;
int mu[4000005];
int pri[2000005];
int lenp;
bool vis[4000005];
long long f[4000005];
long long s[4000005];
long long x[4000005];
long long y[4000005];
long long ans;
void oular() {
  mu[1] = 1;
  for (int i = 2; i <= 4000000; i++) {
    if (!vis[i]) {
      pri[++lenp] = i;
      mu[i] = -1;
    }
    for (int j = 1; pri[j] * i <= 4000000 && j <= lenp; j++) {
      if (i % pri[j] == 0) {
        mu[i * pri[j]] = 0;
        vis[i * pri[j]] = 1;
        break;
      }
      mu[i * pri[j]] = -mu[i];
      vis[i * pri[j]] = 1;
    }
  }
}
int main() {
  cin >> a >> b >> c;
  oular();
  for (int i = 1; i <= a; i++)
    for (int j = 1; j <= b; j++) f[i * j]++;
  for (int i = 1; i <= a * b; i++)
    for (int j = 1; j <= a * b / i; j++) s[i] = (s[i] + f[i * j]) % mod;
  for (int i = 1; i <= c; i++)
    for (int j = 1; j <= a * b / i; j++) x[i] = (x[i] + s[i * j]) % mod;
  for (int i = 1; i <= c; i++)
    for (int j = 1; j <= i; j++) y[i] = (y[i] + i / j) % mod;
  for (int i = 1; i <= c; i++)
    ans = (ans + (mu[i] * x[i] * y[c / i] % mod + mod) % mod) % mod;
  cout << ans;
  return 0;
}