/**
* Author: Sergey Kopeliovich (Burunduk30@gmail.com)
* Date: 2012.11.14
*
* Solution to acm.timus.ru:1620
*/
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cassert>
#include <algorithm>
#include <iostream>
using namespace std;
#define forn(i, n) for (int i = 0; i < (int)(n); i++)
typedef long long ll;
const int L = 1001;
const int base = 1 << 30;
const int blen = 30;
const int base2 = (int)1e9;
const int blen2 = 9;
ll tmp[L];
struct num
{
int n, a[L];
void init( int x )
{
n = 0;
while (x)
a[n++] = x % base, x /= base;
reverse(a, a + n);
}
num() { n = 0; }
num( int x )
{
init(x);
}
const int& operator [] ( int i ) const
{
return a[i];
}
int& operator [] ( int i )
{
return a[i];
}
num& operator = ( const num &x )
{
n = x.n;
forn(i, n)
a[i] = x[i];
return *this;
}
num& operator += ( const num &x )
{
while (n < x.n)
a[n++] = 0;
int m = min(n, x.n);
forn(i, m)
a[i] += x[i];
forn(i, n - 1)
if (a[i] >= base)
a[i + 1]++, a[i] -= base;
if (n && a[n - 1] >= base)
a[n - 1] -= base, a[n++] = 1;
return *this;
}
num& operator *= ( ll x )
{
if (!n || x <= 0)
{
n = 0;
return *this;
}
forn(i, n)
tmp[i] = a[i] * x;
forn(i, n - 1)
tmp[i + 1] += tmp[i] >> blen, a[i] = tmp[i] & (base - 1);
while (tmp[n - 1] >= base)
a[n - 1] = tmp[n - 1] & (base - 1), tmp[n] = tmp[n - 1] >> blen, n++;
a[n - 1] = tmp[n - 1];
return *this;
}
bool even( int x )
{
ll rest = 0;
for (int i = n - 1; i >= 0; i--)
rest = (rest * base + a[i]) % x;
return rest == 0;
}
void cor()
{
while (n > 0 && !a[n - 1])
n--;
}
ll div( int x )
{
ll rest = 0;
for (int i = n - 1; i >= 0; i--)
{
rest = rest * base + a[i];
a[i] = rest / x;
rest %= x;
}
cor();
return rest;
}
void out()
{
cor();
if (!n)
{
putchar('0');
return;
}
int tn = 0;
while (n > 0)
tmp[tn++] = div(base2);
assert(tn > 0);
printf("%d", (int)tmp[--tn]);
while (tn)
printf("%0*d", blen2, (int)tmp[--tn]);
}
};
const int K = 1000;
int n, m, k;
num T, down, res, r[2 * K + 1];
int main()
{
scanf("%d%d%d", &n, &m, &k);
if (m * 2 == n)
{
printf("%d/%d\n", m, 1);
return 0;
}
r[k].init(1);
for (int i = 1; i <= k; i++)
for (int j = k - i; j <= k + i; j += 2)
{
r[j].n = 0;
if (j != k - i)
T = r[j - 1], r[j] += (T *= n - (m + j - 1 - k));
if (j != k + i)
T = r[j + 1], r[j] += (T *= m + j + 1 - k);
}
for (int i = 0; i <= 2 * k; i += 2)
res += (r[i] *= m + i - k);
down.init(1);
forn(i, k)
down *= n;
int p[] = {2, 3, 5, 7, 11, 13, 17};
forn(t, 7)
while (res.even(p[t]) && down.even(p[t]))
res.div(p[t]), down.div(p[t]);
res.out();
putchar('/');
down.out();
return 0;
}