def chmax(x, y):

    if x == '-':

        return y



    lx = len(x)

    ly = len(y)

    if lx < ly:

        return y

    elif lx == ly:

        if x < y: return y

        else: return x

    else:

        return x





N, M = list(map(int, input().split()))

a = list(map(int, input().split()))



cnt = [N + 1, 2, 5, 5, 4, 5, 6, 3, 7, 6]

dp = ['-' for _ in range(N + 10 + 1)]

dp[0] = ''

# dp[j]: j 本使ってできる最大の数



for i in range(N + 1):

    # print(dp)

    if dp[i] == '-': continue

    for aa in a:

        dp[i + cnt[aa]] = chmax(dp[i + cnt[aa]], dp[i] + str(aa))



print((dp[N]))

INF = float('inf')



N, M = list(map(int, input().split()))

a = list(map(int, input().split()))



num = [N + 1, 2, 5, 5, 4, 5, 6, 3, 7, 6]

# num[数字] = 必要なマッチ棒の本数

# 数字0は使用できない



dp = [-INF for _ in range(N + 1)]

dp[0] = 0

# dp[マッチ棒の本数] = 構成可能な最大桁数

# 最大桁数を求めるので、初期値-INFとして、maxで更新



for i in range(1, N + 1):

    for aa in a:

        # aa: 使用可能な数字

        idx = i - num[aa]

        if idx >= 0:

            dp[i] = max(dp[i], dp[idx] + 1)



a = list(sorted(a, reverse=True))

# 降順ソート



need = dp[N]

# 構成可能な最大整数が必要とする桁数



rest = N

# 使用可能なマッチ棒の本数



ans = ''



while need > 0:

    for aa in a:

        # aa: 使用可能な数字（降順）

        idx = rest - num[aa]

        if idx >= 0:

            # マッチ棒の本数が足りるため、数字aaを使用できる場合

            if dp[idx] == need - 1:

                ans += str(aa)

                # ans末尾にaaを追記



                rest -= num[aa]

                need -= 1



                break

                # 次の桁の調査でaa[0]から試すため

print(ans)

def chmax(x, y):
    if x == "-":
        return y
    lx = len(x)
    ly = len(y)
    if lx < ly:
        return y
    elif lx == ly:
        if x < y:
            return y
        else:
            return x
    else:
        return x


N, M = list(map(int, input().split()))
a = list(map(int, input().split()))
cnt = [N + 1, 2, 5, 5, 4, 5, 6, 3, 7, 6]
dp = ["-" for _ in range(N + 10 + 1)]
dp[0] = ""
# dp[j]: j 本使ってできる最大の数
for i in range(N + 1):
    # print(dp)
    if dp[i] == "-":
        continue
    for aa in a:
        dp[i + cnt[aa]] = chmax(dp[i + cnt[aa]], dp[i] + str(aa))
print((dp[N]))

INF = float("inf")
N, M = list(map(int, input().split()))
a = list(map(int, input().split()))
num = [N + 1, 2, 5, 5, 4, 5, 6, 3, 7, 6]
# num[数字] = 必要なマッチ棒の本数
# 数字0は使用できない
dp = [-INF for _ in range(N + 1)]
dp[0] = 0
# dp[マッチ棒の本数] = 構成可能な最大桁数
# 最大桁数を求めるので、初期値-INFとして、maxで更新
for i in range(1, N + 1):
    for aa in a:
        # aa: 使用可能な数字
        idx = i - num[aa]
        if idx >= 0:
            dp[i] = max(dp[i], dp[idx] + 1)
a = list(sorted(a, reverse=True))
# 降順ソート
need = dp[N]
# 構成可能な最大整数が必要とする桁数
rest = N
# 使用可能なマッチ棒の本数
ans = ""
while need > 0:
    for aa in a:
        # aa: 使用可能な数字（降順）
        idx = rest - num[aa]
        if idx >= 0:
            # マッチ棒の本数が足りるため、数字aaを使用できる場合
            if dp[idx] == need - 1:
                ans += str(aa)
                # ans末尾にaaを追記
                rest -= num[aa]
                need -= 1
                break
                # 次の桁の調査でaa[0]から試すため
print(ans)

-def chmax(x, y): -    if x == "-": -        return y -    lx = len(x) -    ly = len(y) -    if lx < ly: -        return y -    elif lx == ly: -        if x < y: -            return y -        else: -            return x -    else: -        return x - - +INF = float("inf") -cnt = [N + 1, 2, 5, 5, 4, 5, 6, 3, 7, 6] -dp = ["-" for _ in range(N + 10 + 1)] -dp[0] = "" -# dp[j]: j 本使ってできる最大の数 -for i in range(N + 1): -    # print(dp) -    if dp[i] == "-": -        continue +num = [N + 1, 2, 5, 5, 4, 5, 6, 3, 7, 6] +# num[数字] = 必要なマッチ棒の本数 +# 数字0は使用できない +dp = [-INF for _ in range(N + 1)] +dp[0] = 0 +# dp[マッチ棒の本数] = 構成可能な最大桁数 +# 最大桁数を求めるので、初期値-INFとして、maxで更新 +for i in range(1, N + 1): -        dp[i + cnt[aa]] = chmax(dp[i + cnt[aa]], dp[i] + str(aa)) -print((dp[N])) +        # aa: 使用可能な数字 +        idx = i - num[aa] +        if idx >= 0: +            dp[i] = max(dp[i], dp[idx] + 1) +a = list(sorted(a, reverse=True)) +# 降順ソート +need = dp[N] +# 構成可能な最大整数が必要とする桁数 +rest = N +# 使用可能なマッチ棒の本数 +ans = "" +while need > 0: +    for aa in a: +        # aa: 使用可能な数字（降順） +        idx = rest - num[aa] +        if idx >= 0: +            # マッチ棒の本数が足りるため、数字aaを使用できる場合 +            if dp[idx] == need - 1: +                ans += str(aa) +                # ans末尾にaaを追記 +                rest -= num[aa] +                need -= 1 +                break +                # 次の桁の調査でaa[0]から試すため +print(ans)