function fac (n) {
var result = 1;
for (var i = 2; i <= n; i++) {
result *= i;
}
return result;
}
function keno(a, n, m, k) {
var numer = fac(a) * fac(m) * fac(n-a) * fac(n-m);
var denom = fac(n) * fac(k) * fac(a-k) * fac(m-k) * fac(n-a-m+k);
return numer / denom;
}
print(fac(2));
print(fac(5));
print(fac(10));
print(keno (20, 80, 10, 5));
ZnVuY3Rpb24gZmFjIChuKSB7CiAgICB2YXIgcmVzdWx0ID0gMTsKICAgIGZvciAodmFyIGkgPSAyOyBpIDw9IG47IGkrKykgewogICAgICAgIHJlc3VsdCAqPSBpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQoKZnVuY3Rpb24ga2VubyhhLCBuLCBtLCBrKSB7CiAgICB2YXIgbnVtZXIgPSBmYWMoYSkgKiBmYWMobSkgKiBmYWMobi1hKSAqIGZhYyhuLW0pOwogICAgdmFyIGRlbm9tID0gZmFjKG4pICogZmFjKGspICogZmFjKGEtaykgKiBmYWMobS1rKSAqIGZhYyhuLWEtbStrKTsKICAgIHJldHVybiBudW1lciAvIGRlbm9tOwp9CgpwcmludChmYWMoMikpOwpwcmludChmYWMoNSkpOwpwcmludChmYWMoMTApKTsKcHJpbnQoa2VubyAoMjAsIDgwLCAxMCwgNSkpOw==