#include <bits/stdc++.h>
using namespace std;
#define ____AnhKietSS____ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
#define fi first
#define se second
#define pb push_back
#define ii pair<int,int>
#define foru(i,a,b) for(int i=(a);i<=(b);i++)
#define ford(i,a,b) for(int i=(a);i>=(b);i--)
const ll MOD=1000000007;
int n,m;
int a[25],b[25];
int k;
ll dp[1<<20][11];
signed main()
{
____AnhKietSS____
freopen("game11.inp","r",stdin);
freopen("game11.out","w",stdout);
cin>>n>>m;
vector<int> d(n+1,0);
int r=0;
foru(i,1,m)
{
cin>>a[i];
d[a[i]]=1;
r=(r*10+a[i])%11;
}
foru(i,1,n)
{
if(!d[i])
{
b[k]=i;
k++;
}
}
dp[0][r]=1;
int lim=(1<<k);
for(int mask=0;mask<lim;mask++)
{
for(int x=0;x<11;x++)
{
if(dp[mask][x]==0) continue;
for(int i=0;i<k;i++)
{
if(mask&(1<<i)) continue;
int nmask=mask|(1<<i);
int nr=(x*10+b[i])%11;
dp[nmask][nr]+=dp[mask][x];
dp[nmask][nr]%=MOD;
}
}
}
cout<<dp[lim-1][0];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIF9fX19BbmhLaWV0U1NfX19fIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGZvcnUoaSxhLGIpIGZvcihpbnQgaT0oYSk7aTw9KGIpO2krKykKI2RlZmluZSBmb3JkKGksYSxiKSBmb3IoaW50IGk9KGEpO2k+PShiKTtpLS0pCgpjb25zdCBsbCBNT0Q9MTAwMDAwMDAwNzsKCmludCBuLG07CmludCBhWzI1XSxiWzI1XTsKaW50IGs7CmxsIGRwWzE8PDIwXVsxMV07CgpzaWduZWQgbWFpbigpCnsKICAgIF9fX19BbmhLaWV0U1NfX19fCgogICAgZnJlb3BlbigiZ2FtZTExLmlucCIsInIiLHN0ZGluKTsKICAgIGZyZW9wZW4oImdhbWUxMS5vdXQiLCJ3IixzdGRvdXQpOwoKICAgIGNpbj4+bj4+bTsKCiAgICB2ZWN0b3I8aW50PiBkKG4rMSwwKTsKCiAgICBpbnQgcj0wOwoKICAgIGZvcnUoaSwxLG0pCiAgICB7CiAgICAgICAgY2luPj5hW2ldOwogICAgICAgIGRbYVtpXV09MTsKICAgICAgICByPShyKjEwK2FbaV0pJTExOwogICAgfQoKICAgIGZvcnUoaSwxLG4pCiAgICB7CiAgICAgICAgaWYoIWRbaV0pCiAgICAgICAgewogICAgICAgICAgICBiW2tdPWk7CiAgICAgICAgICAgIGsrKzsKICAgICAgICB9CiAgICB9CgogICAgZHBbMF1bcl09MTsKCiAgICBpbnQgbGltPSgxPDxrKTsKCiAgICBmb3IoaW50IG1hc2s9MDttYXNrPGxpbTttYXNrKyspCiAgICB7CiAgICAgICAgZm9yKGludCB4PTA7eDwxMTt4KyspCiAgICAgICAgewogICAgICAgICAgICBpZihkcFttYXNrXVt4XT09MCkgY29udGludWU7CgogICAgICAgICAgICBmb3IoaW50IGk9MDtpPGs7aSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihtYXNrJigxPDxpKSkgY29udGludWU7CgogICAgICAgICAgICAgICAgaW50IG5tYXNrPW1hc2t8KDE8PGkpOwogICAgICAgICAgICAgICAgaW50IG5yPSh4KjEwK2JbaV0pJTExOwoKICAgICAgICAgICAgICAgIGRwW25tYXNrXVtucl0rPWRwW21hc2tdW3hdOwogICAgICAgICAgICAgICAgZHBbbm1hc2tdW25yXSU9TU9EOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQ8PGRwW2xpbS0xXVswXTsKCiAgICByZXR1cm4gMDsKfQ==