#include<bits/stdc++.h>
#define ll long long
#define int long long
using namespace std;
const ll inf = 100000000000000;
ll n, ans[10000005];
int t[105], cnt, l, r = 10000005;
ll rever(int x)
{
ll res = 0;
cnt = 0;
while(x)
{
if(x % 10 == 0)return inf;
t[++ cnt] = x % 10;
x /= 10;
}
for(int i = 1; i <= cnt; i ++)
{
res = res * 10 + t[i];
}
return res;
}
void dfs(ll x)
{
// cout << 1 << endl;
if(x == 1)
{
// cout << "ok" << endl;
for(int i = 1; i <= l; i ++ )
{
if(i > 1)cout << "*";
cout << ans[i];
}
for(int i = r; i < 10000005; i ++)
{
cout << "*" << ans[i] ;
}
exit(0);
}
for(ll i = 1; i * i <= x; i ++)
{
ll j = rever(i);
// cout << i << ' ' << j << endl;
if(x % j == 0 && x % i == 0 && x % (i * j) == 0 && i != 1)
{
l ++;r --;
ans[l] = i;
ans[r] = j;
dfs(x / i / j);
l --;r ++;
}
if(x % i == 0)
{
ll ii = x / i;
j = rever(ii);
if(x % j == 0 && x % ii == 0 && x % (ii * j) == 0 && ii != 1)
{
l ++;r --;
ans[l] = ii;
ans[r] = j;
dfs(x / ii / j);
l --;r ++;
}
}
}
ll tt = rever(x);
if(tt == x)
{
ans[++ l] = x;
dfs(1);
l --;
}
return ;
}
signed main()
{
cin >> n;
dfs(n);
cout << -1 << endl;
return 0;
}