typedef long long ll;
#define FR(i,a,b) for(int i=(a);i<(b);i++)
const int MAX=1e6+5;
int n=0,i=0,j=0;
int s[MAX];
void fil()
{
FR(i,1,MAX)s[i]=1;
for(i=2;i<MAX;i++)
{
for(j=i;j<MAX;j+=i)
s[j]+=i;
}
}
void solve()
{
while (1)
{
cin>>n;
if(n==0)return;
FR(i,1,MAX)
if(s[i]==n)
{
cout<<i<<"\n";
n=-1;
break;
}
if(n!=-1)cout<<"-1\n";
}
}
signed main()
{
fil();
solve();
return 0;
}

