/*
数塔变形
一看代码 就明白
6
5 1
4 1
6 1
7 2
7 2
8 3
0
4
*/
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int dp[100002][11];
int main()
{
int n;
int t,pos;
int max_t=0;
while(scanf("%d",&n),n!=0)
{
memset(dp,0,sizeof(dp));
for(int i=0;i<n;i++)
{
scanf("%d %d",&pos,&t);
dp[t][pos]++;
if(max_t<t)max_t = t;
}
for(int i=max_t;i>=0;i--)
{
dp[i][0] += max(dp[i+1][1],dp[i+1][0]);
dp[i][10] += max(dp[i+1][9],dp[i+1][10]);
for(int j=1;j<10;j++)
dp[i][j] += max(max(dp[i+1][j-1],dp[i+1][j]),dp[i+1][j+1]);
}
printf("%d\n",dp[0][5]);
}
return 0;
}