1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <bits/stdc++.h>
using namespace std;
int n,L;
vector<vector<int>>v;
int wyn=0;
int gut=0;
int mie(int x)
{
	int res=0;
	for(int i=0; i<n; i++)
		if(v[i][x])
			res++;
	return res;
}
void rek(int kt,int il)
{
	if(kt==-1)
	{
		gut=1;
		return;
	}
	int p=0;
	int k=0;
	while(k+1<6*L)
	{
		if(v[kt][p]==1)
		{
		while(p<6*L&&v[kt][p]==1)
			p++;
		k=p;}
		if(k==6*L)
			break;
		k++;
		if(v[kt][k]==0)
		{
			if(k-p<il)
				v[kt][k]=2;
			else
			{
				v[kt][k]=2;
				v[kt][p]=0;
				p++;
			}
			if(mie(k)==n)
			{
				while(p<=k)
				{
					v[kt][p]=0;
					p++;
				}
				p=k;
			}
		}
		else
			while(p<k)
			{
				v[kt][p]=0;
				p++;
			}
		if(k-p+1==il)
		{
			rek(kt-1,il);
				//cout<<kt<<"\n";
			if(gut==1)
			{
				return;
			}
		}
	}	
	while(p<=k)
		v[kt][p]=0,p++;
		v[kt][6*L-1]=v[kt][6*L-2];
		//for(int i=0; i<6*L; i++)
		//cout<<v[kt][i];
	//cout<<il<<"\n";

}
int main()
{
	ios_base::sync_with_stdio(NULL);
	cin.tie(NULL);
	cout.tie(NULL);
	cin>>n>>L;
	vector<string>v1(n);
	for(int i=0; i<n; i++)
		cin>>v1[i];
	v.resize(n,vector<int>(6*L,0));
	for(int j=0; j<n; j++)
		for(int i=0; i<L; i++)
			if(v1[j][i]=='X')
				v[j][i*6]=v[j][i*6+1]=v[j][i*6+2]=v[j][i*6+3]=v[j][i*6+4]=v[j][i*6+5]=1;
	int poc=0,kon=6*L;
	while(poc<kon)
	{
		int sr=(poc+kon)/2;
		gut=0;
		rek(n-1,sr);
		if(gut==1)
			poc=sr+1;
		else
			kon=sr;
	}
	for(int i=0; i<6*L; i++)
		if(mie(i)==n)
		{
			cout<<"-1\n";
			return 0;
		}
		if(poc==0)
		{
			cout<<"0/1\n";
			return 0;
		}
		if(poc%6==0)
		{
			cout<<poc/6<<"/6\n";
			return 0;
		}
		if(poc%2==0)
		{
			cout<<poc/2<<"/3\n";
			return 0;
		}
		if(poc%3==0)
		{
			cout<<poc/3<<"/2\n";
			return 0;
		}
}