using System;
using System.Collections.Generic;
using System.Linq;
using BitArray = System.Collections.BitArray;
using BigInteger = System.Numerics.BigInteger;

namespace AtCoderProject
{
    public class Program
    {
        public object Calc()
        {
            var line = consoleReader.SplitInt32();
            var N = line[0];
            var M = line[1];

            var digitNum = new[] { 0, 2, 5, 5, 4, 5, 6, 3, 7, 6 };
            var A = consoleReader.SplitInt32();
            Array.Sort(A);

            var dp = new int[N + 1][];
            dp[0] = new int[10];

            for (int i = 1; i <= N; i++)
            {
                var list = new List<int[]>();
                foreach (var a in A)
                {
                    var old = i - digitNum[a];
                    if (old >= 0 && dp[old] != null)
                    {
                        var tmp = new int[10];
                        Array.Copy(dp[old], tmp, 10);
                        tmp[a]++;
                        list.Add(tmp);
                    }
                }
                if (list.Count > 0)
                {
                    var prev = ToNumString(list[0], A);
                    dp[i] = list[0];
                    foreach (var l in list.Skip(1))
                    {
                        var str = ToNumString(l, A);
                        if (str.Length < prev.Length) continue;
                        if (str.Length == prev.Length && prev.CompareTo(str) >= 0) continue;

                        dp[i] = l;
                        prev = str;
                    }
                }
            }

            return ToNumString(dp[N], A);
        }
        string ToNumString(int[] ketaNum, int[] A)
        {
            var sb = new System.Text.StringBuilder();
            for (int i = A.Length - 1; i >= 0; i--)
            {
                sb.Append((char)('0' + A[i]), ketaNum[A[i]]);
            }
            return sb.ToString();
        }

        const int mod = 1000000007;
        private readonly ConsoleReader consoleReader;
        public Program() : this(new ConsoleReader()) { }
        public Program(ConsoleReader consoleReader) { this.consoleReader = consoleReader; }
        static void Main() => Console.WriteLine(new Program().Calc());
        public static string MultiLine<T>(IEnumerable<T> source) => string.Join("\n", source);
    }

    public class ConsoleReader
    {
        public virtual string String() => Console.ReadLine();
        public int Int32() => int.Parse(String());
        public long Int64() => long.Parse(String());
        public ulong UInt64() => ulong.Parse(String());
        public double Double() => double.Parse(String());
        public string[] Split() => String().Split().ToArray();
        public int[] SplitInt32() => String().Split().Select(int.Parse).ToArray();
        public long[] SplitInt64() => String().Split().Select(long.Parse).ToArray();
        public ulong[] SplitUInt64() => String().Split().Select(ulong.Parse).ToArray();
        public double[] SplitDouble() => String().Split().Select(double.Parse).ToArray();

        public IEnumerable<string> Repeat(int count)
        {
            for (int i = 0; i < count; i++)
                yield return String();
        }
        public IEnumerable<int> RepeatInt32(int count)
        {
            for (int i = 0; i < count; i++)
                yield return Int32();
        }
        public IEnumerable<long> RepeatInt64(int count)
        {
            for (int i = 0; i < count; i++)
                yield return Int64();
        }
        public IEnumerable<string[]> RepeatSplit(int count)
        {
            for (int i = 0; i < count; i++)
                yield return Split();
        }
        public IEnumerable<int[]> RepeatSplitInt32(int count)
        {
            for (int i = 0; i < count; i++)
                yield return SplitInt32();
        }
    }
}


Measured memory_bytes: 42392