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

Source: codeforces | Difficulty: EASY
Tags: Mathematics


Solutions:
(a, b) = map(int, input().split())
l = list(map(int, input().split()))
if max(l) * a - sum(l) > b:
	print(-1)
else:
	for i in l:
		print((sum(l) + b) / a - i)


x = [int(i) for i in input().split()]
n = x[0]
y = [int(i) for i in input().split()]
if x[1] < max(y) * n - sum(y):
	print(-1)
	raise SystemExit
for i in range(n):
	s = x[1] / n - y[i] + +sum(y) / n
	print('%.6f' % s)


(n, b) = tuple(map(int, input().split()))
a = list(map(int, input().split()))
maximum = max(a)
d = []
for i in range(n):
	diff = maximum - a[i]
	if b >= diff:
		d.append(a[i] + diff)
		b -= diff
el = d[0]
res = 'ok'
for j in d:
	if j != el:
		res = 'not ok'
add = 0
if len(d) != len(a):
	res = 'not ok'
else:
	add += b / len(d)
if res == 'ok':
	ans = [i - j for (i, j) in zip(d, a)]
	for k in range(n):
		ans[k] += add
		if type(ans[k]) == int:
			print('{:.6f}'.format(ans[k]))
		else:
			print(ans[k])
else:
	print(-1)


(n, b) = map(int, input().split())
a = [int(i) for i in input().split()]
d = [(b + sum(a)) / len(a) - i for i in a]
print(-1) if any((i for i in d if i < 0)) else [print(i) for i in d]


from math import inf, sqrt, floor, ceil
from collections import Counter, defaultdict, deque
from heapq import heappush as hpush, heappop as hpop, heapify as h
from operator import itemgetter
from itertools import product
from bisect import bisect_left, bisect_right
(n, b) = map(int, input().split())
a = list(map(int, input().split()))
equal = (sum(a) + b) / n
if equal < max(a):
	print(-1)
else:
	for i in range(n):
		ans = str(equal - a[i])
		i = ans.index('.')
		if len(ans[i:]) < 6:
			ans += '0' * (6 - len(ans[i:]) + 1)
		print(ans)


(n, m) = map(int, input().split())
a = list(map(int, input().split()))
s = 0
for j in range(n):
	s = s + a[j]
s = s + m
e = s / n
t = 0
for i in range(n):
	if e - a[i] >= 0:
		a[i] = e - a[i]
	else:
		print(-1)
		t = 1
		break
if t == 0:
	print(*a, sep='\n')


def main():
	(n, b) = map(int, input().split())
	a = [int(c) for c in input().split()]
	mx = max(a)
	res = [0] * n
	for i in range(len(a)):
		res[i] = mx - a[i]
		b -= res[i]
	if b < 0:
		print(-1)
		return
	d = b / n
	for i in range(len(res)):
		print(res[i] + d)
main()


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, b) = map(int, input().split())
l = list(map(int, input().split()))
t = max(l)
s = 0
k = []
for i in range(n):
	if b < 0:
		print(-1)
		exit()
	b = b - (t - l[i])
	k.append(t - l[i])
if b < 0:
	print(-1)
	exit()
for i in range(len(k)):
	k[i] = k[i] + b / n
for i in k:
	print(i)


I = lambda : map(int, input().split())
(n, b) = I()
A = list(I())
x = (b + sum(A)) / n
if x < max(A):
	print(-1)
else:
	print(*(x - a for a in A), sep='\n')


(num_friends, remaining) = map(int, input().split())
volumes = list(map(int, input().split()))
max_volume = max(volumes)
pour = [max_volume - volume for volume in volumes]
if sum(pour) > remaining:
	print(-1)
else:
	part = (remaining - sum(pour)) / len(pour)
	for (i, volume) in enumerate(pour):
		volume += part
		print('%.8f' % volume)


(n, b) = map(int, input().split())
a = list(map(int, input().split()))
m = max(a)
d = 0
for x in a:
	d += m - x
if d > b:
	print(-1)
else:
	b -= d
	m = m + b / n
	for x in a:
		print(m - x)


(n, m) = input('').split()
n = int(n)
flag = 0
m = int(m)
l = list(map(int, input('').split()))
d = sum(l)
avg = (m + d) / n
for i in range(0, n):
	if l[i] > avg:
		flag = 1
if flag == 1:
	print(-1)
else:
	for i in range(0, n):
		l[i] = avg - l[i]
	for i in range(0, n):
		print(l[i], end=' ')


(n, k) = map(int, input().split())
a = list(map(int, input().split()))
v = max(a)
ans = 0
for i in a:
	ans += v - i
if ans > k:
	print(-1)
else:
	k = k - ans
	k = k / n
	for i in a:
		print(v - i + k)


