/*
TASK:brkclk
LANG:c++
*/
#include<iostream>
//#include<fstream.h>

using namespace std;

char a[5][31]={".=..-..=..=..-..=..=..=..=..=.",
               "#.#|.#|.#|.##.##..#.||.##.##.#",
			   ".-..-..=..=..=..=..=..-..=..=.",
			   "#.#|.##.||.#|.#|.##.#|.##.#|.#",
			   ".=..-..=..=..-..=..=..-..=..=."
};

char vhod[4][5][4];
int used[10],mas[4]={2,9,6,9};
int crnt[4],maxi=-1,crnt1[4];

int may(char p[5][4],int k)
{
	int i,j;
	k*=3;
	for(i=0;i<5;i++)
		for(j=0;j<3;j++)
			if((p[i][j]!=a[i][k+j])&&(p[i][j]!='.'))
				return 0;
	return 1;
}

void koe(char p[5][4],int n)
{
	int i,j,k,t,sht=1;
	for(i=0;i<=n;i++)
		used[i]=0;
	for(k=0;k<=n;k++)
		if(used[k]==0)
		{
			t=0;
			for(i=0;i<5;i++)
				for(j=0;j<3;j++)
					if(p[i][j]!='.')
						p[i][j]=a[i][k*3+j];
			for(i=k+1;i<=n;i++)
				if(!used[i])
					if(may(p,i))
					{
						used[i]=sht;
						t=1;
					}
			if(t)
				used[k]=sht++;
		}
}

/*void f1(int pred,int k)
{
	if(k==4)
	{
		vsa[m++]=crnt[0]*600+crnt[1]*60+crnt[2]*10+crnt[3];
		return;
	}
	int i,r;
	r=mas[k];
	if(k==1&&pred==2)
		r=4;
	else if(k==3&&pred==6)
		r=0;
	koe(vhod[k],r);
	crnt[k]=0;
	f1(0,k+1);
	for(i=1;i<=r;i++)
	{
		if(used[i]==0)
		{
			crnt[k]=i;
			f1(i,k+1);
		}
		else if(used[i]!=used[i-1])
		{
			crnt[k]=i;
			f1(i,k+1);
		}
	}
}*/

void prom(int k)
{
	if(k==-1)
		return;
	int r;
	r=mas[k];
	if(k==1&&crnt[0]==2)
		r=4;
	if(r==crnt[k])
	{
		crnt[k]=0;
		prom(k-1);
	}
	else
		crnt[k]++;
}

void g()
{
	int i,k=0,r,j,m,m1;
	m=crnt[0]*600+crnt[1]*60+crnt[2]*10+crnt[3];
	for(i=0;i<4;i++)
		crnt1[i]=crnt[i];
	for(i=0;i<4;i++)
	{
		r=mas[i];
		if(i==1&&crnt1[0]==2)
			r=4;
		else if(i==3&&crnt1[2]==6)
			r=0;
		for(j=0;j<=r;j++)
			if(may(vhod[i],j))
				k++;
		if(k>1)
		{
			koe(vhod[i],r);
			for(j=crnt1[i]+1;j<=r&&(used[j]==used[j-1]);j++);
			if(j==r+1||j==r)
			{
				for(j=i;j<4;j++)
					crnt1[j]=0;
				prom(i-1);
			}
			else
			{
				crnt1[i]=j;
				for(j=i+1;j<4;j++)
					crnt1[j]=0;
			}
			m1=crnt1[0]*600+crnt1[1]*60+crnt1[2]*10+crnt1[3];
			if(m1>=m)
			{
				if(maxi<m1-m)
					maxi=m1-m;
			}
			else
				if(maxi<1440+m1-m)
					maxi=1440+m1-m;
			return;
		}
	}
}

void f(int pred,int k)
{
	if(k==4)
	{
		g();
		return;
	}
	int i,r;
	r=mas[k];
	if(k==1&&pred==2)
		r=4;
	else if(k==3&&pred==6)
		r=0;
	for(i=0;i<=r;i++)
	{
		if(may(vhod[k],i))
		{
			crnt[k]=i;
			f(i,k+1);
		}
	}
		
}

int main()
{
	int i,j;
	//ifstream fin;
	//fin.open("clock.txt");
	for(i=0;i<5;i++)
		for(j=0;j<4;j++)
			cin>>vhod[j][i];
	//fin.close();

	f(0,0);
	cout<<maxi<<endl;
	return 0;
}