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

public class HelloWorld {
    
    InputReader input;
    PrintWriter output;
    
    void run(){
        try {
            output = new PrintWriter(new OutputStreamWriter(System.out));
            input = new InputReader(System.in);
            solve();
            output.flush();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            return;
        }
    }
    
    public static void main(String[] args){
        new HelloWorld().run();
    }

    void solve() {
        int b = input.readInt();
        int g = input.readInt();
        int t = input.readInt();
        Combinations x = new Combinations(30, 30);
        long res = 0;
        for(int i = 4; i <= t-1; i++) {
            int j = t-i;
            if(b >= i && g >= j) {
                res += x.comb(b, i)*x.comb(g, j);
            }
        }
        output.println(res);
    }
    
    class InputReader {
        private InputStream stream;
        private byte[] buf = new byte[1024];
        private int curChar;
        private int numChars;
        public InputReader(InputStream stream) {
            this.stream = stream;
        }
        
        public int read() {
            if (numChars == -1)
                throw new InputMismatchException();
            if (curChar >= numChars)
        {
        curChar = 0;
        try {
            numChars = stream.read(buf);
        } catch (IOException e) {
            throw new InputMismatchException();
        }
        if (numChars <= 0)
        return -1;
        }
        return buf[curChar++];
        }
        
        public int readInt() {
            int c = read();
            while (isSpaceChar(c))
            c = read();
            int sgn = 1;
            if (c == '-')
            {
                sgn = -1;
                c = read();
            }
            int res = 0;
            do
            {
                if (c < '0' || c > '9')
                throw new InputMismatchException();
                res *= 10;
                res += c - '0';
                c = read();
            } while (!isSpaceChar(c));
            return res * sgn;
        }
        
        public String readString() {
            int c = read();
            while (isSpaceChar(c))
            c = read();
            StringBuffer res = new StringBuffer();
            do {
                res.appendCodePoint(c);
                c = read();
            } while (!isSpaceChar(c));
            return res.toString();
        }
        
        public Long readLong() {
            return Long.parseLong(readString());
        }
        
        public Double readDouble() {
            return Double.parseDouble(readString());
        }
        
        public boolean isSpaceChar(int c) {
            return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
        }
    } 
    
    class Combinations {

        /**
         * Calculates nCk in a DP Table using the recurrence :
         * (n) C (k) = (n-1) C (k-1) + (n-1) C (k) 
         */
        
        long[][] c;
        
        public Combinations(int maxn, int maxk) {
            c = new long[maxn+1][maxk+1];
            c[0][0] = 1;
            for(int i = 0; i <= maxn; i++) {
                c[i][0] = 1;
            }
            for(int i = 1; i <=maxn; i++) {
                for(int j = 1; j <= i; j++) {
                    c[i][j] = (c[i-1][j-1] + c[i-1][j]);
                }
            }
        }
        
        public long comb(int n, int k) {
            return c[n][k];
        }
        

    }
    
}
