1 /*#include<stdio.h>
2 #include<iostream>
3 using namespace std;
4 #include<algorithm>
5 struct p
6 {
7 int x;
8 int y;
9 }a[101],b[101];//b是储存看的节目
10 int cmp(const void *a,const void *b)//排序
11 {
12 struct p *c=(struct p *)a;
13 struct p *d=(struct p *)b;
14 if(c->x!=d->x)
15 return c->x-d->x;
16 else
17 return c->y-d->y;
18 }
19 int main()
20 {
21 int i,n,point;
22 while(cin>>n)
23 {
24 point=0;
25 if(n==0)
26 break;
27 for(i=1;i<=n;i++)
28 cin>>a[i].x>>a[i].y;
29 qsort(a+1,n,sizeof(a[1]),cmp);
30 for(i=1;i<=n;i++)
31 {
32 if(point==0)
33 b[++point]=a[i];
34 else
35 {
36 if(b[point].y<=a[i].x)
37 {
38 b[++point]=a[i];//增加节目
39 }
40 else if(b[point].y>a[i].y)
41 {
42 b[point]=a[i];//更新节目
43 }
44 }
45 }
46 for(i=1;i<=n;i++)
47 printf("11. %d %d\n",a[i].x,a[i].y);
48 for(i=1;i<=point;i++)
49 printf("12. %d %d\n",b[i].x,b[i].y);
50
51 }
52 return 0;
53 }*/
54 #include<stdio.h>
55 #include<algorithm>
56 using namespace std;
57 struct p
58 {
59 int x;
60 int y;
61 }a[110],b[110];
62 bool cmp(p a,p b)//排序
63 {
64 if(a.x!=b.x)
65 return a.x<b.x;
66 else
67 return a.y<b.y;
68 }
69 int main()
70 {
71 int n,i,j;
72 while(scanf("%d",&n),n)
73 {
74 for(i=1;i<=n;i++)
75 scanf("%d%d",&a[i].x,&a[i].y);
76 //qsort(a+1,n,sizeof(a[1]),cmp);
77 sort(a+1,a+n+1,cmp);
78 //for(i=1;i<=n;i++)
79 //printf(" %d %d\n",a[i].x,a[i].y);
80 int flag=0;
81 for(i=1;i<=n;i++)
82 {
83 if(flag==0)
84 b[++flag]=a[i];
85 else
86 {
87 if(a[i].x>=b[flag].y)//加新节目
88 b[++flag]=a[i];
89 else if(a[i].y<b[flag].y)//更新新节目
90 b[flag]=a[i];
91 }
92 }
93 printf("%d\n",flag);
94 }
95 return 0;
96 }