#include <iostream>
#include <cstdio>
#include <map>
#include <iomanip>
using namespace std;
//英语 看博友分析前半段 读抄博友程序 数学 模运算 没掌握 dfs未实现
map<int,int> mp;
map<int,int> w;
int main()
{
int n;
cin>>n;
for(int i=0,I=1;I<=n;I=I*10,i++)
{
if(n%I%2)//没掌握 抄博友程序
{
continue;
}
int H=n/I/11;
int S=n/I%11;
int L=n%I/2;//抄博友程序
if(S<=9)//抄博友程序
{
int X=(H*10+S)*I+L;
if(H+S)mp[X]=H*I+L;//抄博友程序 不加if wa
w[X]=i;
}
L=(n%I+I)/2;//没掌握
S=n/I%11-1;//没掌握
if(S>=0 && L)
{
int X=(H*10+S)*I+L;
if(H+S)mp[X]=H*I+L;//抄博友程序
w[X]=i;
}
}
cout<<mp.size()<<endl;
for(map<int,int> ::iterator it=mp.begin();it!=mp.end();it++)
{
int t=it->first;
cout<<t<<" + "<<setw(w[t])<<setfill('0')<<mp[t]<<" = "<<n<<endl;//抄博友程序
}
return 0;
}