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 java.util.Arrays;
import java.util.*;
import java.io.*;
import java.lang.Math.*;

//note: for this problem, I cannot just compute N! and device, 
//as that is too computationally expensive
//need to use (recursion + dp + mod property ) 

/*
 * recursive formula for nCr:
 * nCr = (n-1) C(r-1) + (n-1)C(R)
 */

public  class combinations {
	
	
	static int minDist = Integer.MAX_VALUE; 
	static int[][] numbers;
	static long[][] table;

	public static void main(String[] args) 
	{

	   Scanner infile = new Scanner(System.in);

     	int n  = infile.nextInt(); //number of boys - must be @ least 4
     	int m = infile.nextInt(); //number of girls - must be @ least 1
		int t = infile.nextInt(); //totaol number of troupe players
		//note: t can be greater than 5 => so you need to get the requirements,
		//then use the sum of (n-4) + (m - 1) to get the rest of (t-5) actors

		long result = 0;
     	BuildTable(n+m+1,n+m+1); //only possible maximums available!!!
     	/*for(int a = 0; a < table.length; a++)
     	{
     		for(int b = 0; b < table[0].length; b++)
     			System.out.print(table[a][b] + " ");
     		System.out.println();
     	}*/

     	for(int i = 4; i <= t; i++)
     	{
     		if(t-i == 0) break;
     		result += (nCr(n,i) * nCr(m,t-i));
     	}

		System.out.println(result);

     }

     public static long nCr(int n, int r)
     {
     	//System.out.println("Value computed = " + table[n][r]);
    	return table[n][r];
     }

     public static void BuildTable(int maxN, int maxR)
     {
     	table = new long[maxN + 1][maxR + 1]; //all 0's originally!
     	for(int n = 0; n < maxN; n++)
     	{
     		for(int r = 0; r <= n ; r++)
     		{
     			if(r == 0) table[n][r] = 1; //property of nC0 = nCn = n!/(0!)(n!) = 1
     			else table[n][r] = (table[n-1][r-1] + table[n-1][r]);
     		}
     	}
     }

 }