#include "cpp_headers/fcpp.hh"

// Helper Funktion fuer Fakultaet
// berechnet Fakultaet linear iterativ
int fakIter(int produkt, int zaehler, int ende) {
    return cond(zaehler>ende,
                produkt,
                fakIter(produkt*zaehler,zaehler+1,ende));
}

// Berechnet die Fakulaet einer Zahl
int fakultaet(int n) {
    return fakIter(1,1,n);
}

// Berechnet den Binomial Koeffizienten (n ueber k) durch seine explizite
// Darstellung
int binomial_fast(int n, int k) {
    return fakultaet(n)/(fakultaet(k) * fakultaet(n-k));
}

int main(int argc, char **argv) {
    return print(binomial_fast(readarg_int(argc, argv, 1),
                               readarg_int(argc, argv, 2)));
}
