Problem: A group of n merry programmers celebrate Robert Floyd's birthday. Polucarpus has got an honourable task of pouring Ber-Cola to everybody. Pouring the same amount of Ber-Cola to everybody is really important. In other words, the drink's volume in each of the n mugs must be the same.

Polycarpus has already began the process and he partially emptied the Ber-Cola bottle. Now the first mug has a1 milliliters of the drink, the second one has a2 milliliters and so on. The bottle has b milliliters left and Polycarpus plans to pour them into the mugs so that the main equation was fulfilled.

Write a program that would determine what volume of the drink Polycarpus needs to add into each mug to ensure that the following two conditions were fulfilled simultaneously: 

  * there were b milliliters poured in total. That is, the bottle need to be emptied; 
  * after the process is over, the volumes of the drink in the mugs should be equal. 

Input

The first line contains a pair of integers n, b (2 ≤ n ≤ 100, 1 ≤ b ≤ 100), where n is the total number of friends in the group and b is the current volume of drink in the bottle. The second line contains a sequence of integers a1, a2, ..., an (0 ≤ ai ≤ 100), where ai is the current volume of drink in the i-th mug.

Output

Print a single number "-1" (without the quotes), if there is no solution. Otherwise, print n float numbers c1, c2, ..., cn, where ci is the volume of the drink to add in the i-th mug. Print the numbers with no less than 6 digits after the decimal point, print each ci on a single line. Polycarpus proved that if a solution exists then it is unique.

Russian locale is installed by default on the testing computer. Make sure that your solution use the point to separate the integer part of a real number from the decimal, not a comma.

Examples

Input

5 50
1 2 3 4 5


Output

12.000000
11.000000
10.000000
9.000000
8.000000


Input

2 2
1 100


Output

-1

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
const double PI =
    3.14159265358979323846264338327950288419716939937510582097494459230;
const int dx4[] = {-1, 0, 1, 0};
const int dy4[] = {0, 1, 0, -1};
const int dx8[] = {-1, 0, 1, 0, -1, -1, 1, 1};
const int dy8[] = {0, 1, 0, -1, -1, 1, -1, 1};
template <typename T>
int to_int(T num) {
  int val;
  stringstream stream;
  stream << num;
  stream >> val;
  return val;
}
bool isPrime(long long int n) {
  if (n < 2) return false;
  for (long long int i = 2; i * i <= n; i++)
    if (n % i == 0) return false;
  return true;
}
bool isPowerTwo(long long int x) { return (x && !(x & (x - 1))); };
bool isSubstring(string s1, string s2) {
  if (s1.find(s2) != string::npos) return true;
  return false;
}
long long int mod = 1e9 + 7;
long long int fast_pow(long long int a, long long int p) {
  long long int res = 1;
  while (p) {
    if (p % 2 == 0) {
      a = a * 1ll * a % mod;
      p /= 2;
    } else {
      res = res * 1ll * a % mod;
      p--;
    }
  }
  return res;
}
long long int fact(long long int n) {
  long long int res = 1;
  for (long long int i = 1; i <= n; i++) {
    res = res * 1ll * i % mod;
  }
  return res;
}
long long int nCr(long long int n, long long int k) {
  return fact(n) * 1ll * fast_pow(fact(k), mod - 2) % mod * 1ll *
         fast_pow(fact(n - k), mod - 2) % mod;
}
void check(bool b, string y = "YES", string n = "NO") {
  b ? cout << y << "\n" : cout << n << "\n";
}
bool cmp(pair<long long int, long long int> a,
         pair<long long int, long long int> b) {
  if (a.first < b.first) return false;
  if (a.first > b.first)
    return true;
  else
    return a.second < b.second;
}
void sol6() {
  long long int n, m;
  cin >> n >> m;
  string s[n];
  for (long long int x = 0; x < n; x++) {
    cin >> s[x];
  }
  cout << n << "\n";
}
void sol5() {
  string s;
  cin >> s;
  cout << s[1] << s[2] << s[0] << "\n";
}
void sol4() {
  long long int n, k;
  cin >> n >> k;
  double a[n];
  double sum = k * 1.0;
  for (long long int x = 0; x < n; x++) {
    cin >> a[x];
    sum += (a[x] * 1.0);
  }
  double avg = sum * 1.000000000000000000000000000000001 / n;
  for (long long int x = 0; x < n; x++) {
    if (avg < a[x]) {
      cout << "-1\n";
      return;
    }
  }
  for (long long int x = 0; x < n; x++) {
    cout << fixed << setprecision(6) << double(avg - a[x]) << '\n';
  }
}
void sol3() {
  long long int n;
  cin >> n;
  long long int a[n];
  for (long long int x = 0; x < n; x++) {
    cin >> a[x];
  }
}
void sol2() {}
void sol() {
  long long int n;
  cin >> n;
  cout << n << "\n";
}
int main() { sol4(); }