#include <bits/stdc++.h>
int cmp(const void *a, const void *b) { return (*(int *)a - *(int *)b); }
int main() {
  int n, *a, i;
  scanf("%d", &n);
  a = (int *)malloc(sizeof(int) * n);
  for (i = 0; i < n; i++) scanf("%d", &a[i]);
  qsort(a, n, sizeof(int), cmp);
  printf("%d\n",
         a[n - 2] - a[0] < a[n - 1] - a[1] ? a[n - 2] - a[0] : a[n - 1] - a[1]);
  free(a);
  return 0;
}
