#include <iostream>
using namespace std;
long long maxNum=0;
int mod = 1e9+7;
bool maxDiff(int*a,int n)
{
for(int i=0;i<n-1;i++)
{
if(abs(a[i+1]-a[i]) > 1)
{
return false;
}
}
return true;
}
void rec(int n,int m,int*a,int i,int num)
{
if(i == n)
{
if(maxDiff(a,n))
{
maxNum++;
}
return;
}
else
{
if(a[i] == 0)
{
for(int j=1;j<=m;j++)
{
int old=a[i];
a[i] = j;
rec(n,m,a,i+1,num);
a[i] = old;
}
}
else
{
rec(n,m,a,i+1,num);
}
}
}
int main() {
int n,m;
cin>>n>>m;
int a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
maxNum=0;
rec(n,m,a,0,1);
cout<<maxNum<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBsb25nIG1heE51bT0wOwppbnQgbW9kID0gMWU5Kzc7Cgpib29sIG1heERpZmYoaW50KmEsaW50IG4pCnsKCWZvcihpbnQgaT0wO2k8bi0xO2krKykKCXsKCQlpZihhYnMoYVtpKzFdLWFbaV0pID4gMSkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CglyZXR1cm4gdHJ1ZTsKfQoKdm9pZCByZWMoaW50IG4saW50IG0saW50KmEsaW50IGksaW50IG51bSkKewoJaWYoaSA9PSBuKQoJewoJCWlmKG1heERpZmYoYSxuKSkKCQl7CgkJCW1heE51bSsrOwoJCX0KCQlyZXR1cm47Cgl9CgllbHNlCgl7CgkJaWYoYVtpXSA9PSAwKQoJCXsKCQkJZm9yKGludCBqPTE7ajw9bTtqKyspCgkJCXsKCQkJCWludCBvbGQ9YVtpXTsKCQkJCWFbaV0gPSBqOwoJCQkJcmVjKG4sbSxhLGkrMSxudW0pOwoJCQkJYVtpXSA9IG9sZDsKCQkJfQoJCX0KCQllbHNlCgkJewoJCQlyZWMobixtLGEsaSsxLG51bSk7CgkJfQoJfQp9CgppbnQgbWFpbigpIHsKCQoJaW50IG4sbTsKCWNpbj4+bj4+bTsKCQoJaW50IGFbbl07Cglmb3IoaW50IGk9MDtpPG47aSsrKQoJewoJCWNpbj4+YVtpXTsKCX0KCQoJbWF4TnVtPTA7CglyZWMobixtLGEsMCwxKTsKCQoJY291dDw8bWF4TnVtPDxlbmRsOwoJcmV0dXJuIDA7Cn0=