/*题都是有一个状态转移方程式 ,
只要推出方程式就问题不大了,首
先对于gameboy来说他下一秒只能
在0~10这十一个位置移动,
而对于1~9这九个位置来说他可以移动(假设他现在的位置为x)到x+1,或者x-1,或者x;
0和10这两个位置只有两个位置可以移动,
可以用dp[t][x],t秒的馅饼获得就看t-1秒时的下一位置(x+1,x,x-1)
因为要求整个过程的最大值,因此求的是dp累加的和,
所以状态转移方程式为 dp[i][j]+=max(dp[i+1][j-1],max(dp[i+1][j],dp[i+1][j+1]));
*/
#include<cstring>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<stdio.h>
using namespace std;
int dp[][];
int main()
{
int n;
while(scanf("%d",&n),n)
{
int t,x,tt=;
memset(dp,,sizeof(dp));
for(int i=; i<n; i++)
{
scanf("%d %d",&x,&t);
//t是时间
//x+1是位置加1
dp[t][x+]++;
tt=max(tt,t);
}
int res=;
//只有最开始的位置是确定的,所以从后面的时间往前
for(int i=tt-; i>=; i--)
//往前面推,在此位置接到的馅饼数,是这一位置接到的加上上一秒接到的和
for(int j=; j>=; j--)
dp[i][j]+=max(dp[i+][j-],max(dp[i+][j],dp[i+][j+]));
//初始位置在5号位置,
cout<<dp[][]<<endl;
}
return ;
}