/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Fibo {
Fibo(int nb) {
long[] array = new long[nb];
array[0]=1;
Son son = new Son(array);
array[1]=2;
son.start();
int from=0;
while(from<array.length){
int to=son.getIndex();
for(int i=from;i<=to;i++){
System.
out.
print(" "+array
[i
]); }
from=to+1;
}
}
{
// your code goes here
new Fibo(80);
}
private long[] array;
private int index;
Son(long[] array){
this.array=array;
index=2;
}
int getIndex(){
return index;
}
public void run() {
for(int i=2;i<array.length;i++){
array[i]=array[i-2]+array[i-1];
index=i;
}
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgRmlibyB7CiAgICBGaWJvKGludCBuYikgewogICAgICAgIGxvbmdbXSBhcnJheSA9IG5ldyBsb25nW25iXTsKICAgICAgICBhcnJheVswXT0xOwogICAgICAgIFNvbiBzb24gPSBuZXcgU29uKGFycmF5KTsKICAgICAgICBhcnJheVsxXT0yOwogICAgICAgIHNvbi5zdGFydCgpOwogICAgICAgIGludCBmcm9tPTA7CiAgICAgICAgd2hpbGUoZnJvbTxhcnJheS5sZW5ndGgpewogICAgICAgICAgICBpbnQgdG89c29uLmdldEluZGV4KCk7CiAgICAgICAgICAgIGZvcihpbnQgaT1mcm9tO2k8PXRvO2krKyl7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIithcnJheVtpXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKICAgICAgICAgICAgICAgIGZyb209dG8rMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJbmV3IEZpYm8oODApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjbGFzcyBTb24gZXh0ZW5kcyBUaHJlYWR7CiAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgbG9uZ1tdIGFycmF5OwogICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIGludCBpbmRleDsKICAgICAgICAgICAgICAgICAgICAgICAgU29uKGxvbmdbXSBhcnJheSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFycmF5PWFycmF5OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9MjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBnZXRJbmRleCgpeyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBpPTI7aTxhcnJheS5sZW5ndGg7aSsrKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2ldPWFycmF5W2ktMl0rYXJyYXlbaS0xXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PWk7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgfQp9CgoK