#include <cstdio>
#include <algorithm>
using std::sort;
struct tNode
{
int startTime;
int endTime;
bool operator<(const tNode &b)const
{
if(endTime != b.endTime)
return endTime<b.endTime;
else
return startTime<b.startTime;
}
};
int main(void)
{
int i,N,currTime,cow;
tNode *timeList;
while(1)
{
scanf("%d",&N);
if(N==0)
break;
timeList=new tNode [N];
for(i=0;i<N;i++)
scanf("%d%d",&timeList[i].startTime,&timeList[i].endTime);
sort(timeList,timeList+N);
i=1;
currTime=timeList[0].endTime;
cow=1;
while(i<N)
{
while(i<N && timeList[i].startTime<currTime)
i++;
if(i==N)
break;
cow++;
currTime=timeList[i].endTime;
}
printf("%d\n",cow);
delete [] timeList;
}
return 0;
}