Problem: Oz has a list arr[] of M integers. He has to find all integers K such that :

1) K > 1
2) arr[1]%K = arr[2]%K = arr[3]%K = ... = arr[M]%K where '%' is a modulus operator

Help Oz to find all such K's.

Input :
First line of input contains an integer M. Then M lines follow each containing one integer of the list. Input data is such that at least one integer K will always exist. 

Output :
Output all possible integers K separated by space in increasing order.

Constraints :
 - 2 ≤ M ≤100
 - 1< value of each integer <10^9
 - All integers will be distinct

SAMPLE INPUT
3
38
6
34

SAMPLE OUTPUT
2 4

Solution (in PYTHON):

Solution:
'''
# Read input from stdin and provide input before running code

name = raw_input('What is your name?\n')
print 'Hi, %s.' % name
'''
from math import sqrt
m=int(raw_input())
arr=[]
for i in xrange(m):
	arr.append(int(raw_input()))
arr.sort(reverse=True)
# print arr
num=2**32-3
for i in xrange(1,len(arr)):
	num=num if arr[i-1]-arr[i]>num else arr[i-1]-arr[i]
f=[]
l=[]
# print num
for x in xrange(2,int(sqrt(num))+1):
	# print x
	if num%x==0:
		if num/x==x:
			f.append(x)
		else:
			f.append(x)
			l.append(num/x)
# print f
if len(l)>0:
	l.reverse()
	f.extend(l)
f.append(num)
# print f
for k in f:
	flag=0
	rem=arr[0]%k
	for i in xrange(1,len(arr)):
		if arr[i]%k!=rem:
			flag=1
			break
	if flag==0:
		print k,