#include <cstdio>
#include <algorithm>

using namespace std;

const int MAXN = 1000;

struct event {
	event() {}
	event(int _x, int _t) : x(_x), t(_t) {}
	
	int x, t;
};

int n;
event e[MAXN];

bool cmp(event, event);

int main() {
	scanf("%d", &n);
	
	for(int i = 0; i < n; ++i) {
		char s[100];
		scanf("%d %s", &e[i].x, s);
		
		--e[i].x;
		
		s[2] = 0;
		int a, b;
		sscanf(s, "%d", &a);
		sscanf(s + 3, "%d", &b);
		
		e[i].t = 60 * a + b;
	}
	
	e[n] = event(0, 2880);
	sort(e, e + n, cmp);
	
	int b[2] = {0, 0}, t[2] = {0, 0}, lt = 0;
	for(int i = 0; i <= n; ++i) {
		int ct = e[i].t;
		if(b[0] > b[1])
			t[0] += ct - lt;
		else if(b[1] > b[0])
			t[1] += ct - lt;
		
		lt = ct;
		
		++b[e[i].x];
	}
	
	printf("%02d:%02d %02d:%02d\n", t[0] / 60, t[0] % 60, t[1] / 60, t[1] % 60);
	
	return 0;
}

bool cmp(event e1, event e2) {
	return e1.t < e2.t;
}
