#include <stdio.h>
int a[1001]={1},sum,n;
int f(int s,int t){ //s是需要拆分的数,t是拆分的进度
int i,j;
for(i=a[t-1];i<=s;i++){
if(i<n){ //当前数i要大于等于前1位数,且不超过n
a[t]=i; //保存当前拆分的数
s-=i; //s减去数i,s的值将继续拆分
if(s==0){ //当s==0时,拆分结束输出结果
sum++; //方案数累加一
printf("%d=",n);
for(j=1;j<=t-1;j++) //输出一种拆分方案
printf("%d+",a[j]);
printf("%d\n",a[t]); //避免输出多余“+ ”
}
else f(s,t+1); //当s>0时,继续递归
}
s+=i; //回溯:加上拆分的数,以便产生所有可能的拆分
}
}
int main(){
scanf("%d",&n);
f(n,1);
// printf("total=%d",sum); //输出总方案数
return 0;
}