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.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;


public class problemC implements Runnable{
    
    public void solve() throws IOException{
        int[] inp=intArr();
        int n=inp[0];
        int m=inp[1];
        int t=inp[2];

        int nn=Math.max(n, m);
        
        long[][] c=new long[nn+1][nn+1];
        //make Cnk
        for(int i=0;i<=nn;i++){
            c[i][0]=1;
            c[i][1]=i;
            for(int j=2;j<=i;j++){
                c[i][j]=c[i-1][j-1]+c[i-1][j];
            }
        }
        long sum=0;
        for(int xn=4,xm=t-xn;xn<=n && xm>=1;xn++,xm--){
            if(xm>m) continue;
            sum+=c[n][xn]*c[m][xm];
        }
        out.println(sum);
        return;
    }

    public static void main(String[] args){
        new problemC().run();
    }

    @Override
    public void run(){
//      System.out.println("trying to solve");
        try{
            in=new BufferedReader(new InputStreamReader(stdin));
            out=new PrintWriter(stdout);
            solve();
            in.close();
            out.close();
        } catch (Exception ex){
            ex.printStackTrace();
            System.exit(1);
        }
    }
    
    BufferedReader in;
    PrintWriter out;
    
    int[] intArr() throws IOException {
        String[] arr=nextLine().split("\\s");
        int[] res=new int[arr.length];
        for(int i=0;i<arr.length;i++) res[i]=Integer.parseInt(arr[i]);
        return res;
    }

    long[] longArr() throws IOException {
        String[] arr=nextLine().split("\\s");
        long[] res=new long[arr.length];
        for(int i=0;i<arr.length;i++) res[i]=Long.parseLong(arr[i]);
        return res;
    }

    double[] doubleArr() throws IOException {
        String[] arr=nextLine().split("\\s");
        double[] res=new double[arr.length];
        for(int i=0;i<arr.length;i++) res[i]=Double.parseDouble(arr[i]);
        return res;
    }

    String nextLine() throws IOException {
        return in.readLine();
    }
    
    InputStream stdin;
    OutputStream stdout;
    public problemC(){
        stdin=System.in;
        stdout=System.out;
    }
    
    public problemC(InputStream stdin, OutputStream stdout){
        this.stdin=stdin;
        this.stdout=stdout;
    }
}