#include using namespace std; typedef long long ll; typedef vector vi; typedef vector vl; typedef pair pii; typedef pair pll; typedef int _loop_int; #define REP(i,n) for(_loop_int i=0;i<(_loop_int)(n);++i) #define FOR(i,a,b) for(_loop_int i=(_loop_int)(a);i<(_loop_int)(b);++i) #define FORR(i,a,b) for(_loop_int i=(_loop_int)(b)-1;i>=(_loop_int)(a);--i) #define DEBUG(x) cout<<#x<<": "< P; char s[125252]; int cnt[102]; int buf[125252]; int mymod(int n,int m){ int r = 0; REP(i,n){ r = r*10%m; r = (r+buf[i])%m; } return r; } int main(){ scanf("%s",s); int n = strlen(s); REP(i,10)cnt[i] = count(s,s+n,'0'+i); REP(i,10)if(cnt[i]==n){ puts(s); return 0; } int x = 0; REP(i,10)REP(j,i){ // j < i if(cnt[i]==0 || cnt[j]==0)continue; int knt[12]; REP(k,10)knt[k]=cnt[k]; int m = 9*(i-j); knt[i]--;knt[j]--; int it = 0; REP(k,n-2){ while(knt[it]==0)it++; knt[it]--; buf[k] = it; } buf[n-2] = j; buf[n-1] = i; int gg = mymod(n,m); int g = __gcd(gg,m); x = __gcd(x,g); } printf("%d\n",x); return 0; }