import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);

		int n = Integer.parseInt(sc.next());

		ArrayList<Integer> r = new ArrayList<Integer>();

		for(int i = 1; i <= n; i++) {
			r.add(Integer.parseInt(sc.next()));
		}

		/**
		 * ループ処理
		 * t=1→N-1で探索
		 * Rの最小値を保持し、それを用いてRの差分の最大値を求める
		 */
		int minr = r.get(0);
		int maxdr = r.get(1) - r.get(0);
		for(int i = 2; i < n; i++) {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		}

		System.out.println(maxdr);

	}

}
 import java.util.ArrayList; ArrayList java.util import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);

		int n = Integer.parseInt(sc.next());

		ArrayList<Integer> r = new ArrayList<Integer>();

		for(int i = 1; i <= n; i++) {
			r.add(Integer.parseInt(sc.next()));
		}

		/**
		 * ループ処理
		 * t=1→N-1で探索
		 * Rの最小値を保持し、それを用いてRの差分の最大値を求める
		 */
		int minr = r.get(0);
		int maxdr = r.get(1) - r.get(0);
		for(int i = 2; i < n; i++) {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		}

		System.out.println(maxdr);

	}

} Main public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);

		int n = Integer.parseInt(sc.next());

		ArrayList<Integer> r = new ArrayList<Integer>();

		for(int i = 1; i <= n; i++) {
			r.add(Integer.parseInt(sc.next()));
		}

		/**
		 * ループ処理
		 * t=1→N-1で探索
		 * Rの最小値を保持し、それを用いてRの差分の最大値を求める
		 */
		int minr = r.get(0);
		int maxdr = r.get(1) - r.get(0);
		for(int i = 2; i < n; i++) {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		}

		System.out.println(maxdr);

	} main {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);

		int n = Integer.parseInt(sc.next());

		ArrayList<Integer> r = new ArrayList<Integer>();

		for(int i = 1; i <= n; i++) {
			r.add(Integer.parseInt(sc.next()));
		}

		/**
		 * ループ処理
		 * t=1→N-1で探索
		 * Rの最小値を保持し、それを用いてRの差分の最大値を求める
		 */
		int minr = r.get(0);
		int maxdr = r.get(1) - r.get(0);
		for(int i = 2; i < n; i++) {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		}

		System.out.println(maxdr);

	} @SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = Integer.parseInt(sc.next()); n Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc ArrayList<Integer> r = new ArrayList<Integer>(); r new ArrayList<Integer>() for(int i = 1; i <= n; i++) {
			r.add(Integer.parseInt(sc.next()));
		} int i = 1; int i = 1; i 1 i <= n i n i++ i++ i {
			r.add(Integer.parseInt(sc.next()));
		} {
			r.add(Integer.parseInt(sc.next()));
		} r.add(Integer.parseInt(sc.next())) r.add r Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int minr = r.get(0); minr r.get(0) r.get r 0 int maxdr = r.get(1) - r.get(0); maxdr r.get(1) - r.get(0) r.get(1) r.get r 1 r.get(0) r.get r 0 for(int i = 2; i < n; i++) {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		} int i = 2; int i = 2; i 2 i < n i n i++ i++ i {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		} {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		} if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			} r.get(i-1) < minr r.get(i-1) r.get r i-1 i 1 minr {
				minr = r.get(i-1);
			} minr = r.get(i-1) minr r.get(i-1) r.get r i-1 i 1 if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			} r.get(i) - minr > maxdr r.get(i) - minr r.get(i) r.get r i minr maxdr {
				maxdr = r.get(i) - minr;
			} maxdr = r.get(i) - minr maxdr r.get(i) - minr r.get(i) r.get r i minr System.out.println(maxdr) System.out.println System.out System System.out maxdr String[] args args public class Main {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);

		int n = Integer.parseInt(sc.next());

		ArrayList<Integer> r = new ArrayList<Integer>();

		for(int i = 1; i <= n; i++) {
			r.add(Integer.parseInt(sc.next()));
		}

		/**
		 * ループ処理
		 * t=1→N-1で探索
		 * Rの最小値を保持し、それを用いてRの差分の最大値を求める
		 */
		int minr = r.get(0);
		int maxdr = r.get(1) - r.get(0);
		for(int i = 2; i < n; i++) {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		}

		System.out.println(maxdr);

	}

} public class Main {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);

		int n = Integer.parseInt(sc.next());

		ArrayList<Integer> r = new ArrayList<Integer>();

		for(int i = 1; i <= n; i++) {
			r.add(Integer.parseInt(sc.next()));
		}

		/**
		 * ループ処理
		 * t=1→N-1で探索
		 * Rの最小値を保持し、それを用いてRの差分の最大値を求める
		 */
		int minr = r.get(0);
		int maxdr = r.get(1) - r.get(0);
		for(int i = 2; i < n; i++) {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		}

		System.out.println(maxdr);

	}

} Main
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);

		int n = Integer.parseInt(sc.next());

		ArrayList<Integer> r = new ArrayList<Integer>();

		for(int i = 1; i <= n; i++) {
			r.add(Integer.parseInt(sc.next()));
		}

		/**
		 * ループ処理
		 * t=1→N-1で探索
		 * Rの最小値を保持し、それを用いてRの差分の最大値を求める
		 */
		int minr = r.get(0);
		int maxdr = r.get(1) - r.get(0);
		for(int i = 2; i < n; i++) {
			if(r.get(i-1) < minr) {
				minr = r.get(i-1);
			}
			if(r.get(i) - minr > maxdr) {
				maxdr = r.get(i) - minr;
			}
		}

		System.out.println(maxdr);

	}

}

