int s,x,y,k;
int[] fibonacciSum(int N) {
int[] z,r;
z = new int[N];
for (;N > 0;N-=z[s++]=x)
for (x=y=1; N >= y; y += x, x = y - x);
r = new int[s];
for (;k<s;)
r[k] = z[s-1-k++];
return r;
}