/*
AizuOnline A2013
Title Osaki
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Global data section
int N;
int  dept[10000];
int  arrv[10000];
char flag[10000]; 
//
int solve(int n)
{
        int i,j;
        for(i=0;i<N;i++)
                for(j=0;j<N;j++)
                {
                        if(i==j || flag[j])
                                continue;
                        if(dept[i]>=arrv[j])
                        {
                                //printf("IJ=%d,%d\n",i,j);
                                flag[j]=-1;
                                n--;
                                break;
                        }
                }
        return(n);
}
main()
{
        int i,ret,h,m,s;

        while(EOF!=scanf("%d",&N) && N) 
        {
                memset(flag,0,N);
                for(i=0;i<N;i++)
                {
                        scanf("%d:%d:%d ",&h,&m,&s);
                        //printf("%02d:%02d:%02d:",h,m,s);
                        dept[i]=3600*h+60*m+s;
                        //printf("%d\n",dept[i]);
                        scanf("%d:%d:%d",&h,&m,&s);
                        //printf("%02d:%02d:%02d:",h,m,s);
                        arrv[i]=3600*h+60*m+s;
                        //printf("%d\n",arrv[i]);
                }

                ret=solve(N);
                printf("%d\n",ret);
        }
                
return(0);

}