#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  cin >> n >> m;
  vector<int> v;
  map<int, int> ma;
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    v.push_back(x);
    ma[x] = 2;
  }
  sort(v.begin(), v.end());
  int cur = 1;
  long long ans = 0;
  vector<int> aans;
  while (m) {
    vector<int> vv;
    for (auto i : v) {
      if (!m) break;
      if (ma[i + cur] >= 1 && ma[i - cur] >= 1) continue;
      if (!ma[i + cur]) {
        ma[i + cur] = 1;
        m--;
        ans += cur;
        aans.push_back(i + cur);
      }
      if (!m) break;
      if (!ma[i - cur]) {
        ma[i - cur] = 1;
        m--;
        ans += cur;
        aans.push_back(i - cur);
      }
      vv.push_back(i);
    }
    cur++;
    v = vv;
  }
  cout << ans << endl;
  sort((aans).begin(), (aans).end());
  for (auto i : aans) cout << i << " ";
  cout << endl;
  return 0;
}
