this is wrong code
#include<bits/stdc++.h>
using namespace std;
long long n,ans,k;
queue<long long> q,a,b;
bool vis[100001];
void bfs(){
ans++;
vis[n]=1;
q.push(n);
while(!q.empty()){
long long x=q.front(),y=q.front(),sb=1;
q.pop();
while(x>0){
long long xx=x%10;x/=10;
for(long long i=1;i<=k;i++){
long long yy=y+(b.front()-a.front())*sb;
if(xx==a.front()&&vis[yy]==0){
vis[yy]=1;
ans++;
q.push(yy);
}
b.push(b.front());
b.pop();
a.push(a.front());
a.pop();
}
sb*=10;
}
}
}
int main(){
scanf("%lld%lld",&n,&k);
for(long long i=1;i<=k;i++){
long long x,y;
scanf("%lld%lld",&x,&y);
a.push(x);
b.push(y);
}
bfs();
printf("%lld",ans);
return 0;
}