#include<iostream>
#include<cmath>
using namespace std;
int ans[500005][2];
void dabiao()
{
int len=0,j,i;
double tmp=(1.0+sqrt(5))/2.0;
for(i=0;i<=500000;i++)
{
ans[i][0]=floor(i*tmp);
ans[i][1]=ans[i][0]+i;
}
}//列出部分威佐夫博弈的奇异局势
int main()
{
int a,b;
dabiao();
while(cin>>a>>b&&a&&b)
{
int k=b-a,i;
int tmp=floor(k*(1.0+sqrt(5))/2);
if(tmp==a) cout<<0<<endl;
else{
cout<<1<<endl;
if((a-ans[k][0])==(b-ans[k][1])&&(a-ans[k][0])>0&&(b-ans[k][1])>0)//两堆取等量石子
{
cout<<ans[k][0]<<' '<<ans[k][1]<<endl;
}
for(i=0;ans[i][1]<=b;i++)//只取其中一堆的石子,找到一个解即可
{
if(ans[i][0]==a)
{
cout<<ans[i][0]<<' '<<ans[i][1]<<endl;
break;
}
if(ans[i][1]==a)
{
cout<<ans[i][0]<<' '<<ans[i][1]<<endl;
break;
}
}
}
}
return 0;
}