#include <bits/stdc++.h>
using namespace std;
void PrintVector(vector<int> v2, string s) {
  cout << s;
  for (int i = 0; i < v2.size(); i++) cout << v2[i] << " ";
  cout << endl;
}
void PrintVector(vector<int> v2) {
  for (int i = 0; i < v2.size(); i++) cout << v2[i] << " ";
  cout << endl;
}
int isOdd(int x) { return (x % 2); }
int toInt(string str) {
  int num;
  istringstream iss(str);
  iss >> num;
  return num;
}
template <class T>
string toStr(T par) {
  ostringstream oss;
  oss << par;
  return oss.str();
}
void readVector(vector<int> &vec, int len) {
  for (int i = 0; i < len; i++) {
    cin >> vec[i];
  }
}
long long int gcd(long long int a, long long int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
bool sortPairsCmp(const pair<int, int> &a, const pair<int, int> &b) {
  return a.second > b.second;
}
multiset<int> arr;
int main() {
  long long n, x, y;
  long long hours = 0;
  cin >> n >> x;
  for (int i = 0; i < n; i++) {
    cin >> y;
    arr.insert(y);
  }
  for (auto t : arr) {
    hours += (x * t);
    if (x > 1) x--;
  }
  cout << hours << endl;
  return 0;
}
