fn min(a: int, b: int): int {
return a < b ? a : b;
}
fn max(a: int, b: int): int {
return a > b ? a : b;
}
fn sign(a: int): int {
return a > 0 ? 1 : a == 0 ? 0 : -1;
}
fn abs(a: int): int {
return a * sign(a);
}
fn factorial(n: int): int {
let res: int = 1;
for (;n > 0; n = n - 1)
res = res * n;
return res;
}