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 int N = 2001;
int miu[N], tot[N], sum[N];
int lcm[N][N];
int n, m, p;
void Init(int x) {
  int i, j, k;
  miu[1] = 1;
  for (i = 1; i < x; i++) {
    for (j = i; j < x; j += i) tot[j]++;
    for (j = i * 2; j < x; j += i) miu[j] -= miu[i];
  }
  for (i = 1; i < x; i++) sum[i] = sum[i - 1] + tot[i];
  for (k = 1; k < x; k++) {
    for (i = k; i < x; i += k) {
      for (j = k; j < x; j += k) lcm[i][j] = k;
    }
  }
  for (i = 1; i < x; i++) {
    int now = 0;
    for (j = 1; j < x; j++) {
      now += i;
      lcm[i][j] = now / lcm[i][j];
    }
  }
}
void DoIt() {
  int i, j, k;
  unsigned int ans = 0;
  int r = min(n, m);
  int s = min(n, p);
  int t = min(m, p);
  for (i = 1; i <= r; i++) {
    if (miu[i]) {
      for (j = 1; j <= s; j++) {
        if (miu[j] && lcm[i][j] <= n) {
          int ever = miu[i] * miu[j] * sum[n / lcm[i][j]];
          for (k = 1; k <= t; k++) {
            if (miu[k] && lcm[k][i] <= m && lcm[k][j] <= p)
              ans += ever * miu[k] * sum[m / lcm[k][i]] * sum[p / lcm[k][j]];
          }
        }
      }
    }
  }
  ans %= (1 << 30);
  int ansx = ans;
  printf("%d\n", ansx);
}
int main() {
  scanf("%d%d%d", &n, &m, &p);
  Init(max(max(n, m), p) + 1);
  DoIt();
  return 0;
}