###
function solve (id, pr, n, a):
	if id == 0:
		lo := 0
		hi := 1000000000000000000
		while hi - lo > 1:
			me := (lo + hi) / 2

			for k := 1 until pr:
				send (k, me)
			cur := 0
			for k := 1 until pr:
				cur += receive (k)

			if cur <= n:
				hi := me
			else:
				lo := me
		print (hi)
		for k := 1 until pr:
			send (k, -1)

	if id > 0:
		flag := 1
		while flag:
			me := receive (0)
			if me == -1:
				flag := 0
			else:
				segLo := 1 + (id - 1) * (n - 1) / (pr - 1)
				segHi := 1 + id * (n - 1) / (pr - 1)
				cur := 0
				for i := segLo until segHi:
					cur += (a[i] - a[i - 1] - 1) / me
				send (0, cur)
