#include <stdio.h>
#include <math.h>
#include <stdlib.h>

#define NE 1001

int compara(int *a, int *b) {
	if (*a>*b) {
		return 1;
	} else {
		return -1;
	}
}

int main() {
	int n[NE], v[NE];
	int ne, i, j;
	int errado;
	int resto;
	int menor;
	int raiz;

	while (scanf("%d", &n[0])&&n[0]!=0) {
		menor=n[0];
		for (i=1; scanf("%d", &n[i])&&n[i]!=0; i++) {
			if (n[i]<menor) {
				menor=n[i];
			}
		}
		ne=i;
		qsort(n, ne, sizeof(int), (void *)compara);
		
		for (i=0; i<ne; i++) {
			v[i]=n[i];
		}
		
		for (i=0; i<ne-1; i++) {
			for (j=i+1; j<ne; j++) {
				v[j]=v[j]-v[i];
			}
			v[i]=0;
		}

		for (i=2; 1; i++) {
			if (!(v[ne-1]%i)) {
				resto=((n[ne-1]%i)+i)%i;
				errado=0;
				for (j=0; j<ne; j++) {
					if (((n[j]%i)+i)%i!=resto) {
						errado=1;
						break;
					}
				}
				if (!errado) {
					break;
				}
			}
		}
		printf("%d\n", i);
		
/*		for (i=2; 1; i++) {
			errado=0;
			resto=(((n[0]-menor)%i)+i)%i;
			for (j=1; j<ne; j++) {
				if (((((n[j]-menor)%i)+i)%i!=resto)) {
					errado=1;
					break;
				}
			}
			if (!errado) {
				break;
			}
		}
		printf("%d\n", i);*/
	}

	return 0;
}

