private static void GetOptPricings(int[] prices, RodComb[] info)
        {
            for (int i = 0; i < prices.Length; i++)
            {
                info[i] = new RodComb()
                {
                    Price    = prices[i],
                    Elements = new List <int>()
                    {
                        i
                    }
                };

                var current = info[i];

                for (int j = 0; j <= i / 2; j++)
                {
                    RodComb first    = info[j];
                    RodComb second   = info[i - j];
                    int     priceSum = first.Price + second.Price;
                    if (priceSum > current.Price)
                    {
                        current.Price = priceSum;
                        var elmnts = first.Elements.ToList();
                        elmnts.AddRange(second.Elements);
                        current.Elements = elmnts;
                    }
                }
            }
        }
        static void Main(string[] args)
        {
            int[] lengthPrices = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
            int   rodLength    = int.Parse(Console.ReadLine());

            var info = new RodComb[lengthPrices.Length];

            GetOptPricings(lengthPrices, info);

            var        firstToAdd = info[rodLength % lengthPrices.Length];
            int        totalPrice = firstToAdd.Price;
            List <int> pieces     = firstToAdd.Elements.ToList();

            if (rodLength > lengthPrices.Length)
            {
                var lastEl       = info.Last();
                int wholeLengths = rodLength / lengthPrices.Length;
                totalPrice += lastEl.Price * wholeLengths;
                for (int i = 0; i < wholeLengths; i++)
                {
                    pieces.AddRange(lastEl.Elements);
                }
            }
            pieces = pieces.OrderBy(x => x).ToList();

            Console.WriteLine(totalPrice);
            Console.WriteLine(string.Join(" ", pieces));
        }