import java.util.Scanner;
class Fx{
	int a;
	int [] p=new int[200000];
	int ans;
	void rieki() {
		int minv=p[0];
		int maxv=p[1]-p[0];
		for(int j=1;j<a;j++) {
			maxv=Math.max(maxv, p[j]-minv);
			minv=Math.min(minv,p[j]);
		}
		ans=maxv;
	}
}
public class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int [] s=new int [n];
		for(int i=0;i<n;i++) {
			s[i]=sc.nextInt();
		}
		Fx f=new Fx();
		f.a=n;
		for(int i=0;i<n;i++) {
			f.p[i]=s[i];

		}
		f.rieki();
		System.out.println(f.ans);
		sc.close();
	}
}
 import java.util.Scanner; Scanner java.util class Fx{
	int a;
	int [] p=new int[200000];
	int ans;
	void rieki() {
		int minv=p[0];
		int maxv=p[1]-p[0];
		for(int j=1;j<a;j++) {
			maxv=Math.max(maxv, p[j]-minv);
			minv=Math.min(minv,p[j]);
		}
		ans=maxv;
	}
} Fx int a; a int [] p=new int[200000]; p new int[200000] 200000 int ans; ans void rieki() {
		int minv=p[0];
		int maxv=p[1]-p[0];
		for(int j=1;j<a;j++) {
			maxv=Math.max(maxv, p[j]-minv);
			minv=Math.min(minv,p[j]);
		}
		ans=maxv;
	} rieki {
		int minv=p[0];
		int maxv=p[1]-p[0];
		for(int j=1;j<a;j++) {
			maxv=Math.max(maxv, p[j]-minv);
			minv=Math.min(minv,p[j]);
		}
		ans=maxv;
	} int minv=p[0]; minv p[0] p 0 int maxv=p[1]-p[0]; maxv p[1]-p[0] p[1] p 1 p[0] p 0 for(int j=1;j<a;j++) {
			maxv=Math.max(maxv, p[j]-minv);
			minv=Math.min(minv,p[j]);
		} int j=1; int j=1; j 1 j<a j a j++ j++ j {
			maxv=Math.max(maxv, p[j]-minv);
			minv=Math.min(minv,p[j]);
		} {
			maxv=Math.max(maxv, p[j]-minv);
			minv=Math.min(minv,p[j]);
		} maxv=Math.max(maxv, p[j]-minv) maxv Math.max(maxv, p[j]-minv) Math.max Math maxv p[j]-minv p[j] p j minv minv=Math.min(minv,p[j]) minv Math.min(minv,p[j]) Math.min Math minv p[j] p j ans=maxv ans maxv public class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int [] s=new int [n];
		for(int i=0;i<n;i++) {
			s[i]=sc.nextInt();
		}
		Fx f=new Fx();
		f.a=n;
		for(int i=0;i<n;i++) {
			f.p[i]=s[i];

		}
		f.rieki();
		System.out.println(f.ans);
		sc.close();
	}
} Main public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int [] s=new int [n];
		for(int i=0;i<n;i++) {
			s[i]=sc.nextInt();
		}
		Fx f=new Fx();
		f.a=n;
		for(int i=0;i<n;i++) {
			f.p[i]=s[i];

		}
		f.rieki();
		System.out.println(f.ans);
		sc.close();
	} main {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int [] s=new int [n];
		for(int i=0;i<n;i++) {
			s[i]=sc.nextInt();
		}
		Fx f=new Fx();
		f.a=n;
		for(int i=0;i<n;i++) {
			f.p[i]=s[i];

		}
		f.rieki();
		System.out.println(f.ans);
		sc.close();
	} Scanner sc=new Scanner(System.in); sc new Scanner(System.in) int n=sc.nextInt(); n sc.nextInt() sc.nextInt sc int [] s=new int [n]; s new int [n] n for(int i=0;i<n;i++) {
			s[i]=sc.nextInt();
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			s[i]=sc.nextInt();
		} {
			s[i]=sc.nextInt();
		} s[i]=sc.nextInt() s[i] s i sc.nextInt() sc.nextInt sc Fx f=new Fx(); f new Fx() f.a=n f.a f f.a n for(int i=0;i<n;i++) {
			f.p[i]=s[i];

		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			f.p[i]=s[i];

		} {
			f.p[i]=s[i];

		} f.p[i]=s[i] f.p[i] f.p f f.p i s[i] s i f.rieki() f.rieki f System.out.println(f.ans) System.out.println System.out System System.out f.ans f f.ans sc.close() sc.close sc String[] args args public class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int [] s=new int [n];
		for(int i=0;i<n;i++) {
			s[i]=sc.nextInt();
		}
		Fx f=new Fx();
		f.a=n;
		for(int i=0;i<n;i++) {
			f.p[i]=s[i];

		}
		f.rieki();
		System.out.println(f.ans);
		sc.close();
	}
} public class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int [] s=new int [n];
		for(int i=0;i<n;i++) {
			s[i]=sc.nextInt();
		}
		Fx f=new Fx();
		f.a=n;
		for(int i=0;i<n;i++) {
			f.p[i]=s[i];

		}
		f.rieki();
		System.out.println(f.ans);
		sc.close();
	}
} Main
import java.util.Scanner;
class Fx{
	int a;
	int [] p=new int[200000];
	int ans;
	void rieki() {
		int minv=p[0];
		int maxv=p[1]-p[0];
		for(int j=1;j<a;j++) {
			maxv=Math.max(maxv, p[j]-minv);
			minv=Math.min(minv,p[j]);
		}
		ans=maxv;
	}
}
public class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int [] s=new int [n];
		for(int i=0;i<n;i++) {
			s[i]=sc.nextInt();
		}
		Fx f=new Fx();
		f.a=n;
		for(int i=0;i<n;i++) {
			f.p[i]=s[i];

		}
		f.rieki();
		System.out.println(f.ans);
		sc.close();
	}
}

