/*
TASK:brkclk
LANG:C++
*/

#include <cstdio>
#include <algorithm>

int dig[10] = {0x7B, 0x48, 0x3D, 0x6D, 0x8E, 0x67, 0x77, 0x94, 0x7F, 0x6F};

int hmask;
int mmask;
int cmin, chour;
int hour[24];
int min[60];

int pmin[60], pmp;
int phour[24], php;

int dx[] = {0, 1, 2, 1, 3, 4, 3};
int dy[] = {1, 0, 1, 2, 0, 1, 2};

void input () {
	char lines[5][20];
	int i, k, d;
	for (i = 0; i < 5; ++i) gets (lines[i]);

//	printf ("here!\n");
	int tt[4], tt2[4];
	int tmp, tmp2;
	for (d = 0; d < 20; d += 5) {
		tmp = 0;
		tmp2 = 0;
//		printf ("d == %d\n", d);
		for (k = 0; k < 7; ++k) {
//			printf ("%d -- %c\n", k, lines[dx[k]][d + dy[k]]);
			if (lines[dx[k]][d + dy[k]] != '.') tmp ^= (1 << k);
			if (lines[dx[k]][d + dy[k]] == '#' || 
				lines[dx[k]][d + dy[k]] == '=') tmp2 ^= (1 << k);
		}

		tt[d/4] = tmp;
		tt2[d/4] = tmp2;
//		printf ("%x %x\n", tmp, tmp2);
	}
	hmask = (tt[0] << 8) | tt[1];
	mmask = (tt[2] << 8) | tt[3];
	chour = (tt2[0] << 8) | tt2[1];
	cmin = (tt2[2] << 8) | tt2[3];
}

int tbm[60][60];
int tbh[25][25];

int main () {
	input ();
	int i, j, k;
//	printf ("mmask %x\nhmask %x\n", mmask, hmask);
	for (i = 0; i < 60; ++i) min[i] = ((dig[i/10] << 8) | dig[i%10]) & mmask;
	for (i = 0; i < 24; ++i) {
//		printf ("%d(%d %d) -- %x %x\n", i, i/10, i%10, dig[i/10], dig[i%10]);
		hour[i] = ((((i/10) ? dig[i/10] : 0) << 8) | dig[i%10]) & hmask;
//		printf ("--%x--\n", hour[i]);
	}
/*
	for (i = 0; i < 60; ++i)
		printf ("%d ", min[i]);
	printf ("\n");
*//*
	for (i = 0; i < 24; ++i)
		printf ("%d -- %x\n", i, hour[i]);
	printf ("\n");
	*/
	for (i = 0; i < 60; ++i)
		if (min[i] == cmin)
			pmin[pmp++] = i;
	
	for (i = 0; i < 24; ++i)
		if (hour[i] == chour)
			phour[php++] = i;
/*
	for (i = 0; i < pmp; ++i)
		printf ("%d ", pmin[i]);
	printf ("\n");
	
	for (i = 0; i < php; ++i)
		printf ("%d ", phour[i]);
	printf ("\n");
*/
	if (php == 1 && pmp == 1) {printf ("0\n"); return 0;}
	
	int lm = 0, lh = 0;
	for (i = 0; i < pmp; ++i)
		for (j = i + 1; j < pmp; ++j) {
			for (k = 1; k < 60; ++k)
				if (min[(pmin[i] + k) % 60] != min[(pmin[j] + k) % 60])
					break;

			if (k != 60) {
//				printf ("%d %d -- %d\n", pmin[i], pmin[j], k);
				tbm[i][j] = tbm[j][i] = k;
				lm = std::max (lm, k);
			} else
				lm = 1000;
		}

	for (i = 0; i < php; ++i)
		for (j = i + 1; j < php; ++j) {
			for (k = 1; k < 24; ++k)
				if (hour[(phour[i] + k) % 24] != hour[(phour[j] + k) % 24])
					break;

			if (k != 24) {
//				printf ("%d %d -- %d(%x %x)(%d %d)\n", phour[i], phour[j], k, 
//				hour[(phour[i] + k) % 24], hour[(phour[j] + k) % 24],
//				(phour[i] + k) % 24, (phour[j] + k) % 24);
				tbh[i][j] = tbh[j][i] = k;
				lh = std::max (k, lh);
			} else
				lh = 1000;
		}

//	printf ("%d %d\n", lh, lm);
	if (lm == 1000 || lh == 1000) {printf ("-1"); return 0;}
	
	int mmmin = pmin[0];
	printf ("%d\n", std::max (60 * lh - mmmin, lm));
	
	return 0;
}
