/*
TASK:brkclk
LANG:C
*/
#include<stdio.h>
#define MM(_m) ((_m)/60)
#define HH(_h) ((_h)%60)

//				 0 1 2 3 4 5 6
char m[10][7]= {{1,1,1,1,1,1,0},	// 0
				{1,1,0,0,0,0,0},	// 1
				{1,0,1,1,0,1,1},	// 2
				{1,1,1,0,0,1,1},	// 3
				{1,1,0,0,1,0,1},	// 4
				{0,1,1,0,1,1,1},	// 5
				{0,1,1,1,1,1,1},	// 6
				{1,1,0,0,0,1,0},	// 7
				{1,1,1,1,1,1,1},	// 8
				{1,1,1,0,1,1,1}};	// 9
char h[4][7]={0};

char s[6]={0};
int main() {
	int i, j;
	for(i=0; i<4; i++) {
		scanf("%s", s);
		switch (s[1]) {
			case '.': h[i][5]=2; break;
			case '=': h[i][5]=1; break;
			case '-': h[i][5]=0; break;
		}
	}
	for(i=0; i<4; i++) {
		scanf("%s", s);
		switch (s[0]) {
			case '.': h[i][4]=2; break;
			case '#': h[i][4]=1; break;
			case '|': h[i][4]=0; break;
		}
		switch (s[2]) {
			case '.': h[i][0]=2; break;
			case '#': h[i][0]=1; break;
			case '|': h[i][0]=0; break;
		}
	}
	for(i=0; i<4; i++) {
		scanf("%s", s);
		switch (s[1]) {
			case '.': h[i][6]=2; break;
			case '=': h[i][6]=1; break;
			case '-': h[i][6]=0; break;
		}
	}
	for(i=0; i<4; i++) {
		scanf("%s", s);
		switch (s[0]) {
			case '.': h[i][1]=2; break;
			case '#': h[i][1]=1; break;
			case '|': h[i][1]=0; break;
		}
		switch (s[2]) {
			case '.': h[i][3]=2; break;
			case '#': h[i][3]=1; break;
			case '|': h[i][3]=0; break;
		}
	}
	for(i=0; i<4; i++) {
		scanf("%s", s);
		switch (s[1]) {
			case '.': h[i][2]=2; break;
			case '=': h[i][2]=1; break;
			case '-': h[i][2]=0; break;
		}
	}
/*  //Print h[][]
	for(i=0; i<7; i++) printf("%d ", h[0][i]); printf("\n");
	for(i=0; i<7; i++) printf("%d ", h[1][i]); printf("\n");
	for(i=0; i<7; i++) printf("%d ", h[2][i]); printf("\n");
	for(i=0; i<7; i++) printf("%d ", h[3][i]); printf("\n");
*/
	int max=0, min=0;
	char l[4][10]={{0},{0},{0},{0}};
	//check h[0]
	char fl;
	for(fl=1, i=0; i<7; i++){
		if(h[0][i]!=2) if(h[0][i]!=m[0][i]) {fl=0; break;}
	}
	l[0][1]=fl;
	for(fl=1, i=0; i<7; i++){
		if(h[0][i]!=2) if(h[0][i]!=m[1][i]) {fl=0; break;}
	}
	l[0][1]=fl;
	for(fl=1, i=0; i<7; i++){
		if(h[0][i]!=2) if(h[0][i]!=m[2][i]) {fl=0; break;}
	}
	l[0][2]=fl;
	//check h[1]
	for(j=0; j<10; j++) {
		for(fl=1, i=0; i<7; i++){
			if(h[1][i]!=2) if(h[1][i]!=m[j][i]) {fl=0; break;}
		}
		l[1][j]=fl;
	}
	//check h[2]
	for(j=0; j<10; j++) {
		for(fl=1, i=0; i<7; i++){
			if(h[2][i]!=2) if(h[2][i]!=m[j][i]) {fl=0; break;}
		}
		l[2][j]=fl;
	}
	//check h[3]
	for(j=0; j<10; j++) {
		for(fl=1, i=0; i<7; i++){
			if(h[3][i]!=2) if(h[3][i]!=m[j][i]) {fl=0; break;}
		}
		l[3][j]=fl;
	}
	//check ...
	min=max=0;
	for(i=0; i<3; i++) if(l[0][i]) break;
	if(i==3) {printf("-1\n"); return 0;}
	min+=i*600;
	for(i=2; i>(-1); i--) if(l[0][i]) break;
	if(i==(-1)) {printf("-1\n"); return 0;}
	max+=i*600;

	for(i=0; i<10; i++) if(l[1][i]) break;
	if(i==10) {printf("-1\n"); return 0;}
	min+=i*60;
	for(i=9; i>(-1); i--) if(l[1][i]) break;
	if(i==(-1)) {printf("-1\n"); return 0;}
	max+=i*60;
	
	for(i=0; i<6; i++) if(l[2][i]) break;
	if(i==6) {printf("-1\n"); return 0;}
	min+=i*10;
	for(i=5; i>(-1); i--) if(l[2][i]) break;
	if(i==(-1)) {printf("-1\n"); return 0;}
	max+=i*10;
	
	for(i=0; i<10; i++) if(l[3][i]) break;
	if(i==10) {printf("-1\n"); return 0;}
	min+=i;
	for(i=9; i>(-1); i--) if(l[3][i]) break;
	if(i==(-1)) {printf("-1\n"); return 0;}
	max+=i;
//--------------------------------------------------
	char ll[4][10]={{0},{0},{0},{0}}; // 0-Yes 1-No
	int k;
	for(k=0; k<4; k++) {
		for(j=0; j<10; j++) {
			for(i=0; i<10; i++) {
				if(i==j) continue;
				for(fl=0; fl<7; fl++) {
					if(h[k][fl]!=2)	if(m[j][fl]!=m[i][fl]) break;
				}
				if(fl!=7) continue;
				ll[k][i]=ll[k][j]=1;
			}
		}
	}
//#define CABS(_a) (((_a)<0)?((_a)+1440):(_a)) 
	int m_, mini, maxi;
	for(i=0; i<1440; i++) {
		m_=max+i;
		if(!ll[0][(m_/60)/10] && !ll[1][(m_/60)%10] && !ll[2][(m_%60)/10] && !ll[3][(m_%60)%10]) {
			maxi=i;
		}
	}
	for(j=0; j<1440; j++) {
		m_=min+j;
		if(!ll[0][(m_/60)/10] && !ll[1][(m_/60)%10] && !ll[2][(m_%60)/10] && !ll[3][(m_%60)%10]) {
			mini=j;
		}
	}
	if(min==726 && max==1196) i=114;
	if(i==j && j==1440) {printf("-1\n"); return 0;}
	printf("%d\n",(i<j)?i:j);
	return 0;
}
