#include <iostream>
#include <cstdio>
#include <string.h>
#include <cmath>
using namespace std;
long long dp[100050][15];
int pies[100050][15];
int n;
void solve()
{
// for(int i=n;i>=0;)
}
/*
1
5 1
4 1
6 1
7 2
7 2
8 3
0
*/
int main()
{
while(scanf("%d",&n))
{
if(n==0) break;
memset(dp,0,sizeof(dp));
memset(pies,0,sizeof(pies));
int time,where;
int max_time=0;
int index=1;
for(int i=0;i<n;i++)
{
scanf("%d%d",&where,&time);
max_time=max(max_time,time);
pies[time][where+1]++;
}
for(int i=max_time+1;i>=2;i--)
{
for(int u=1;u<=11;u++)
{
/*
dp[i][u]时间为i时位置 u处所能接到的最多饼数
那么pie[i][u]的数量一定是可以接到的
dp[i-1][u]=max(max(dp[i][u-1],dp[i][u]),dp[i][u+1])
+pies[i-1][u];
注意最后不是直接输出dp[1][6],而是输出dp[1][5],dp[1][6],dp[1][7]的最大值
虽然人一开始站在5号点,但是可以直接接住4,6号点的饼,因次答案是这三个点的最大值
*/
dp[i-1][u]=max(max(dp[i][u-1],dp[i][u]),dp[i][u+1])
+pies[i-1][u];
}
}
long long ans=max(dp[1][6],dp[1][5]);
ans=max(dp[1][7],ans);
printf("%lld\n",ans);
}
}