X2WGTXZS5NRVF2IWDAG2R4DU7N5Q5DDHIHAZIA2LVSJ6PKDSFKFQC
let rec fib n =
match n with
| 1 | 2 -> 1
| _ -> (fib (n-1)) + (fib (n-2))
let fast_fib n =
let rec h n pp p =
match n with
| 1 -> p
| _ -> h (n-1) p (pp+p)
in h n 0 1
let rec first_neg_fib n =
let acc = fast_fib n in
if acc < 0 then n
else first_neg_fib (n+1)