#include <bits/stdc++.h>
using namespace std;
const int maxn = 500005;
const double pi = acos(-1.0);
const long long mod = 1000000007;
struct bigint {
  int a[maxn];
  bigint() { memset(a, 0, sizeof(a)); }
  void update(char *c, int st, int en) {
    memset(a, 0, sizeof(a));
    for (int i = st; i < en; i++) a[i - st] = c[st + en - i - 1] - '0';
  }
  void add(bigint &b) {
    for (int i = 0; i < maxn; i++) a[i] += b.a[i];
    for (int i = 0; i < maxn - 1; i++) a[i + 1] += a[i] / 10, a[i] %= 10;
  }
  bool cmp(bigint &b, int sgn = 0) {
    for (int i = maxn - 1; i >= 0; i--)
      if (a[i] != b.a[i]) return a[i] < b.a[i];
    return sgn;
  }
} x, y, z, ans;
int n;
char c[maxn];
int main() {
  int i, j, k, l;
  scanf("%d %s", &n, c);
  ans.update(c, 0, n);
  int cnt = 0;
  for (i = n / 2; i < n; i++) {
    if (c[i] != '0') {
      x.update(c, 0, i);
      y.update(c, i, n);
      x.add(y);
      if (x.cmp(ans)) ans = x;
      ++cnt;
      if (cnt >= 3) break;
    }
  }
  cnt = 0;
  for (i = n / 2 - 1; i > 0; i--) {
    if (c[i] != '0') {
      x.update(c, 0, i);
      y.update(c, i, n);
      x.add(y);
      if (x.cmp(ans)) ans = x;
      ++cnt;
      if (cnt >= 3) break;
    }
  }
  for (i = maxn - 1; i > 0 && ans.a[i] == 0; i--)
    ;
  for (; i >= 0; i--) printf("%d", ans.a[i]);
  printf("\n");
  return 0;
}
