#include<iostream>
#include<cmath>
#include<queue>
using namespace std;
long long n,tx,ans,k,ti,tsum;
priority_queue<long long,vector<long long>,greater<long long> >q;
int main(){
cin >> n >> k;
for(int i=0;i<n;i++){
cin >> tx;
q.push(tx);
}
if ((n-1)%(k-1))
for(int i=0;i<k-1-(n-1)%(k-1);i++){
q.push(0);
}
while(q.size()>1){
cerr<<q.size()<<endl;
tsum=0;
long long tmp=q.size();
for(int i=0;i<min(k,tmp);i++){
tsum+=q.top();
q.pop();
}
ans+=tsum;
q.push(tsum);
}
while(n){
n/=k;
ti++;
}
cout << ans << endl << ti;
return 0;
}
求神大佬看看错哪了