#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef vector vi; typedef vector vvi; #define rep(i,n) for(ll i=0;i<(n);i++) #define tii tuple #define tiii tuple #define mt make_tuple #define pb push_back #define ALL(a) (a).begin(),(a).end() #define FST first #define SEC second const int INF = (INT_MAX/2); const ll LLINF = (LLONG_MAX/2); const double eps = 1e-5; const double PI = M_PI; #define DEB cerr<<"!"<0){if((n&1)==1)r=r*x%m;x=x*x%m;n>>=1;}return r%m;} inline ll lcm(ll d1, ll d2){return d1 / __gcd(d1, d2) * d2;} string n; ll ans = 0; int dfs(string s,int score){ rep(i,s.size()) for(int j = i+1; j < (int)s.size(); j++) for(int k = j+1; k < (int)s.size(); k++) if(s[i] != s[j] && s[i] != '0'&& s[j] == s[k]){ string ts = s; int sc = 100*(s[i]-'0')+10*(s[j]-'0')+s[k]-'0'; ts.erase(k,1); ts.erase(j,1); ts.erase(i,1); dfs(ts,score+sc); } ans = max(ans,ll(score)); return 0; } int main(){ cin >> n; dfs(n,0); cout << ans << endl; }