60pts
代码:
#include<iostream>
using namespace std;
typedef long long ll;
int n,m,ans,sum;
ll a[51],b[51];
string s;
bool add(ll X)
{
for(int i = 50;i >= 0;i--)
{
if(X & (1LL << i))
{
if(b[i])
X ^= b[i];
else
{
b[i] = X;
return true;
}
}
}
return false;
}
int main()
{
cin >> n >> m;
for(int i = 1;i <= m;i++)
{
sum = 0;
cin >> s;
for(int j = 0;j < s.size();j++)
if(s[j] == 'O')
sum ^= (1LL << j);
ans += add(sum);
}
cout << (1LL << ans) % 2008;
return 0;
}