char temp[3];
char temp2[3];
int a[100];
void split(int m, int n, int a[], int index){
if(m!=0){
a[index]=m;
if(index-1>=0 && a[index]<a[index-1]) return;
index++;
}else m=1;
for(int i=m;i<=n-1;i++){
split(i,n-i,a,index);
a[index]=i;
a[index+1]=n-i;
if(a[index]<=a[index+1]){
for(int j=0;j<=index+1;j++)
cout<<a[j] << "+" ;
cout << endl;
}
}
}
int main(){
split(0,20,a,0);
return 0;
}