#include<bits/stdc++.h>
using namespace std;
long long n,m;
long long num[15];
bool thing[15],ok = 0;
vector<long long> k,ans;
map<long long,long long> v = {{1,2},{2,5},{3,5},{4,4},{5,5},{6,6},{7,3},{8,7},{9,6}};
void dfs(long long sum,long long now){
if(sum > n){
return;
}
if(sum == n){
ok = 1;
return;
}
if(ok){
return;
}
for(long long i = now; i <= m; i++){
dfs(sum+num[i],i);
k.push_back(num[i]);
if(ok){
return;
}
k.pop_back();
}
}
int main(){
scanf("%lld%lld",&n,&m);
for(long long i = 1; i <= m; i++){
long long tp;
scanf("%lld",&tp);
num[i] = v[tp];
thing[tp] = 1;
}
sort(num+1,num+1+m);
dfs(0,1);
sort(k.begin(),k.end());
for(long long i = 0; i < k.size(); i++){
for(long long j = 9; j >= 1; j--){
if(v[j] == k[i] && thing[j]){
ans.push_back(j);
break;
}
}
}
sort(ans.begin(),ans.end(),greater<long long>());
for(long long i = 0; i < ans.size(); i++){
printf("%lld",ans[i]);
}
return 0;
}
记录