#include <bits/stdc++.h>
using namespace std;
int getSum(const vector<int>& nums, int k, const std::function<int(int, int)>& compFunc){
int n = nums.size();
if(k==0 || k>n){
return 0;
}
vector<vector<int>> dp(k+1, vector<int>(n, INT_MAX));
dp[1][0] = 2*nums[0];
for(int i=1; i<n; i++){
dp[1][i] = nums[0]+nums[i];
}
for(int i=2; i<=k; i++){
for(int j=i-1; j<n; j++){
dp[i][j] = 2*nums[j] + dp[i-1][j-1];
for(int p=2; p<=j-i+2; p++){
dp[i][j] = compFunc(dp[i][j], nums[j]+nums[j-p+1]+dp[i-1][j-p]);
}
}
}
return dp[k][n-1];
}
int main() {
int n, k;
cin>>n>>k;
vector<int> nums(n);
for(int i=0; i<n; i++){
cin>>nums[i];
}
cout<<getSum(nums, k, [](int x, int y){return min(x, y);})<<endl;
cout<<getSum(nums, k, [](int x, int y){return max(x, y);})<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZ2V0U3VtKGNvbnN0IHZlY3RvcjxpbnQ+JiBudW1zLCBpbnQgaywgY29uc3Qgc3RkOjpmdW5jdGlvbjxpbnQoaW50LCBpbnQpPiYgY29tcEZ1bmMpewoKCWludCBuID0gbnVtcy5zaXplKCk7CgoJaWYoaz09MCB8fCBrPm4pewoJCXJldHVybiAwOwoJfQoJCgl2ZWN0b3I8dmVjdG9yPGludD4+IGRwKGsrMSwgdmVjdG9yPGludD4obiwgSU5UX01BWCkpOwoJCglkcFsxXVswXSA9IDIqbnVtc1swXTsKCWZvcihpbnQgaT0xOyBpPG47IGkrKyl7CgkJZHBbMV1baV0gPSBudW1zWzBdK251bXNbaV07Cgl9CgoJZm9yKGludCBpPTI7IGk8PWs7IGkrKyl7CgkJZm9yKGludCBqPWktMTsgajxuOyBqKyspewoJCQkKCQkJZHBbaV1bal0gPSAyKm51bXNbal0gKyBkcFtpLTFdW2otMV07CgkJCWZvcihpbnQgcD0yOyBwPD1qLWkrMjsgcCsrKXsKCQkJCQoJCQkJZHBbaV1bal0gPSBjb21wRnVuYyhkcFtpXVtqXSwgbnVtc1tqXStudW1zW2otcCsxXStkcFtpLTFdW2otcF0pOwoJCQl9CgkJfQoJfQoJCglyZXR1cm4gZHBba11bbi0xXTsKfQoKaW50IG1haW4oKSB7CgkKCWludCBuLCBrOwoJY2luPj5uPj5rOwoJCgl2ZWN0b3I8aW50PiBudW1zKG4pOwoJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQljaW4+Pm51bXNbaV07Cgl9CgkKCWNvdXQ8PGdldFN1bShudW1zLCBrLCBbXShpbnQgeCwgaW50IHkpe3JldHVybiBtaW4oeCwgeSk7fSk8PGVuZGw7Cgljb3V0PDxnZXRTdW0obnVtcywgaywgW10oaW50IHgsIGludCB5KXtyZXR1cm4gbWF4KHgsIHkpO30pPDxlbmRsOwoJCglyZXR1cm4gMDsKfQ==