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.*;
import java.io.*;
import java.math.*;


public class Main {
/*



 */
	public static void main(String[] args) throws Exception {
		uu.s1();
	}
	public static class uu {
		public static BR in = new BR();
		public static boolean bg = true;
		public static void s1() throws Exception {
			int n1 = in.ni();
			int n2 = in.ni();
			int t = in.ni();
			BigInteger fin = bi(0);
			for (int i = 4;i<=t-1;i++){
				BigInteger q1 = Comb.combination(n1, i);
				BigInteger q2 = Comb.combination(n2, t-i);
				BigInteger q3 = q1.multiply(q2);
				fin = fin.add(q3);
			}
			pn(fin);
		}
		public static void s2() throws Exception {
		}
		public static void s3() throws Exception {
			
		}
		private static BigInteger bi(long n1) {
			return BigInteger.valueOf(n1);
		}

		private static void pn(Object o1) {
			System.out.println(o1);
		}

		public static boolean allTrue(boolean ... l1){
			for (boolean e: l1) if (!e) return false;
			return true;
		}
		public static boolean allFalse(boolean ... l1){
			for (boolean e: l1) if (e) return false;
			return true;
		}
	}
	private static class Comb {
		public static BigInteger bi(long n1){
			return BigInteger.valueOf(n1);
		}
		public static BigInteger factorial(int n1){
			return factorial(n1, n1);
		}
		public static BigInteger factorial(int n1, int k1){
			BigInteger fin = bi(1);
			BigInteger mult = bi(n1);
			for (int i = 0;i<k1;i++){
				fin = fin.multiply(mult);
				mult = mult.subtract(bi(1));
			}
			return fin;
		}
		public static BigInteger combination(int n1, int k1){
			return factorial(n1,k1).divide(factorial(k1));
		}
	}
	
	private static class BR {
		BufferedReader k1 = null;
		StringTokenizer k2 = null;

		public BR() {
			k1 = new BufferedReader(new InputStreamReader(System.in));
		}
		public String nx() throws Exception {
			for (;;) {
				if (k2 == null || !k2.hasMoreTokens()) {
					String temp = k1.readLine();
					if (temp == null)
						return null;
					k2 = new StringTokenizer(temp);
				}
				else
					break;
			}

			return k2.nextToken();
		}

		public int ni() throws Exception {
			return Integer.parseInt(nx());
		}
	}
}