(n, k) = map(int, input().split())
t = list(map(int, input().split()))
f = (sum(t) + k) / n
h = 0
y = []
for i in t:
	a = round(f - i / 1, 6)
	if a >= -0:
		y.append(a)
	else:
		h += 1
		print(-1)
		break
if h == 0:
	for j in y:
		print(j)


(n, b) = [int(i) for i in input().split()]
a = [int(i) for i in input().split()]
sumN = 0
for i in range(n):
	sumN += a[i]
ans = (sumN + b) / n
if ans - max(a) < 0:
	print(-1)
	exit(0)
for i in range(n):
	print(ans - a[i])


ss = input().split()
n = int(ss[0])
b = int(ss[1])
ss = input().split()
a = [0] * n
sum = 0
max = a[0]
for i in range(0, n):
	a[i] = int(ss[i])
	sum += a[i]
	if a[i] > max:
		max = a[i]
c = (sum + b) / n
if max > c:
	print('-1')
else:
	for i in range(0, n):
		print(c - a[i])


(n, b) = list(map(int, input().split()))
a = list(map(int, input().split()))
ans = []
t = sum(a) + b
p = t / n
for v in a:
	s = p - v
	if s < 0:
		print(-1)
		break
	else:
		ans.append(s)
else:
	for s in ans:
		print(f'{s:.6f}')


(n, b) = map(int, input().split())
data = [int(i) for i in input().split()]
res = []
for i in data:
	res.append(data[-1] - i)
ans = (b - sum(res)) / n
a = 0
for i in range(len(res)):
	res[i] = res[i] + ans
	if res[i] < 0:
		print(-1)
		a = 1
		break
if a != 1:
	for i in res:
		print(i)


def f(l1, al):
	(n, b) = l1
	c = (sum(al) + b) / n
	if max(al) > c:
		return [-1]
	return [c - a for a in al]
l1 = list(map(int, input().split()))
l2 = list(map(int, input().split()))
[print(r) for r in f(l1, l2)]


(n, t) = map(int, input().split())
l = list(map(int, input().split()))
X = float((sum(l) + t) / n)
for i in l:
	if i > X:
		print(-1)
		break
else:
	for i in l:
		print('{0:.6f}'.format(X - i))


import sys
(n, b) = input().split()
n = int(n)
b = int(b)
a = list(map(int, input().strip().split()))[:n]
total = 0
for i in a:
	total = total + i
final = (b + total) / n
for i in a:
	if final - i < 0:
		print(-1)
		sys.exit()
for i in a:
	print('{:.6f}'.format(final - i))


(n, b) = map(int, input().split())
a = list(map(int, input().split()))
b += sum(a)
b /= n
possible = True
for i in range(len(a)):
	a[i] = b - a[i]
	if a[i] < 0:
		possible = False
if possible:
	print(*a, sep='\n')
else:
	print(-1)


(n, b) = map(int, input().split())
arr = list(map(int, input().split()))
mx = max(arr)
suma = 0
for elem in arr:
	suma += elem
suma += b
suma /= n
if suma < mx:
	print(-1)
	exit()
else:
	for elem in arr:
		print('{0:0.6f}'.format(suma - elem))


import sys
import string
from collections import Counter, defaultdict
from math import fsum, sqrt, gcd, ceil, factorial
from itertools import combinations, permutations
flush = lambda : sys.stdout.flush
comb = lambda x, y: factorial(x) // factorial(y) // factorial(x - y)
ip = lambda : input()
ii = lambda : int(input())
r = lambda : map(int, input().split())
rr = lambda : list(r())
(n, k) = r()
arr = rr()
x = (sum(arr) + k) / n
brr = [x - i for i in arr]
if any((i < 0 for i in brr)):
	print(-1)
else:
	print(*[f'{i:.6f}' for i in brr], sep='\n')


(n, k) = map(int, input().strip().split(' '))
lst = list(map(int, input().strip().split(' ')))
m = max(lst)
lst2 = []
s = 0
for i in range(n):
	lst2.append(m - lst[i])
	s += m - lst[i]
if s > k:
	print(-1)
else:
	k -= s
	k = k / n
	for i in range(n):
		print('{0:.6f}'.format(k + lst2[i]))


(a, b) = map(int, input().split())
c = list(map(float, input().split()))
d = b
for x in c:
	d += x
d = d / a
if any((x > d for x in c)):
	print(-1)
else:
	for x in c:
		print('%.6f' % (d - x))


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


(n, b) = map(int, input().split())
s = list(map(int, input().split()))
sb = sum(s) + b
sb /= n
if sb - max(s) >= 0:
	for x in s:
		print(sb - x)
else:
	print('-1')


(n, b) = map(int, input().split())
s = list(map(int, input().split()))
x = (sum(s) + b) / n
if x < max(s):
	print(-1)
