#include <stdio.h>
// 1
int fib1(int n) {
if (n == 0) return 0;
if (n == 1) return 1;
int a = 0;
int b = 1;
int next;
for (int i = 2; i <= n; i++) {
next = a + b;
a = b;
b = next;
}
return b;
}
// 2
int fib2(int n) {
if (n == 0) return 0;
if (n == 1) return 1;
int f[n + 1];
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++) {
f[i] = f[i - 1] + f[i - 2];
}
return f[n];
}
// 3
int fib3(int n) {
if (n == 0) return 0;
if (n == 1) return 1;
return fib3(n - 1) + fib3(n - 2);
}
int main(void) {
int n;
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyAxCmludCBmaWIxKGludCBuKSB7CiAgICBpZiAobiA9PSAwKSByZXR1cm4gMDsKICAgIGlmIChuID09IDEpIHJldHVybiAxOwogICAgCiAgICBpbnQgYSA9IDA7CiAgICBpbnQgYiA9IDE7IAogICAgaW50IG5leHQ7CiAgICAKICAgIGZvciAoaW50IGkgPSAyOyBpIDw9IG47IGkrKykgewogICAgICAgIG5leHQgPSBhICsgYjsKICAgICAgICBhID0gYjsKICAgICAgICBiID0gbmV4dDsKICAgIH0KICAgIHJldHVybiBiOwp9CgovLyAyCmludCBmaWIyKGludCBuKSB7CiAgICBpZiAobiA9PSAwKSByZXR1cm4gMDsKICAgIGlmIChuID09IDEpIHJldHVybiAxOwogICAgCiAgICBpbnQgZltuICsgMV07CiAgICBmWzBdID0gMDsKICAgIGZbMV0gPSAxOwogICAgCiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBuOyBpKyspIHsKICAgICAgICBmW2ldID0gZltpIC0gMV0gKyBmW2kgLSAyXTsKICAgIH0KICAgIHJldHVybiBmW25dOwp9CgovLyAzCmludCBmaWIzKGludCBuKSB7CiAgICBpZiAobiA9PSAwKSByZXR1cm4gMDsKICAgIGlmIChuID09IDEpIHJldHVybiAxOwogICAgcmV0dXJuIGZpYjMobiAtIDEpICsgZmliMyhuIC0gMik7Cn0KCmludCBtYWluKHZvaWQpIHsKICAgIGludCBuOwogICAgCiAgICBzY2FuZigiJWQiLCAmbik7CiAgICAKICAgIHByaW50ZigiMTogJWRcbiIsIGZpYjEobikpOwogICAgcHJpbnRmKCIyOiAlZFxuIiwgZmliMihuKSk7CiAgICBwcmludGYoIjM6ICVkXG4iLCBmaWIzKG4pKTsKICAgIAogICAgcmV0dXJuIDA7Cn0=