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 ≤ 100).

Output

Print a single integer — the required sum modulo 1073741824 (230).

Examples

Input

2 2 2


Output

20


Input

5 6 7


Output

1520

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.
#include <bits/stdc++.h>
using namespace std;
using namespace std;
void init() {
  cin.tie(0);
  cin.sync_with_stdio(0);
  cout.tie(0);
}
struct point {
  double x, y;
  point() { x = y = 0.0; }
  point(double _x, double _y) : x(_x), y(_y) {}
  bool operator<(point other) const {
    if ((fabs(x - other.x) > 1e-9)) return x < other.x;
    return y < other.y;
  }
  bool operator==(point other) const {
    return fabs(x - other.x) < 1e-9 && fabs(y - other.y) < 1e-9;
  }
  point operator+(const point& p) const { return point(x + p.x, y + p.y); }
  point operator-(const point& p) const { return point(x - p.x, y - p.y); }
  double dot(const point& p) const { return x * p.x + y * p.y; }
  double cross(const point& p) const { return x * p.y - y * p.x; }
};
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
double dist(point p1, point p2) { return hypot(p1.x - p2.x, p1.y - p2.y); }
bool preceed(int x, int y) { return x > y; }
int dcmp(double a, double b) {
  if (fabs(a - b) <= 1e-9) return 0;
  return 1;
}
const int N = 1e6 + 9;
bool flag;
int arr[N];
int main() {
  init();
  int a, b, c;
  cin >> a >> b >> c;
  for (int i = 1; i < N; i++) {
    for (int j = i * 2; j < N; j += i) {
      arr[j]++;
    }
  }
  int ans = 0;
  for (int i = 1; i <= a; i++)
    for (int j = 1; j <= b; j++)
      for (int k = 1; k <= c; k++) ans += arr[i * j * k] + 1, ans %= 1073741824;
  cout << ans << '\n';
}