else:
	for e in s:
		print('%.8f' % (x - e))


(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))


import sys

def solve():
	(n, b) = rv()
	(a,) = rl(1)
	musthave = max(a)
	pour = [0] * n
	for i in range(n):
		pour[i] = musthave - a[i]
	alreadypoured = sum(pour)
	if alreadypoured > b:
		print(-1)
		return
	morepour = (b - alreadypoured) / n
	for i in range(n):
		pour[i] += morepour
	print('\n'.join(map(str, pour)))

def prt(l):
	return print(' '.join(l))

def rv():
	return map(int, input().split())

def rl(n):
	return [list(map(int, input().split())) for _ in range(n)]
if sys.hexversion == 50594544:
	sys.stdin = open('test.txt')
solve()


(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) = [int(s) for s in input().split()]
a = [int(s) for s in input().split()]
x = (sum(a) + b) / n
l = []
for i in a:
	if x >= i:
		l.append(x - i)
	if x < i:
		print('-1')
		exit()
for i in l:
	print(i)


(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')


(a, b) = map(int, input().split())
x = [int(q) for q in input().split()]
l = sum(x)
total = l + b
each = total / a
reqd = 0
z = max(x)
for i in range(a):
	reqd += abs(x[i] - z)
if b < reqd:
	print(-1)
else:
	for i in range(a):
		print(each - x[i])


(n, b) = map(int, input().split())
l = input().split()
a = []
for i in range(n):
	a.append(int(l[i]))
s = (b + sum(a)) / n
if max(a) > s:
	print(-1)
else:
	for i in range(n):
		print(s - a[i])


(n, b) = [int(i) for i in input().split()]
a = [int(i) for i in input().split()]
t = sum(a)
equilibrium = (b + t) / n
bo = True
sum = 0
c = []
for i in a:
	if i > equilibrium:
		bo = False
		break
	sum += equilibrium - i
	c.append(equilibrium - i)
if (sum == b or abs(sum - b) < 1) and bo:
	bo = True
else:
	bo = False
if bo:
	for i in c:
		print(i)
else:
	print(-1)


(n, b) = map(int, input().split())
a = list(map(int, input().split()))
t = (sum(a) + b) / n
ans = [t - i for i in a]
if any((i < 0 for i in ans)):
	print(-1)
else:
	for i in ans:
		print(i)


(n, b) = map(int, input().split())
t = list(map(int, input().split()))
(s, d) = (sum(t), max(t))
b -= d * n - s
if b < 0:
	print(-1)
else:
	d += b / n
	for i in range(n):
		t[i] = str(d - t[i])
	print('\n'.join(t))


r = lambda : int(input())
ra = lambda : [*map(int, input().split())]
p = lambda a: print('{:.6f}'.format(a))
(n, m) = ra()
a = ra()
b = []
e = (m + sum(a)) / n
for i in range(n):
	b.append(e - a[i])
	m -= abs(b[len(b) - 1])
	a[i] += b[len(b) - 1]
m = round(m)
if m < 0:
	print(-1)
else:
	for i in b:
		p(i)


import sys
(n, b) = [int(x) for x in sys.stdin.readline().split()]
k = [float(x) for x in sys.stdin.readline().split()]
vsum = 0.0
vmax = 0.0
for i in k:
	if i > vmax:
		vmax = i
	vsum += i
if vmax * n - vsum <= b:
	t = (b - (vmax * n - vsum)) / float(n)
	for i in k:
		print('%0.6f' % (vmax - i + t))
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)


I = lambda : map(int, input().split())
P = print
(n, b) = I()
a = list(I())
x = (b + sum(a)) / n
if any((i > x for i in a)):
	P(-1)
else:
	[P(x - i) for i in a]


def main():
	(n, b) = map(int, input().split())
	a = list(map(int, input().split()))
	X = (b + sum(a)) / n
	c = [X - i for i in a]
	for i in c:
		if i < 0:
			print(-1)
			return
	for i in c:
		print(i)
	return
main()


(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'))


class CodeforcesTask174ASolution:

	def __init__(self):
		self.result = ''
		self.n_b = []
		self.capacity = []

	def read_input(self):
		self.n_b = [int(x) for x in input().split(' ')]
		self.capacity = [int(x) for x in input().split(' ')]

	def process_task(self):
		mx = max(self.capacity)
		to_fill = sum([mx - x for x in self.capacity])
		if to_fill > self.n_b[1]:
			self.result = '-1'
		else:
			result = []
			for x in self.capacity:
				result.append(mx - x + (self.n_b[1] - to_fill) / self.n_b[0])
			self.result = '\n'.join([str(y) for y in result])

	def get_result(self):
		return self.result
Solution = CodeforcesTask174ASolution()
Solution.read_input()
Solution.process_task()
print(Solution.get_result())


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}')