#include<bits/stdc++.h>
using namespace std;
long long n,x;
long long ans;
long long s,op;
int main(){
cin >> n;//输入部分
for(long long i = max((long long)1, (long long)sqrt(n) - 81); i <= sqrt(n); i++){//int不能和long long直接比,要转化。sqrt减少时间复杂度
x = i;
s = 0;//计数器
while(x != 0){//求个各个位数的和
s = s + x % 10;
x /= 10;
}
ans = i * i + s * i - n;//求差值
if (ans == 0){//特判,如果为0,说明成立
op = 1;//操作数
cout << i;//输出答案
break;
}
}
if(op == 0){//如果闭区间内没有,op未被赋值为1,输出-1
cout << "-1" ;
}
return 0;//结束
}