#include <bits/stdc++.h>
using namespace std;
const long double PI = 3.1415926535897932384626;
long long MOD = 1000000007;
const long double EPS = 1e-9;
const int N = 3e5 + 7;
inline long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
inline unsigned int setBits(unsigned int v) {
  unsigned int c;
  for (c = 0; v; ++c) v &= (v - 1);
  return c;
}
inline bool isPowerOfTwo(unsigned int v) { return (v && !(v & (v - 1))); }
long long power(long long base, unsigned long long exp, long long mod = MOD) {
  long long res = 1;
  base %= mod;
  while (exp) {
    if (exp & 1) res = (res * base) % mod;
    exp >>= 1;
    base = (base * base) % mod;
  }
  return res;
}
long long modInv(long long a, long long mod = MOD) {
  if (mod == 1) return 0;
  long long x = 1, y = 0, m = mod;
  while (a > 1) {
    long long q = a / m, t = m;
    m = a % m;
    a = t;
    t = y;
    y = x - q * y;
    x = t;
  }
  if (x < 0) x += mod;
  return x;
}
inline unsigned int iabs(int x) {
  unsigned int y = x;
  return (y > 0) ? y : -y;
}
inline long long add(long long a, long long b, long long mod = MOD) {
  long long res = (a % mod + b % mod) % mod;
  return res;
}
inline long long sub(long long a, long long b, long long mod = MOD) {
  long long res = (a % mod - b % mod + mod) % mod;
  return res;
}
inline long long mult(long long a, long long b, long long mod = MOD) {
  long long res = (a % mod * b % mod) % mod;
  return res;
}
inline long long div(long long a, long long b, long long mod = MOD) {
  long long res = (a % mod * modInv(b, mod)) % mod;
  return res;
}
void openf() {}
long long ceil(long long a, long long b) { return (a + b - 1) / b; }
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  openf();
  long long x, y, n, num, deno, tnum, tdeno, A, B;
  cin >> x >> y >> n;
  num = x - (x / y) * y, deno = y;
  A = (x / y), B = 1;
  tnum = ceil(x, y) * y - x, tdeno = y;
  if (num > tnum) {
    num = tnum;
    A = ceil(x, y);
  }
  for (long long b = 2; b <= n; ++b) {
    tnum = b * x - ((b * x) / y) * y, tdeno = b * y;
    if (num * tdeno > tnum * deno) {
      num = tnum;
      A = (b * x) / y, B = b;
      deno = tdeno;
    }
    tnum = ceil(b * x, y) * y - b * x, tdeno = b * y;
    if (num * tdeno > tnum * deno) {
      A = ceil(b * x, y), B = b;
      num = tnum;
      deno = tdeno;
    }
  }
  cout << A << "/" << B << endl;
  return 0;
}

### Prompt

Your task is to create a Cpp solution to the following problem:

You are given three positive integers x, y, n. Your task is to find the nearest fraction to fraction <image> whose denominator is no more than n. 

Formally, you should find such pair of integers a, b (1 ≤ b ≤ n; 0 ≤ a) that the value <image> is as minimal as possible.

If there are multiple "nearest" fractions, choose the one with the minimum denominator. If there are multiple "nearest" fractions with the minimum denominator, choose the one with the minimum numerator.

Input

A single line contains three integers x, y, n (1 ≤ x, y, n ≤ 105).

Output

Print the required fraction in the format "a/b" (without quotes).

Examples

Input

3 7 6


Output

2/5


Input

7 2 4


Output

7/2

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const long double PI = 3.1415926535897932384626;
long long MOD = 1000000007;
const long double EPS = 1e-9;
const int N = 3e5 + 7;
inline long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
inline unsigned int setBits(unsigned int v) {
  unsigned int c;
  for (c = 0; v; ++c) v &= (v - 1);
  return c;
}
inline bool isPowerOfTwo(unsigned int v) { return (v && !(v & (v - 1))); }
long long power(long long base, unsigned long long exp, long long mod = MOD) {
  long long res = 1;
  base %= mod;
  while (exp) {
    if (exp & 1) res = (res * base) % mod;
    exp >>= 1;
    base = (base * base) % mod;
  }
  return res;
}
long long modInv(long long a, long long mod = MOD) {
  if (mod == 1) return 0;
  long long x = 1, y = 0, m = mod;
  while (a > 1) {
    long long q = a / m, t = m;
    m = a % m;
    a = t;
    t = y;
    y = x - q * y;
    x = t;
  }
  if (x < 0) x += mod;
  return x;
}
inline unsigned int iabs(int x) {
  unsigned int y = x;
  return (y > 0) ? y : -y;
}
inline long long add(long long a, long long b, long long mod = MOD) {
  long long res = (a % mod + b % mod) % mod;
  return res;
}
inline long long sub(long long a, long long b, long long mod = MOD) {
  long long res = (a % mod - b % mod + mod) % mod;
  return res;
}
inline long long mult(long long a, long long b, long long mod = MOD) {
  long long res = (a % mod * b % mod) % mod;
  return res;
}
inline long long div(long long a, long long b, long long mod = MOD) {
  long long res = (a % mod * modInv(b, mod)) % mod;
  return res;
}
void openf() {}
long long ceil(long long a, long long b) { return (a + b - 1) / b; }
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  openf();
  long long x, y, n, num, deno, tnum, tdeno, A, B;
  cin >> x >> y >> n;
  num = x - (x / y) * y, deno = y;
  A = (x / y), B = 1;
  tnum = ceil(x, y) * y - x, tdeno = y;
  if (num > tnum) {
    num = tnum;
    A = ceil(x, y);
  }
  for (long long b = 2; b <= n; ++b) {
    tnum = b * x - ((b * x) / y) * y, tdeno = b * y;
    if (num * tdeno > tnum * deno) {
      num = tnum;
      A = (b * x) / y, B = b;
      deno = tdeno;
    }
    tnum = ceil(b * x, y) * y - b * x, tdeno = b * y;
    if (num * tdeno > tnum * deno) {
      A = ceil(b * x, y), B = b;
      num = tnum;
      deno = tdeno;
    }
  }
  cout << A << "/" << B << endl;
  return 0;
}

```