#include int f[50]; int vypis(char *a,int x) { int i,j; if (x==0) { strcpy(a,"0"); return 0; } i=0; while (x>=f[i] && f[i]>0) i++; a[i]=0; i--; for (j=i;j>=0;j--) { if (x>=f[j]) { a[i-j]='1'; x-=f[j]; } else a[i-j]='0'; } return 0; } int main() { int i,aa,bb; char a[50],b[50],c[50]; f[0]=1; f[1]=2; for (i=2;i<50;i++) f[i]=f[i-1]+f[i-2]; /* for (i=0;i<50;i++) printf("> %d %d",i,f[i]);*/ while (scanf("%s %s",a,b)>0) { aa=0; for (i=0;a[i];i++) if (a[i]=='1') { aa+=f[strlen(a)-i-1]; } bb=0; for (i=0;b[i];i++) if (b[i]=='1') bb+=f[strlen(b)-i-1]; vypis(c,aa+bb); vypis(a,aa); vypis(b,bb); for (i=0;i<2+strlen(c)-strlen(a);i++) printf(" "); printf("%s\n+",a); for (i=0;i<1+strlen(c)-strlen(b);i++) printf(" "); printf("%s\n ",b); for (i=0;i