As an experiment the Educational Codeforces Round 33 will be rated for Div. 2.
×

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ACM-ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

E. Delivery Club

time limit per test

2 secondsmemory limit per test

512 megabytesinput

standard inputoutput

standard outputPetya and Vasya got employed as couriers. During the working day they are to deliver packages to *n* different points on the line. According to the company's internal rules, the delivery of packages must be carried out strictly in a certain order. Initially, Petya is at the point with the coordinate *s*_{1}, Vasya is at the point with the coordinate *s*_{2}, and the clients are at the points *x*_{1}, *x*_{2}, ..., *x*_{n} in the order of the required visit.

The guys agree in advance who of them will deliver the package to which of the customers, and then they act as follows. When the package for the *i*-th client is delivered, the one who delivers the package to the (*i* + 1)-st client is sent to the path (it can be the same person who went to the point *x*_{i}, or the other). The friend who is not busy in delivering the current package, is standing still.

To communicate with each other, the guys have got walkie-talkies. The walkie-talkies work rather poorly at great distances, so Petya and Vasya want to distribute the orders so that the maximum distance between them during the day is as low as possible. Help Petya and Vasya to minimize the maximum distance between them, observing all delivery rules.

Input

The first line contains three integers *n*, *s*_{1}, *s*_{2} (1 ≤ *n* ≤ 100 000, 0 ≤ *s*_{1}, *s*_{2} ≤ 10^{9}) — number of points of delivery and starting positions of Petya and Vasya.

The second line contains *n* integers *x*_{1}, *x*_{2}, ..., *x*_{n} — customers coordinates (0 ≤ *x*_{i} ≤ 10^{9}), in the order to make a delivery.

It is guaranteed, that among the numbers *s*_{1}, *s*_{2}, *x*_{1}, ..., *x*_{n} there are no two equal.

Output

Output the only integer, minimum possible maximal distance between couriers during delivery.

Examples

Input

2 0 10

5 6

Output

10

Input

3 2 1

3 4 5

Output

1

Input

1 4 5

2

Output

2

Note

In the first test case the initial distance between the couriers is 10. This value will be the answer, for example, Petya can perform both deliveries, and Vasya will remain at the starting point.

In the second test case you can optimally act, for example, like this: Vasya delivers the package to the first customer, Petya to the second and, finally, Vasya delivers the package to the third client. With this order of delivery, the distance between the couriers will never exceed 1.

In the third test case only two variants are possible: if the delivery of a single package is carried out by Petya, the maximum distance between them will be 5 - 2 = 3. If Vasya will deliver the package, the maximum distance is 4 - 2 = 2. The latter method is optimal.

Codeforces (c) Copyright 2010-2017 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Nov/23/2017 06:41:24 (c4).

Desktop version, switch to mobile version.

User lists

Name |
---|