#include <iostream>
#include <queue>
#include <algorithm>
#include <vector>
#include <algorithm>
#include <set>
#include <cstring>
#include <map>
using namespace std;
typedef long long ll;
int n;
ll a[200050];
int main(){
    ios_base::sync_with_stdio(false);
    cin >> n;
    for(int i = 0; i < n; i++) {
        cin >> a[i];
    }
    set<ll> st;
    for(int i = 0; i < n - 1; i++) {
        st.insert(a[i]);
    }
    ll ans = 1e18;
    for(int i = n - 1; i > 0; i--) {
        set<ll>::iterator it = st.lower_bound(a[i]);
        if(it != st.end()) {
            ans = min(ans, *it - a[i]);
        }
        st.erase(st.lower_bound(a[i - 1]));
    }
    cout << ans << endl;
    return 0;
}
