import java.util.Scanner;

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

        int rowCount = Integer.parseInt(sc.nextLine());

        int minNum = Integer.parseInt(sc.nextLine());
        int maxProfit = Integer.MIN_VALUE;

        for (int i = 1; i < rowCount; i++) {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        }

        System.out.println(maxProfit);
    }
    // public static void main(String[] args) {

    //     Scanner sc = new Scanner(System.in);

    //     int N = Integer.parseInt(sc.nextLine());

    //     int[] nums = new int[N];
    //     for(int i=0; i<N; i++) {
    //         // int a = Integer.parseInt(sc.nextLine());
    //         int a = sc.nextInt();
    //         nums[i] = a;
    //     }

    //     int maxProfit = Integer.MIN_VALUE;
    //     for (int i = 1; i < nums.length; i++) {
    //         for (int j = 0; j < i; j++) {
    //             // System.out.printf("%d %d -> %d\n", nums[i], nums[j], nums[i] - nums[j]);

    //             maxProfit = Math.max(maxProfit, nums[i] - nums[j]);
    //         }
    //     }


    //     System.out.println(maxProfit);
    // }
} import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int rowCount = Integer.parseInt(sc.nextLine());

        int minNum = Integer.parseInt(sc.nextLine());
        int maxProfit = Integer.MIN_VALUE;

        for (int i = 1; i < rowCount; i++) {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        }

        System.out.println(maxProfit);
    }
    // public static void main(String[] args) {

    //     Scanner sc = new Scanner(System.in);

    //     int N = Integer.parseInt(sc.nextLine());

    //     int[] nums = new int[N];
    //     for(int i=0; i<N; i++) {
    //         // int a = Integer.parseInt(sc.nextLine());
    //         int a = sc.nextInt();
    //         nums[i] = a;
    //     }

    //     int maxProfit = Integer.MIN_VALUE;
    //     for (int i = 1; i < nums.length; i++) {
    //         for (int j = 0; j < i; j++) {
    //             // System.out.printf("%d %d -> %d\n", nums[i], nums[j], nums[i] - nums[j]);

    //             maxProfit = Math.max(maxProfit, nums[i] - nums[j]);
    //         }
    //     }


    //     System.out.println(maxProfit);
    // }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int rowCount = Integer.parseInt(sc.nextLine());

        int minNum = Integer.parseInt(sc.nextLine());
        int maxProfit = Integer.MIN_VALUE;

        for (int i = 1; i < rowCount; i++) {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        }

        System.out.println(maxProfit);
    } main {
        Scanner sc = new Scanner(System.in);

        int rowCount = Integer.parseInt(sc.nextLine());

        int minNum = Integer.parseInt(sc.nextLine());
        int maxProfit = Integer.MIN_VALUE;

        for (int i = 1; i < rowCount; i++) {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        }

        System.out.println(maxProfit);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int rowCount = Integer.parseInt(sc.nextLine()); rowCount Integer.parseInt(sc.nextLine()) Integer.parseInt Integer sc.nextLine() sc.nextLine sc int minNum = Integer.parseInt(sc.nextLine()); minNum Integer.parseInt(sc.nextLine()) Integer.parseInt Integer sc.nextLine() sc.nextLine sc int maxProfit = Integer.MIN_VALUE; maxProfit Integer.MIN_VALUE Integer Integer.MIN_VALUE for (int i = 1; i < rowCount; i++) {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        } int i = 1; int i = 1; i 1 i < rowCount i rowCount i++ i++ i {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        } {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        } int num = Integer.parseInt(sc.nextLine()); num Integer.parseInt(sc.nextLine()) Integer.parseInt Integer sc.nextLine() sc.nextLine sc maxProfit = Math.max(maxProfit, num - minNum) maxProfit Math.max(maxProfit, num - minNum) Math.max Math maxProfit num - minNum num minNum minNum = Math.min(minNum, num) minNum Math.min(minNum, num) Math.min Math minNum num System.out.println(maxProfit) System.out.println System.out System System.out maxProfit String[] args args public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int rowCount = Integer.parseInt(sc.nextLine());

        int minNum = Integer.parseInt(sc.nextLine());
        int maxProfit = Integer.MIN_VALUE;

        for (int i = 1; i < rowCount; i++) {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        }

        System.out.println(maxProfit);
    }
    // public static void main(String[] args) {

    //     Scanner sc = new Scanner(System.in);

    //     int N = Integer.parseInt(sc.nextLine());

    //     int[] nums = new int[N];
    //     for(int i=0; i<N; i++) {
    //         // int a = Integer.parseInt(sc.nextLine());
    //         int a = sc.nextInt();
    //         nums[i] = a;
    //     }

    //     int maxProfit = Integer.MIN_VALUE;
    //     for (int i = 1; i < nums.length; i++) {
    //         for (int j = 0; j < i; j++) {
    //             // System.out.printf("%d %d -> %d\n", nums[i], nums[j], nums[i] - nums[j]);

    //             maxProfit = Math.max(maxProfit, nums[i] - nums[j]);
    //         }
    //     }


    //     System.out.println(maxProfit);
    // }
} public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int rowCount = Integer.parseInt(sc.nextLine());

        int minNum = Integer.parseInt(sc.nextLine());
        int maxProfit = Integer.MIN_VALUE;

        for (int i = 1; i < rowCount; i++) {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        }

        System.out.println(maxProfit);
    }
    // public static void main(String[] args) {

    //     Scanner sc = new Scanner(System.in);

    //     int N = Integer.parseInt(sc.nextLine());

    //     int[] nums = new int[N];
    //     for(int i=0; i<N; i++) {
    //         // int a = Integer.parseInt(sc.nextLine());
    //         int a = sc.nextInt();
    //         nums[i] = a;
    //     }

    //     int maxProfit = Integer.MIN_VALUE;
    //     for (int i = 1; i < nums.length; i++) {
    //         for (int j = 0; j < i; j++) {
    //             // System.out.printf("%d %d -> %d\n", nums[i], nums[j], nums[i] - nums[j]);

    //             maxProfit = Math.max(maxProfit, nums[i] - nums[j]);
    //         }
    //     }


    //     System.out.println(maxProfit);
    // }
} Main
import java.util.Scanner;

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

        int rowCount = Integer.parseInt(sc.nextLine());

        int minNum = Integer.parseInt(sc.nextLine());
        int maxProfit = Integer.MIN_VALUE;

        for (int i = 1; i < rowCount; i++) {

            int num = Integer.parseInt(sc.nextLine());

            maxProfit = Math.max(maxProfit, num - minNum);
            minNum = Math.min(minNum, num);

            // System.out.printf("num:%3d, minNum:%3d, profit:%3d\n", num, minNum, maxProfit);
        }

        System.out.println(maxProfit);
    }
    // public static void main(String[] args) {

    //     Scanner sc = new Scanner(System.in);

    //     int N = Integer.parseInt(sc.nextLine());

    //     int[] nums = new int[N];
    //     for(int i=0; i<N; i++) {
    //         // int a = Integer.parseInt(sc.nextLine());
    //         int a = sc.nextInt();
    //         nums[i] = a;
    //     }

    //     int maxProfit = Integer.MIN_VALUE;
    //     for (int i = 1; i < nums.length; i++) {
    //         for (int j = 0; j < i; j++) {
    //             // System.out.printf("%d %d -> %d\n", nums[i], nums[j], nums[i] - nums[j]);

    //             maxProfit = Math.max(maxProfit, nums[i] - nums[j]);
    //         }
    //     }


    //     System.out.println(maxProfit);
    // }
}
