#include using namespace std; typedef long long ll; const int N = 1e5 + 10; string n; bool vis[20]; bool is_div(string num, ll mod) { ll now = 0; for (int i = 0; i < (int)num.size(); i++) { now = now * 10 + num[i] - '0'; now %= mod; } return (now == 0); } ll gcd(ll a, ll b) { if (b == 0) return a; return gcd(b, a % b); } int main() { // freopen("gcd.in", "r", stdin); // freopen("gcd.out", "w", stdout); cin >> n; for (int i = 0; i < (int)n.size(); i++) vis[n[i] - '0'] = true; ll g = 0; for (int i = 0; i <= 9; i++) for (int j = 0; j < i; j++) if (vis[i] && vis[j]) g = gcd(g, 9 * (i - j)); if (!g) { cout << n << endl; return 0; } for (ll i = g; i >= 1; i--) { if (g % i == 0 && is_div(n, i)) { cout << i << endl; return 0; } } return 0; }