#include <iostream>
#include <cstdio>
#include <memory.h>
#include <queue>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
const int maxn=5100;
int n,m,a[12];
bool vis[maxn];
struct node
{
string num;
int mod;
node(string str="",int mmod=0):num(str),mod(mmod){}
};
string bfs(){
memset(vis,0,sizeof(vis));
queue<node>q;
q.push(node("",0));
while (q.size()){
node t=q.front();
q.pop();
if(t.num!=""&&t.mod==0){
return t.num;
}
for (int i=0;i<=10;++i){
if(!a[i])continue;
node temp=t;
temp.num=temp.num+(char)('0'+i);
temp.mod=(temp.mod*10+i)%n;
if(!vis[temp.mod]&&temp.num!="0"){
vis[temp.mod]=1;
q.push(temp);
}
}
}
return "";
}
int main(){
while (scanf("%d%d",&n,&m)==2){
memset(a,0,sizeof(a));
for (int i=0;i<m;++i){
int t;
scanf("%d",&t);
a[t]=1;
}
string ans="0";
if(n!=0)
ans=bfs();
if(ans!=""){
printf("%s\n",ans.c_str());
}else{
printf("0\n");
}
}
return 0;
}