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

#define NE 1001

int n[NE], ne;

int mdcd(int a, int b) {
	int mai, men;

	if (a>b) {
		mai=a;
		men=b;
	} else {
		mai=b;
		men=a;
	}

	if (a!=0&&b!=0) {
		return mdcd(mai%men, men);
	} else {
		return mai;
	}
}

int mdc(void) {
	int i;
	int md[NE];
	int nen=ne;

	for (i=0; i<ne; i++) {
		md[i]=n[i];
	}

	while (nen>1) {
		if (nen%2) {
			md[nen++]=0;
		}
		
		for (i=0; i<nen; i+=2) {
			md[i/2]=mdcd(md[i], md[i+1]);
		}
		nen/=2;
	}

	return md[0];
}

int main() {
	int i, j;
	int errado;
	int resto;
	int menor;
	int m;

	while (scanf("%d", &n[0])&&n[0]!=0) {
		if (n[0]<0) {
			n[0]=-n[0]-2;
		}
		menor=n[0];
		for (i=1; scanf("%d", &n[i])&&n[i]!=0; i++) {
			if (n[i]<0) {
				n[i]=-n[i]-2;
			}
			if (n[i]<menor) {
				menor=n[i];
			}
		}
		ne=i;

		for (i=0; i<ne; i++) {
			n[i]-=menor;
		}

		m=mdc();
		
		printf("%d\n", m);
	}

	return 0;
}

