#include <bits/stdc++.h>
int n, s[200005], g[200005], l[200005], r[200005];
int main() {
  scanf("%d", &n);
  int i, j;
  for (i = 1; i <= n; i++) scanf("%d%d", &s[i], &g[i]);
  l[1] = s[1], r[1] = s[1] + g[1];
  for (i = 2; i <= n; i++) {
    l[i] = l[i - 1] - 1;
    r[i] = r[i - 1] + 1;
    if (s[i] > l[i]) {
      l[i] = s[i];
      for (j = i - 1; j >= 1; j--)
        if (l[j] < s[i] - (i - j))
          l[j] = s[i] - (i - j);
        else
          break;
    }
    if (s[i] + g[i] < r[i]) {
      r[i] = s[i] + g[i];
      for (j = i - 1; j >= 1; j--)
        if (r[j] > s[i] + g[i] + (i - j))
          r[j] = s[i] + g[i] + (i - j);
        else
          break;
    }
    if (l[i] > r[i]) return !printf("-1");
  }
  long long int sum = 0;
  for (i = 1; i <= n; i++) sum += (r[i] - s[i]);
  printf("%I64d\n", sum);
  for (i = 1; i <= n; i++) printf("%d%s", r[i], i == n ? "" : " ");
  return 0;
}
