#include<stdio.h>
void f(int a)
{
int i,j,k;
for(i=1;i*i<a;i++)
for(j=i;j*j<a;j++)
for(k=j;k*k<a;k++)
if(i*i+j*j+k*k==a)
{
printf("%d %d %d\n",i,j,k);
return; //表示函数结束
//void表示函数没有返回值,但是仍可以有 return ,表示函数结束
}
}
int main()
{
int num;
while(scanf("%d",&num)!=EOF)
{
f(num);
}
return 0;
}
void f(int a)
{
int i,j,k;
for(i=1;i*i<a;i++)
for(j=i;j*j<a;j++)
for(k=j;k*k<a;k++)
if(i*i+j*j+k*k==a)
{
printf("%d %d %d\n",i,j,k);
return; //表示函数结束
//void表示函数没有返回值,但是仍可以有 return ,表示函数结束
}
}
int main()
{
int num;
while(scanf("%d",&num)!=EOF)
{
f(num);
}
return 0;
}