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 mod = 1073741824;
const int maxn = 2005;
map<array<int, 4>, long long> DP;
unordered_map<int, int> mp;
int A, B, C;
bool vis[2005];
int primes[500];
int tot;
void init() {
  tot = 0;
  for (int i = 2; i <= 2000; ++i) {
    if (!vis[i]) {
      ++tot;
      primes[tot] = i;
      for (int j = i; j <= 2000; j += i) {
        vis[j] = 1;
      }
    }
  }
  for (int i = 1; i <= tot; ++i) {
    mp[primes[i]] = i;
  }
}
long long solve(int a, int b, int c, int p) {
  if (p < 1) {
    return 1;
  }
  array<int, 4> t = {a, b, c, p};
  sort(t.begin(), t.begin() + 3);
  auto it = DP.find(t);
  if (it != DP.end()) {
    return it->second;
  }
  long long ret = 0;
  int pp = primes[p];
  for (int na = a, x = 0; na >= 1; na /= pp, ++x) {
    for (int nb = b, y = 0; nb >= 1; nb /= pp, ++y) {
      for (int nc = c, z = 0; nc >= 1; nc /= pp, ++z) {
        long long val = solve(na, nb, nc, p - 1) * (x + y + z + 1) % mod;
        ret = (ret + val) % mod;
      }
    }
  }
  return DP[t] = ret;
}
int main() {
  cin >> A >> B >> C;
  init();
  cout << solve(A, B, C, tot) << endl;
}