using System;
using System.Linq;
namespace Testing
{
class Program
{
static void Main(string[] args)
{
int numberOfTasks = Convert.ToInt32(Console.ReadLine());
int numberOfTestDevice = Convert.ToInt32(Console.ReadLine());
int[] testTime = new int[numberOfTasks];
for (int i = 0; i < numberOfTasks; i++)
{
testTime[i] = Convert.ToInt32(Console.ReadLine());
}
testTime = SortArray(testTime);
int totalTime = 0;
int x= 0;
for (int i = 1; i <= testTime.Length; i++)
{
totalTime += ((x * 2) + 1) * testTime[i - 1];
if (i % numberOfTestDevice == 0)
x++;
}
Console.WriteLine(totalTime);
}
static int[] SortArray(int[] inputArray)
{
int[] countArray = new int[inputArray.Max() + 1];
for (int i = 0; i < inputArray.Length; i++)
{
countArray[inputArray[i]]++;
}
int[] sortedArray = new int[inputArray.Length];
int sortedArrayIndex = 0;
for (int i = countArray.Length-1; i >=0; i--)
{
for (int j = 0; j < countArray[i]; j++)
{
sortedArray[sortedArrayIndex++] = i;
}
}
return sortedArray;
}
}
}
function allTestsTime(numDevices, testTimes) {
testTimes.sort((a, b) => b - a);
let totalTime = 0;
for (let i = 0; i < testTimes.length; i++) {
totalTime += testTimes[i] * (2 * Math.floor(i / numDevices) + 1);
}
return totalTime;
}
console.log(allTestsTime(3, [6, 2, 5]));
// 13