/*
AizuOnline A2013
Title Osaki
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Global data section
int N;
int  dept[10000];
int  arrv[10000];
//
int solve(int n)
{
        int i,j,c,mx;

        i=j=0;
        c=mx=0;

        while(i<N && j<N)
        {
                if(dept[i]==arrv[j])
                {
                        i++;j++;
                }
                else if(dept[i]<arrv[j])
                {
                        i++;
                        c++;
                        if(c>mx)
                                mx=c;
                }
                else
                {
                        j++;
                        c--;
                }
        }
        return(mx);
}
int compare_int(const void *a, const void *b)
{
    return *(int*)a - *(int*)b;
}

main()
{
        int i,ret,h,m,s;

        while(EOF!=scanf("%d",&N) && N) 
        {
                for(i=0;i<N;i++)
                {
                        scanf("%d:%d:%d ",&h,&m,&s);
                        dept[i]=3600*h+60*m+s;
                        scanf("%d:%d:%d",&h,&m,&s);
                        arrv[i]=3600*h+60*m+s;
                }
                qsort(dept,N,sizeof(int),compare_int);
                qsort(arrv,N,sizeof(int),compare_int);

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