//验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
#include<iostream>
using namespace std;
void GetSequeOddNum(int m,char *pcSecOddNum)
{
if(m<1||m>100||pcSecOddNum==NULL)
return ;
int sum=m*m*m;
int sum1=2*m*m;
//当整数为1时的情况
int k=0;
if(m==1)
{
pcSecOddNum[k]='1';
k++;
}
pcSecOddNum[k]='\0';
//当整数大于等于2时的情况
if(m>=2)
{
int i=1;
int j;
if((sum/2)%2==0)
j=sum/2+1;
else
j=sum/2;
while(i<j)
{
if(i+j>sum1)
j-=2;
else if(i+j<sum1)
i+=2;
else if(i+j==sum1)
{
if((j-i)/2==m-1)
break;
else
i+=2;
}
}
k=0;
for(int m=i;m<j;m+=2)
{
cout<<m<<"+";
}
cout<<j<<endl;
}
}
void main()
{
int n;
cin>>n;
char pcSecOddNum[100];
GetSequeOddNum(n,pcSecOddNum);
}