#include<bits/stdc++.h>
using namespace std;
#define pll pair<ll,ll>
#define ll long long
#define lli long long int
#define ull unsigned long long
#define ld long double
#define pii pair<int,int>
#define lower_boundIDX(x,val) lower_bound(all(x),val)-x.begin()
#define upper_boundIDX(x,val) upper_bound(all(x),val)-x.begin()
#define mem(a,val) memset(a,val,sizeof(a))
#define all(x) x.begin(),x.end()
#define countbit(x) __builtin_popcount(x)
#define Obit(x) __builtin_ctz(x)
#define minHeap priority_queue<int,vector<int> ,greater<int>>
#define maxHeap priority_queue<int>
#define need_for_speed ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define debug(x) cout<<"# "<<x<<'\n';
const int MOD = 1000000007;
const int MAX = 2e5+7;
vector<pii> vpp[2001];
vector<int> sb,ans(2001);
vector<int> ppp{1110111,0010010,1011101, 1011011, 0111010,1101011,1101111,1010010,1111111, 1111011};
int n,kk,x;
int dp[2001][2001];
int solve(int i,int k)
{
if(k<0) return 0;
if(i==n && k==0) return 1;
if(i!=n && k==0) return 0;
int flag = 0;
if(dp[i][k]!=-1) return dp[i][k];
for(int j=0;j<vpp[i].size();j++)
{
pii pppp = vpp[i][j];
int tp = abs(sb[i]-pppp.first);
if(tp<=k)
{
if(solve(i+1,k-tp)){ ans[i] = max(ans[i],pppp.second); flag = 1; }
}
}
if(!flag) dp[i][k] = 0;
else dp[i][k] = 1;
return dp[i][k];
}
int main()
{
need_for_speed;
cin>>n>>kk;
memset(dp,-1,sizeof(dp));
for(int i=0;i<n;i++)
{
cin>>x;
sb.push_back(countbit(x));
for(int j=0;j<ppp.size();j++) vpp[i].push_back(make_pair(countbit(x&ppp[j]),j));
}
solve(0,kk);
if(dp[n][kk]) for(int i=0;i<n;i++) cout<<ans[i];
else cout<<"-1"<<'\n';
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBwbGwgcGFpcjxsbCxsbD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBsbGkgbG9uZyBsb25nIGludAojZGVmaW5lIHVsbCB1bnNpZ25lZCBsb25nIGxvbmcKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgbG93ZXJfYm91bmRJRFgoeCx2YWwpIGxvd2VyX2JvdW5kKGFsbCh4KSx2YWwpLXguYmVnaW4oKQojZGVmaW5lIHVwcGVyX2JvdW5kSURYKHgsdmFsKSB1cHBlcl9ib3VuZChhbGwoeCksdmFsKS14LmJlZ2luKCkKI2RlZmluZSBtZW0oYSx2YWwpICBtZW1zZXQoYSx2YWwsc2l6ZW9mKGEpKQojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCkseC5lbmQoKQojZGVmaW5lIGNvdW50Yml0KHgpICBfX2J1aWx0aW5fcG9wY291bnQoeCkKI2RlZmluZSBPYml0KHgpICBfX2J1aWx0aW5fY3R6KHgpCiNkZWZpbmUgbWluSGVhcCBwcmlvcml0eV9xdWV1ZTxpbnQsdmVjdG9yPGludD4gLGdyZWF0ZXI8aW50Pj4KI2RlZmluZSBtYXhIZWFwIHByaW9yaXR5X3F1ZXVlPGludD4KI2RlZmluZSBuZWVkX2Zvcl9zcGVlZCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiNkZWZpbmUgZGVidWcoeCkgY291dDw8IiMgIjw8eDw8J1xuJzsKY29uc3QgaW50ICBNT0QgPSAxMDAwMDAwMDA3Owpjb25zdCBpbnQgTUFYID0gMmU1Kzc7Cgp2ZWN0b3I8cGlpPiB2cHBbMjAwMV07CnZlY3RvcjxpbnQ+IHNiLGFucygyMDAxKTsKdmVjdG9yPGludD4gcHBwezExMTAxMTEsMDAxMDAxMCwxMDExMTAxLCAxMDExMDExLCAwMTExMDEwLDExMDEwMTEsMTEwMTExMSwxMDEwMDEwLDExMTExMTEsIDExMTEwMTF9OwppbnQgbixrayx4OwppbnQgZHBbMjAwMV1bMjAwMV07CgppbnQgc29sdmUoaW50IGksaW50IGspCnsKCgogICBpZihrPDApIHJldHVybiAwOwogICBpZihpPT1uICYmIGs9PTApIHJldHVybiAxOwogICBpZihpIT1uICYmIGs9PTApIHJldHVybiAwOwogICBpbnQgZmxhZyA9IDA7CiAgIGlmKGRwW2ldW2tdIT0tMSkgcmV0dXJuIGRwW2ldW2tdOwoKCiAgIGZvcihpbnQgaj0wO2o8dnBwW2ldLnNpemUoKTtqKyspCiAgIHsKICAgICBwaWkgcHBwcCA9IHZwcFtpXVtqXTsKICAgICBpbnQgdHAgPSBhYnMoc2JbaV0tcHBwcC5maXJzdCk7CiAgICAgaWYodHA8PWspCiAgICAgewogICAgIAlpZihzb2x2ZShpKzEsay10cCkpeyBhbnNbaV0gPSBtYXgoYW5zW2ldLHBwcHAuc2Vjb25kKTsgZmxhZyA9IDE7IH0KICAgICB9CiAgIH0KCiAgIGlmKCFmbGFnKSBkcFtpXVtrXSA9IDA7CiAgIGVsc2UgZHBbaV1ba10gPSAxOwogICByZXR1cm4gZHBbaV1ba107Cn0KCmludCBtYWluKCkKewoKICBuZWVkX2Zvcl9zcGVlZDsKICBjaW4+Pm4+PmtrOwogIG1lbXNldChkcCwtMSxzaXplb2YoZHApKTsKICBmb3IoaW50IGk9MDtpPG47aSsrKQogIHsKICAJY2luPj54OwogIAlzYi5wdXNoX2JhY2soY291bnRiaXQoeCkpOwogIAlmb3IoaW50IGo9MDtqPHBwcC5zaXplKCk7aisrKSB2cHBbaV0ucHVzaF9iYWNrKG1ha2VfcGFpcihjb3VudGJpdCh4JnBwcFtqXSksaikpOwogIH0KICBzb2x2ZSgwLGtrKTsKICBpZihkcFtuXVtra10pIGZvcihpbnQgaT0wO2k8bjtpKyspIGNvdXQ8PGFuc1tpXTsKICBlbHNlIGNvdXQ8PCItMSI8PCdcbic7Cn0K