#include <iostream>
#include <vector>
#include <algorithm>
#include <array>
#include <cmath>
#include <set>
#include <map>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef long double ld;
#define int ll
const int N=55,K=1505;
int dp[N][K];
string s[N][K];
map<string,ll> dm[60];
int32_t main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
ll mod=1e9+7;
int n,k;
cin>>n>>k;;
ll tot=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=k;j++)
{
cin>>s[i][j];
dp[i][j]=(i==1);
dp[i][j]+=dm[i-1][s[i][j].substr(0,i-1)];
if(s[i][j].substr(0,i-1)!=s[i][j].substr(1,i-1))
dp[i][j]+=dm[i-1][s[i][j].substr(1,i-1)];
dp[i][j]=(dp[i][j]%mod);
if(i==n)tot=(tot+dp[i][j])%mod;
int&x=dm[i][s[i][j]];
x=(x+dp[i][j])%mod;
}
}
cout<<tot<<endl;
}