import std.stdio;
import std.algorithm;
import std.string;
import std.range;
import std.array;
import std.conv;
import std.complex;
import std.math;
import std.ascii;
import std.bigint;
import std.container;
import std.typecons;

auto readInts() {
	return array(map!(to!int)(readln().strip().split()));
}
auto readInt() {
	return readInts()[0];
}
auto readLongs() {
	return array(map!(to!long)(readln().strip().split()));
}
auto readLong() {
	return readLongs()[0];
}

const real eps = 1e-10;

int sec(string s) {
	auto hms = s.split(":").map!(to!int).array;
	return hms[0]*60*60 + hms[1]*60 + hms[2];
}
void main(){
	while(true) {
		auto n = readInt();
		if(n == 0) return;

		auto t = new int[](24*4000);
		for(int i; i < n; ++i) {
			auto l = readln().chomp().split();
			++t[sec(l[0])];
			--t[sec(l[1])];
		}
		for(int i = 1; i < t.length; ++i) {
			t[i] += t[i-1];
		}
		writeln(reduce!(max)(t));
	}
}