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 factor[4321321];
int gcd[2121][2121];
unsigned hits[4321321];
unsigned fact[20];
unsigned tot = 0;
void dfs(int i, int inc, int got = 1) {
  while (i--) dfs(i, inc, got * fact[i]);
  if (got != 1) hits[got] += inc;
}
unsigned sfd(int i, int got = 1, int sign = -1) {
  unsigned res = hits[got] * sign;
  while (i--) res += sfd(i, got * fact[i], -sign);
  return res;
}
int main() {
  for (int i = 0; i < 2100; i++)
    for (int j = 0; j < 2100; j++) gcd[i][j] = (i ? gcd[j % i][i] : j);
  for (unsigned i = 2; i < 4321321; i++)
    if (not factor[i])
      for (unsigned j = i * (factor[i] = i); j < 4321321; j += i)
        if (not factor[j]) factor[j] = i;
  int a, b, c;
  cin >> a >> b >> c;
  for (int i = 1; i <= b; i++)
    for (int j = 1; j <= c; j++)
      if (gcd[i][j] == 1) {
        int last = -1, facts = 0;
        for (int u = i, q = -1; u - 1; u /= (q = factor[u]))
          if (q != factor[u]) fact[facts++] = factor[u];
        for (int v = j, q = -1; v - 1; v /= (q = factor[v]))
          if (q != factor[v]) fact[facts++] = factor[v];
        dfs(facts, (b / i) * (c / j));
        tot += (b / i) * (c / j);
      }
  unsigned res = 0;
  for (int i = 1; i <= a; i++) {
    int facts = 0, square_free = 1;
    for (int u = i, q = -1; u - 1; u /= (q = factor[u]))
      if (q != factor[u]) fact[facts++] = factor[u], square_free *= factor[u];
    res += (a / i) * (tot - sfd(facts));
  }
  cout << (res & ((1ll << 30ll) - 1ll)) << endl;
}