n soldiers stand in a circle. For each soldier his height ai is known. A reconnaissance unit can be made of such two neighbouring soldiers, whose heights difference is minimal, i.e. |ai - aj| is minimal. So each of them will be less noticeable with the other. Output any pair of soldiers that can form a reconnaissance unit.

Input

The first line contains integer n (2 ≤ n ≤ 100) — amount of soldiers. Then follow the heights of the soldiers in their order in the circle — n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 1000). The soldier heights are given in clockwise or counterclockwise direction.

Output

Output two integers — indexes of neighbouring soldiers, who should form a reconnaissance unit. If there are many optimum solutions, output any of them. Remember, that the soldiers stand in a circle.

Examples

Input

5
10 12 13 15 10


Output

5 1


Input

4
10 20 30 40


Output

1 2
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;

public class Reconnaissance2 {

	static final String TESTFILENAME = "rec2.txt";
	
	static final boolean OJ = true;//System.getProperty("MALINLOCAL") == null;
	static BufferedReader IN;
	static {
		try {
			IN = OJ?
					new BufferedReader(new InputStreamReader(System.in))
					: new BufferedReader(new FileReader(new File(Reconnaissance2.class.getResource(TESTFILENAME).toURI())));
		}
		catch(Exception e) {
			e.printStackTrace();
		}
	}
	
	static String inStr() {
		try {
			return IN.readLine();
		} catch (IOException e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}
	static int inInt() { return Integer.parseInt(inStr()); }

	static int[] inIntArr() {
		String s = inStr();
		if(s == null)
			return null;
		return toIntArr(s);
	}
	static int[] toIntArr(String s) {
		String[] sArr = s.split(" ");
		int[] iArr = new int[sArr.length];
		for(int i = 0; i < sArr.length; ++i)
			iArr[i] = Integer.parseInt(sArr[i]);
		return iArr;
	}
	static void out(String s) { System.out.println(s); }
	static void out(int i) { out(Integer.toString(i)); }
	static void out(double x) {
		out(format(x)); 
	}
	static final DecimalFormat df = new DecimalFormat("0.000000");
	private static String format(double x) {
		String s = df.format(x);
		s = s.replaceAll(",", ".");
		return s;
	}
	static void solve(int n, int[] a) {
		int min = Integer.MAX_VALUE;
		int minI1 = -1;
		int minI2 = -1;
		for (int i = 0; i < a.length; i++) {
			int diff = Math.abs(a[i] - a[i == 0? a.length - 1 : i - 1]);
			if(diff < min) {
				min = diff;
				minI1 = i;
				minI2 = i == 0? a.length - 1 : i - 1;
			}
		}
		out((minI1 + 1) + " " + (minI2 + 1));
	}
	
	public static void main(String[] args) {
		int n = inInt();
		int[] nma = inIntArr();
		solve(n, nma);
	}

}
