#include <bits/stdc++.h>
using namespace std;
const int maxn = 4100;
const int INF = 0x7FFFFFFF;
int dp[maxn][maxn];
int f[maxn][maxn];
int id[maxn][maxn];
vector<int> g[maxn];
int c[maxn], r[maxn];
int L[maxn], R[maxn];
int n;
vector<int> ans;
int b[maxn * 2], sz;
int get(int x) {
  int left = 1, right = sz;
  while (left <= right) {
    int mid = (left + right) / 2;
    if (b[mid] < x)
      left = mid + 1;
    else if (b[mid] > x)
      right = mid - 1;
    else
      return mid;
  }
  return -1;
}
void dfs(int left, int right) {
  if (f[left][right]) {
    ans.push_back(id[left][right]);
  }
  if (left == right) {
    return;
  }
  int tmp = dp[left][right] - f[left][right];
  if (tmp == 0) return;
  if (dp[left + 1][right] == tmp) {
    dfs(left + 1, right);
  } else if (dp[left][right - 1] == tmp) {
    dfs(left, right - 1);
  } else {
    for (int i = 0; i < (int)g[left].size(); i++) {
      if (dp[left][g[left][i]] + dp[g[left][i]][right] == tmp) {
        dfs(left, g[left][i]);
        dfs(g[left][i], right);
        return;
      }
    }
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &c[i], &r[i]);
    L[i] = c[i] - r[i];
    R[i] = c[i] + r[i];
    b[++sz] = L[i];
    b[++sz] = R[i];
  }
  sort(b + 1, b + 1 + sz);
  for (int i = 1; i <= n; i++) {
    L[i] = get(L[i]);
    R[i] = get(R[i]);
    f[L[i]][R[i]]++;
    id[L[i]][R[i]] = i;
    g[L[i]].push_back(R[i]);
  }
  for (int len = 1; len <= 4000; len++) {
    for (int left = 1; left <= 4000; left++) {
      int right = left + len - 1;
      if (right > 4000) continue;
      dp[left][right] = max(dp[left + 1][right], dp[left][right - 1]);
      for (int j = 0; j < g[left].size(); j++) {
        if (g[left][j] > right) continue;
        dp[left][right] =
            max(dp[left][right], dp[left][g[left][j]] + dp[g[left][j]][right]);
      }
      dp[left][right] += f[left][right];
    }
  }
  printf("%d\n", dp[1][4000]);
  dfs(1, 4000);
  for (int i = 0; i < (int)ans.size(); i++) {
    printf("%d", ans[i]);
    if (i < (int)ans.size() - 1)
      printf(" ");
    else
      printf("\n");
  }
  return 0;
}
