#include <bits/stdc++.h>
using namespace std;
int main() {
  bool f = 0;
  vector<int> v;
  string s, num1 = "", num2 = "", num3 = "";
  cin >> s;
  int max = 0, sz, t = 0;
  if (s.size() - 2 > 7)
    sz = 7;
  else
    sz = s.size() - 2;
  for (int i = 0; i < sz; i++) {
    num1 += s[i];
    if (num1[0] == '0' && num1.size() > 1) {
      num1 = "";
      continue;
    }
    stringstream ss1;
    int n1;
    ss1 << num1;
    ss1 >> n1;
    if (n1 > 1000000) {
      num1.erase(num1.size() - 1, 1);
      n1 /= 10;
    }
    for (int j = i + 1; j < sz + (i + 1); j++) {
      if (j > s.size() - 2) break;
      num2 += s[j];
      if (num2[0] == '0' && num2.size() > 1) {
        num2 = "";
        continue;
      }
      stringstream ss2;
      int n2, n3;
      ss2 << num2;
      ss2 >> n2;
      if (n2 > 1000000) {
        num2.erase(num2.size() - 1, 1);
        n2 /= 10;
      }
      for (int k = j + 1; k < sz + (j + 1); k++) {
        if (k > s.size() - 1) break;
        num3 += s[k];
        if (num3[0] == '0' && num3.size() > 1) {
          num3 = "";
          continue;
        }
        stringstream ss3;
        ss3 << num3;
        ss3 >> n3;
        if (n3 > 1000000) {
          num3.erase(num3.size() - 1, 1);
          n3 /= 10;
          break;
        }
      }
      if (num1.size() + num2.size() + num3.size() == s.size()) {
        if (max <= (n1 + n2 + n3)) {
          t = num1.size() + num2.size() + num3.size();
          max = n1 + n2 + n3;
        }
      }
      num3 = "";
    }
    num2 = "";
  }
  if (t < s.size())
    cout << -1;
  else
    cout << max;
  return 0;
}
