import java.util.stream.*;
class FibStream{
static public Stream<TwoLong> fibPairs(){
return Stream.iterate(new TwoLong(0,1),is -> new TwoLong(is.i2(),is.i1()+is.i2()));
}
static public Stream<Long> fibs(){
return fibPairs().map(x->x.i1());
}
static public Stream<Long> fibs100(){
return fibs().limit(100);
}
static public long fib(int n){
return fibs().skip(n-1).findFirst().get();
}
}