#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
//英语 看博友分析 抄博友程序 bfs 没掌握
int r,l;
struct nod{
int father;
int ans;
};
nod fa[5008];
int n,m;
int da[5008];
int flag[5008];//背
void print(int x)//背
{
if(x==0)
return;
print(fa[x].father);//背
cout<<fa[x].ans;//背
}
void bfs()
{
memset(fa,0,sizeof(fa));
memset(flag,0,sizeof(flag));
queue<int> que;
r=0;//背
l=1;//背
for(int i=0;i<m;i++)
{
if(da[i]!=0)
{
que.push(da[i]%n);//背
flag[da[i]%n]=1;//背
r++;
fa[r].father=0;
fa[r].ans=da[i];//背
}
}
while(que.empty()!=1)
{
int head=que.front();//背
que.pop();
if(head==0)
{
//cout<<l<<endl;
print(l);//背
cout<<endl;
return;
}
for(int i=0;i<m;i++)//背
{
int t=head;
t=(t*10+da[i])%n;//背
if(!flag[t])
{
flag[t]=1;
r++;//背 重要
fa[r].father=l;
fa[r].ans=da[i];//背
que.push(t);
}
}
l++;//背 重要
}
cout<<0<<endl;
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=0;i<m;i++)
{
scanf("%d",&da[i]);
}
if(n==0)
{
cout<<0<<endl;
continue;
}
sort(da,da+m);
bfs();
}
return 0;
}