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;
int a, b, c;
int f[2001 * 2001];
int _GCD[2001][2001];
int GCD(int a, int b) {
  if (_GCD[a][b]) return _GCD[a][b];
  if (!b) return a;
  return _GCD[a][b] = GCD(b, a % b);
}
int phi(int x) {
  if (x & 1) return -1;
  return 1;
}
int main() {
  cin >> a >> b >> c;
  for (int j = (1); j <= (b); j++)
    for (int k = (1); k <= (c); k++)
      if (GCD(j, k) == 1) f[j * k] += (b / j) * (c / k);
  for (int x = (1); x <= (b * c); x++)
    for (int y = 2 * x; y <= b * c; y += x) f[x] += f[y];
  int ans = 0;
  for (int i = (1); i <= (a); i++) {
    vector<int> L;
    int x, y;
    for (x = i, y = 2; y * y <= x; y++)
      if (x % y == 0) {
        L.push_back(y);
        while (x % y == 0) x /= y;
      }
    if (x != 1) L.push_back(x);
    for (int s = (0); s <= ((1 << int((L).size())) - 1); s++) {
      int x = 1, cnt = 0;
      for (int j = (0); j <= (int((L).size()) - 1); j++)
        if ((s >> j) & 1) cnt++, x *= L[j];
      ans += phi(cnt) * f[x] * (a / i);
    }
  }
  cout << (ans % (1 << 30) + (1 << 30)) % (1 << 30);
  return 0;
}