#include<iostream>
#include<queue>
using namespace std;
queue<int> shu;
int mp[10005],n,k,T,s=0;
int change(int shu,int w,int x,int y){
switch(w){ case 1:return shu-x+y;break;
case 2:return shu-x*10 +y*10;break;
case 3:return shu-x*100 +y*100;break;
case 4:return shu-x*1000 +y*1000;break;
default :return -1;
}
}
int main(){
cin>>n>>k;
int cx[k+1],cy[k+1];
for(int i=1;i<=k;++i)cin>>cx[i]>>cy[i];
mp[n]=1,shu.push(n);
while(!shu.empty()){
T=shu.front();
shu.pop();
int A=T,js=0;
while(A>0){ js++;
for(int i=1;i<=k;++i){
if(A%10==cx[i]){
int tp=change(T,js,cx[i],cy[i]);
if(!mp[tp]) mp[tp]=1, shu.push(tp);
}
}
A/=10;
}
}
for(int i=1;i<10005;++i)if(mp[i])s++;
cout<<s;
return 0;
}