import java.util.Scanner;

public class Main {

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

		int n = sc.nextInt();
		int[] data = new int[n];

    	for (int i = 0; i < n; i++) {
    		data[i] = sc.nextInt();
    	}

    	// i以降の最大値を保持
    	int[] dataMax = new int[n];
    	for (int i = n - 1; i >= 0; i--) {
    		if (i == n - 1) {
    			dataMax[i] = data[i];
    		} else {
    			dataMax[i] = Math.max(dataMax[i + 1], data[i]);
    		}
    	}

    	int max_profit = data[1] - data[0];
    	for (int i = 0; i < n - 1; i++) {
//    		if (i == 0 || data[i - 1] > data[i]) {
    			max_profit = Math.max(max_profit, dataMax[i + 1] - data[i]);
//    		}
    	}
		
    	System.out.println(max_profit);
    	
        sc.close();
	}
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz