#!usr/bin/env python3
from collections import defaultdict, deque
from heapq import heappush, heappop
from itertools import permutations, accumulate
import sys
import math
import bisect
def LI(): return [int(x) for x in sys.stdin.buffer.readline().split()]
def I(): return int(sys.stdin.buffer.readline())
def LS():return [list(x) for x in sys.stdin.readline().split()]
def S():
    res = list(sys.stdin.readline())
    if res[-1] == "\n":
        return res[:-1]
    return res
def IR(n):
    return [I() for i in range(n)]
def LIR(n):
    return [LI() for i in range(n)]
def SR(n):
    return [S() for i in range(n)]
def LSR(n):
    return [LS() for i in range(n)]

sys.setrecursionlimit(1000000)
mod = 1000000007

def solve():
    W,n = LI()
    a = LI()
    for i in range(n):
        a[i] -= 1
    a.sort(reverse = True)
    b = [2,5,5,4,5,6,3,7,6]
    dp = [-float("inf")]*(W+1)
    dp[0] = 0
    for i in range(n):
        v = a[i]+1
        w = b[a[i]]
        for j in range(W):
            nj = j+w
            if nj > W:
                continue
            nd = dp[j]*10+v
            if dp[nj] < nd:
                dp[nj] = nd
    print(dp[W])
    return

#Solve
if __name__ == "__main__":
    solve() from collections import defaultdict, deque from heapq import heappush, heappop from itertools import permutations, accumulate import sys sys import math math import bisect bisect int(x) for x in sys.stdin.buffer.readline().split() for x in sys.stdin.buffer.readline().split() x sys.stdin.buffer.readline().split() sys.stdin.buffer.readline().split sys.stdin.buffer.readline() sys.stdin.buffer.readline sys.stdin.buffer sys.stdin sys stdin buffer readline split for x in sys.stdin.buffer.readline().split() int(x) int x def LI(): return [int(x) for x in sys.stdin.buffer.readline().split()] LI def I(): return int(sys.stdin.buffer.readline()) I list(x) for x in sys.stdin.readline().split() for x in sys.stdin.readline().split() x sys.stdin.readline().split() sys.stdin.readline().split sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline split for x in sys.stdin.readline().split() list(x) list x def LS():return [list(x) for x in sys.stdin.readline().split()] LS def S():
    res = list(sys.stdin.readline())
    if res[-1] == "\n":
        return res[:-1]
    return res S res = list(sys.stdin.readline()) res list(sys.stdin.readline()) list sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline if res[-1] == "\n":
        return res[:-1]
     res[-1] == "\n" res[-1] res -1 "\n" return res[:-1] res[:-1] res :-1 -1 return res res def IR(n):
    return [I() for i in range(n)] IR I() for i in range(n) for i in range(n) i range(n) range n for i in range(n) I() I return [I() for i in range(n)] [I() for i in range(n)] n n def LIR(n):
    return [LI() for i in range(n)] LIR LI() for i in range(n) for i in range(n) i range(n) range n for i in range(n) LI() LI return [LI() for i in range(n)] [LI() for i in range(n)] n n def SR(n):
    return [S() for i in range(n)] SR S() for i in range(n) for i in range(n) i range(n) range n for i in range(n) S() S return [S() for i in range(n)] [S() for i in range(n)] n n def LSR(n):
    return [LS() for i in range(n)] LSR LS() for i in range(n) for i in range(n) i range(n) range n for i in range(n) LS() LS return [LS() for i in range(n)] [LS() for i in range(n)] n n sys.setrecursionlimit(1000000) sys.setrecursionlimit sys setrecursionlimit 1000000 mod = 1000000007 mod 1000000007 def solve():
    W,n = LI()
    a = LI()
    for i in range(n):
        a[i] -= 1
    a.sort(reverse = True)
    b = [2,5,5,4,5,6,3,7,6]
    dp = [-float("inf")]*(W+1)
    dp[0] = 0
    for i in range(n):
        v = a[i]+1
        w = b[a[i]]
        for j in range(W):
            nj = j+w
            if nj > W:
                continue
            nd = dp[j]*10+v
            if dp[nj] < nd:
                dp[nj] = nd
    print(dp[W])
    return

#Solve solve W,n = LI() W LI() LI n a = LI() a LI() LI for i in range(n):
        a[i] -= 1
     i range(n) range n a[i] -= 1 a[i] a i 1 a.sort(reverse = True) a.sort a sort reverse = True reverse True b = [2,5,5,4,5,6,3,7,6] b [2,5,5,4,5,6,3,7,6] 2 5 5 4 5 6 3 7 6 dp = [-float("inf")]*(W+1) dp [-float("inf")]*(W+1) [-float("inf")] -float("inf") float("inf") float "inf" W+1 W 1 dp[0] = 0 dp[0] dp 0 0 for i in range(n):
        v = a[i]+1
        w = b[a[i]]
        for j in range(W):
            nj = j+w
            if nj > W:
                continue
            nd = dp[j]*10+v
            if dp[nj] < nd:
                dp[nj] = nd
     i range(n) range n v = a[i]+1 v a[i]+1 a[i] a i 1 w = b[a[i]] w b[a[i]] b a[i] a i for j in range(W):
            nj = j+w
            if nj > W:
                continue
            nd = dp[j]*10+v
            if dp[nj] < nd:
                dp[nj] = nd
     j range(W) range W nj = j+w nj j+w j w if nj > W:
                continue
             nj > W nj W continue nd = dp[j]*10+v nd dp[j]*10+v dp[j]*10 dp[j] dp j 10 v if dp[nj] < nd:
                dp[nj] = nd
     dp[nj] < nd dp[nj] dp nj nd dp[nj] = nd dp[nj] dp nj nd print(dp[W]) print dp[W] dp W return if __name__ == "__main__":
    solve() __name__ == "__main__" __name__ "__main__" solve() solve def LS():return [list(x) for x in sys.stdin.readline().split()] def LS():return [list(x) for x in sys.stdin.readline().split()] LS def LSR(n):
    return [LS() for i in range(n)] def LSR(n):
    return [LS() for i in range(n)] LSR def solve():
    W,n = LI()
    a = LI()
    for i in range(n):
        a[i] -= 1
    a.sort(reverse = True)
    b = [2,5,5,4,5,6,3,7,6]
    dp = [-float("inf")]*(W+1)
    dp[0] = 0
    for i in range(n):
        v = a[i]+1
        w = b[a[i]]
        for j in range(W):
            nj = j+w
            if nj > W:
                continue
            nd = dp[j]*10+v
            if dp[nj] < nd:
                dp[nj] = nd
    print(dp[W])
    return

#Solve def solve():
    W,n = LI()
    a = LI()
    for i in range(n):
        a[i] -= 1
    a.sort(reverse = True)
    b = [2,5,5,4,5,6,3,7,6]
    dp = [-float("inf")]*(W+1)
    dp[0] = 0
    for i in range(n):
        v = a[i]+1
        w = b[a[i]]
        for j in range(W):
            nj = j+w
            if nj > W:
                continue
            nd = dp[j]*10+v
            if dp[nj] < nd:
                dp[nj] = nd
    print(dp[W])
    return

#Solve solve def I(): return int(sys.stdin.buffer.readline()) def I(): return int(sys.stdin.buffer.readline()) I def S():
    res = list(sys.stdin.readline())
    if res[-1] == "\n":
        return res[:-1]
    return res def S():
    res = list(sys.stdin.readline())
    if res[-1] == "\n":
        return res[:-1]
    return res S def LIR(n):
    return [LI() for i in range(n)] def LIR(n):
    return [LI() for i in range(n)] LIR def IR(n):
    return [I() for i in range(n)] def IR(n):
    return [I() for i in range(n)] IR def SR(n):
    return [S() for i in range(n)] def SR(n):
    return [S() for i in range(n)] SR mod = 1000000007 1000000007 mod def LI(): return [int(x) for x in sys.stdin.buffer.readline().split()] def LI(): return [int(x) for x in sys.stdin.buffer.readline().split()] LI
#!usr/bin/env python3
from collections import defaultdict, deque
from heapq import heappush, heappop
from itertools import permutations, accumulate
import sys
import math
import bisect
def LI(): return [int(x) for x in sys.stdin.buffer.readline().split()]
def I(): return int(sys.stdin.buffer.readline())
def LS():return [list(x) for x in sys.stdin.readline().split()]
def S():
    res = list(sys.stdin.readline())
    if res[-1] == "\n":
        return res[:-1]
    return res
def IR(n):
    return [I() for i in range(n)]
def LIR(n):
    return [LI() for i in range(n)]
def SR(n):
    return [S() for i in range(n)]
def LSR(n):
    return [LS() for i in range(n)]

sys.setrecursionlimit(1000000)
mod = 1000000007

def solve():
    W,n = LI()
    a = LI()
    for i in range(n):
        a[i] -= 1
    a.sort(reverse = True)
    b = [2,5,5,4,5,6,3,7,6]
    dp = [-float("inf")]*(W+1)
    dp[0] = 0
    for i in range(n):
        v = a[i]+1
        w = b[a[i]]
        for j in range(W):
            nj = j+w
            if nj > W:
                continue
            nd = dp[j]*10+v
            if dp[nj] < nd:
                dp[nj] = nd
    print(dp[W])
    return

#Solve
if __name__ == "__main__":
    solve()
