#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
#define ll long long
#define all(x) x.begin(),x.end()
typedef tree<
int,
null_type,
greater<int>,
rb_tree_tag,
tree_order_statistics_node_update
> ordered_set;
ll MOD = 1000000007;
ll oo = 1e15;
ll const N = 200000;
ll dp[N][4];
string s;
ll go(ll idx,ll mod) {
//base case
if (idx==s.size()) return mod==0;
//dp check
ll & res = dp[idx][mod];
if (~res) return res;
//transition
ll dig = s[idx]-'0';
ll gain1 = ((mod+dig)%3)==0;
ll ch1 = go(idx+1,3) + gain1;
ll ch2 = go(idx+1,(mod+dig)%3);
return res = max(ch1,ch2);
}
void solve() {
ll n;cin>>n;
ll a[n];
for (ll i=0;i<n;i++)cin>>a[i];
ll diff[n];
ll ans = 0;
for (ll i=0;i<n-1;i++) {
diff[i] = abs(a[i+1]-a[i]);
ans = __gcd(ans,diff[i]);
}
cout<<ans<<endl;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r",stdin);
freopen("output.txt", "w",stdout);
#endif
bool calc = false;
// calc = true;
if (calc) {
cout << N*2*2*4 << endl;
cout << (1ll << (17)) << endl;
return 0;
}
ll t = 1;
// cin >> t;
while (t--) {
solve();
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KCnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkKCnR5cGVkZWYgdHJlZTwKICAgIGludCwKICAgIG51bGxfdHlwZSwKICAgIGdyZWF0ZXI8aW50PiwKICAgIHJiX3RyZWVfdGFnLAogICAgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlCj4gb3JkZXJlZF9zZXQ7CgpsbCBNT0QgPSAxMDAwMDAwMDA3OwoKbGwgb28gPSAxZTE1OwoKbGwgY29uc3QgTiA9IDIwMDAwMDsKCmxsIGRwW05dWzRdOwoKc3RyaW5nIHM7CgpsbCBnbyhsbCBpZHgsbGwgbW9kKSB7CiAgICAvL2Jhc2UgY2FzZQogICAgaWYgKGlkeD09cy5zaXplKCkpIHJldHVybiBtb2Q9PTA7CiAgICAvL2RwIGNoZWNrCiAgICBsbCAmIHJlcyA9IGRwW2lkeF1bbW9kXTsKICAgIGlmICh+cmVzKSByZXR1cm4gcmVzOwogICAgLy90cmFuc2l0aW9uCiAgICBsbCBkaWcgPSBzW2lkeF0tJzAnOwogICAgbGwgZ2FpbjEgPSAoKG1vZCtkaWcpJTMpPT0wOwogICAgbGwgY2gxID0gZ28oaWR4KzEsMykgKyBnYWluMTsKICAgIGxsIGNoMiA9IGdvKGlkeCsxLChtb2QrZGlnKSUzKTsKICAgIHJldHVybiByZXMgPSBtYXgoY2gxLGNoMik7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBsbCBuO2Npbj4+bjsKICAgIGxsIGFbbl07CiAgICBmb3IgKGxsIGk9MDtpPG47aSsrKWNpbj4+YVtpXTsKICAgIGxsIGRpZmZbbl07CiAgICBsbCBhbnMgPSAwOwogICAgZm9yIChsbCBpPTA7aTxuLTE7aSsrKSB7CiAgICAgICAgZGlmZltpXSA9IGFicyhhW2krMV0tYVtpXSk7CiAgICAgICAgYW5zID0gX19nY2QoYW5zLGRpZmZbaV0pOwogICAgfQogICAgY291dDw8YW5zPDxlbmRsOwp9CgpzaWduZWQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLHN0ZGluKTsKICAgIGZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsc3Rkb3V0KTsKI2VuZGlmCiAgICBib29sIGNhbGMgPSBmYWxzZTsKICAgIC8vIGNhbGMgPSB0cnVlOwogICAgaWYgKGNhbGMpIHsKICAgICAgICBjb3V0IDw8IE4qMioyKjQgPDwgZW5kbDsKICAgICAgICBjb3V0IDw8ICgxbGwgPDwgKDE3KSkgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGxsIHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KfQo=