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

Difficulty: EASY

Solutions:
maxn = 0
(num, bottle) = map(int, input().split())
water = list(map(int, input().split()))
summ = sum([i for i in water])
maxn = max(water)
if summ + bottle < maxn * num:
	print(-1)
else:
	every = (summ + bottle) / num
	[print('{:.6f}'.format(every - i)) for i in water]


(n, b) = map(int, input().split())
arr = list(map(int, input().split()))
each = (b + sum(arr)) / n
if max(arr) > each:
	print(-1)
else:
	for i in range(n):
		print('{:.6f}'.format(each - arr[i]))


(n, t) = map(int, input().split())
l = list(map(int, input().split()))
g = 0
for x in l:
	tem = max(l) - x
	g += tem
if t - g >= 0:
	for x in l:
		c = (t - g) / n + max(l)
		print('{0:.6f}'.format(c - x))
else:
	print(-1)


import math
(n, b) = list(map(int, input().split()))
a = list(map(int, input().split()))
m = max(a)
x = s = 0
for i in range(n):
	x += m - a[i]
if x > b:
	print(-1)
else:
	av = (b + sum(a)) / n
	for item in a:
		print('{0:.6f}'.format(av - item))


(n, b) = map(int, input().split())
b = float(b)
mugs = [int(x) for x in input().split()]
b += sum(mugs)
portion = b / n
good = True
result = []
for a in mugs:
	if portion < a:
		good = False
	else:
		result += [portion - a]
if good:
	print('\n'.join(map(lambda x: '%6f' % x, result)))
else:
	print('-1')


(n, b) = map(int, input().split())
lst = list(map(int, input().split()))
mx = max(lst)
for (i, x) in enumerate(lst):
	b -= mx - x
if b < 0:
	print(-1)
else:
	b = b / n
	for (i, x) in enumerate(lst):
		print('%6.6f' % (mx + b - x))


(n, b) = map(int, input().split())
a = list(map(int, input().split()))
summ = sum(a) + b
hehe = max(a) * n - sum(a)
if b < hehe:
	print('-1')
else:
	for i in a:
		he = summ / n - i
		form = '{0:.6f}'.format(he)
		print(form)


(n, b) = map(int, input().split())
a = list((float(x) for x in input().split()))
s = max(a)
c = [0] * n
for i in range(n):
	m = s - a[i]
	b = b - m
	c[i] = c[i] + m
if b >= 0:
	for i in range(n):
		c[i] = c[i] + b / n
	for i in range(n):
		print('%.6f' % c[i])
else:
	print('-1')


(N, S) = map(int, input().split())
A = list(map(int, input().split()))
ave = (S + sum(A)) / N
ans = []
for a in A:
	if a > ave:
		ans.append(-1)
		break
	else:
		ans.append(ave - a)
if ans[-1] == -1:
	print(-1)
else:
	for a in ans:
		print('%.6f' % a)


(n, m) = map(int, input().split())
arr = list(map(int, input().split()))
check = 0
for i in range(n - 1):
	check += max(arr[i + 1], arr[i]) - min(arr[i + 1], arr[i])
	if check > m:
		print(-1)
		exit()
need = (m + sum(arr)) / n
for i in range(n):
	answ = need - arr[i]
	print('{:.6f}'.format(need - arr[i]))


b = input()
a = b.split()
num = int(a[0])
tot = float(a[1])
k = input()
k1 = k.split()
k2 = range(num)
c = []
for x in k2:
	c.append(float(k1[x]))
d = 0.0
for x in k2:
	d = d + c[x]
e = d / num
f = []
for x in k2:
	f.append(float(tot / num + e - c[x]))
g = 0
for x in k2:
	if f[x] < 0:
		g = g - 1
if g < 0:
	print('-1')
else:
	for x in k2:
		print('%.6f' % f[x])


(n, b) = map(int, input().split())
d = list(map(int, input().split()))
l1 = []
mx = max(d)
for item in d:
	l1.append(mx - item)
	b -= mx - item
if b < 0:
	print(-1)
else:
	for i in range(len(l1)):
		l1[i] += b / n
	for item in l1:
		print(format(item, '.6f'))


strLine = input()
strLineSplit = strLine.split()
nNum = int(strLineSplit[0])
fBig = float(strLineSplit[1])
strLine = input()
strLineSplit = strLine.split()
lList = []
for str in strLineSplit:
	lList.append(float(str))
fMax = max(lList)
fSum = 0.0
for i in lList:
	fSum += fMax - i
if fSum > fBig:
	print('-1')
else:
	fLa = (fBig - fSum) / nNum
	for i in lList:
		print('%.6f' % (fLa + fMax - i))


import sys
(n, b) = map(int, input().split())
b = float(b)
arr = list(map(float, input().split()))
maxele = max(arr)
need = 0.0
needarr = []
for i in range(n):
	if b < maxele - arr[i]:
		print(-1)
		sys.exit()
	else:
		needarr += [maxele - arr[i]]
		b -= maxele - arr[i]
for i in range(n):
	print(f'{b / n + needarr[i]:.6f}')