There are n boys and m girls attending a theatre club. To set a play "The Big Bang Theory", they need to choose a group containing exactly t actors containing no less than 4 boys and no less than one girl. How many ways are there to choose a group? Of course, the variants that only differ in the composition of the troupe are considered different.

Perform all calculations in the 64-bit type: long long for С/С++, int64 for Delphi and long for Java.

Input

The only line of the input data contains three integers n, m, t (4 ≤ n ≤ 30, 1 ≤ m ≤ 30, 5 ≤ t ≤ n + m).

Output

Find the required number of ways.

Please do not use the %lld specificator to read or write 64-bit integers in С++. It is preferred to use cin, cout streams or the %I64d specificator.

Examples

Input

5 2 5


Output

10


Input

4 3 5


Output

3
//import com.sun.org.apache.xml.internal.security.algorithms.Algorithm;
import java.util.*;
import java.util.Scanner;

import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.io.InputStream; 
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;

import java.math.BigDecimal;
import java.math.BigInteger;
import javax.management.StringValueExp;


public class TheMain {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
//		InputReader in = new InputReader("input.txt");
		PrintWriter out = new PrintWriter(outputStream);
		Scanner sc;
		sc = new Scanner(inputStream);
/*		File file  = new File("input.txt");
		try {
		    sc = new Scanner(file);
 */
		    Task solver = new Task();
		    solver.solve(sc, out);

/*
		     } catch (FileNotFoundException e) {
		    e.printStackTrace();
 		}
 */

		out.close();
	}

}


class Task {
	static long[][] bin = new long[100][100];
	public void solve(Scanner in, PrintWriter out) {
	    int n = in.nextInt(),
		m = in.nextInt(),
		t = in.nextInt();
	    for (int i = 0; i < 100; ++i)
		for (int j = 0; j < 100; ++j)
		    bin[i][j] = -1;

//	    out.print(BinomialC(1,2));
	    long res = 0;
	    for (int boys = 4; boys <= n && boys <= t - 1; ++boys)
//		for (int girls = 1; girls <= m && girls <= t - boys; ++girls)
		res += BinomialC(n, boys) * BinomialC(m, t - boys);
//		    res += BinomialC(n, boys) * BinomialC(m, girls);
	    out.println(res);

	}


	public static long BinomialC(int n, int k) {
	    long ret = 0;
	    if (bin[n][k] != -1)
		ret = bin[n][k];
	    else
	    if (k > n) 
		ret = 0;
	    else
	    if (k > n/2)
		ret = BinomialC(n, n - k);
	    else
	    if (k == 0)
		ret = 1;
	    else
		ret = BinomialC(n - 1, k) + BinomialC(n - 1, k - 1);

	    bin[n][k] = ret;
	    return ret;
	}

}


class InputReader {
    private BufferedReader reader;
    private StringTokenizer tokenizer;

    public InputReader(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream));
        tokenizer = null;
    }

    public String next() {
        while (tokenizer == null || !tokenizer.hasMoreTokens()) {
            try {
                tokenizer = new StringTokenizer(reader.readLine());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return tokenizer.nextToken();
    }

    public int nextInt() {
        return Integer.parseInt(next());
    }
    
}