#include <bits/stdc++.h>
long long C(int n, int m) {
  long long z = 1;
  for (int i = 0; i < m; i++) z = z * (n - i) / (i + 1);
  return z;
}
unsigned long long gcd(unsigned long long x, unsigned long long y) {
  while (y != 0) {
    unsigned long long t = x % y;
    x = y;
    y = t;
  }
  return x;
}
unsigned long long choose(unsigned long long n, unsigned long long k) {
  if (k > n) throw std::invalid_argument("invalid argument in choose");
  unsigned long long r = 1;
  for (unsigned long long d = 1; d <= k; ++d, --n) {
    unsigned long long g = gcd(r, d);
    r /= g;
    unsigned long long t = n / (d / g);
    if (r > std::numeric_limits<unsigned long long>::max() / t)
      throw std::overflow_error("overflow in choose");
    r *= t;
  }
  return r;
}
unsigned long long n, m, p;
int main() {
  scanf("%d %d %d", &n, &m, &p);
  printf("%I64d", C(n + m, p) - C(n, p) - C(m, p) - C(n, 1) * C(m, p - 1) -
                      C(n, 2) * C(m, p - 2) - C(n, 3) * C(m, p - 3));
}
