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.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringTokenizer;


public class swef {
	static int n,l,r;
	static Integer arr[];
	static Integer ml,mr,block;
	static Integer ans[];
//	static ArrayList<pair> query;
	static StringBuilder answer;
	static HashMap<Integer,Integer> map=new HashMap<>();
	public static void main(String[] args) throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		Integer t=1;
		answer=new StringBuilder();
		while(t-->0) {
			int n=Integer.parseInt(br.readLine().trim());
			int arr[]=new int[n];
			StringTokenizer tok=new StringTokenizer(br.readLine()," ");
			for(int i=0;i<n;i++) {
				
				arr[i]=Integer.parseInt(tok.nextToken());
			}
			int ans=Math.abs(arr[0]-arr[n-1]);
			int l=1,m=n;
			for(int i=0;i<n-1;i++) {
				if(ans>Math.abs(arr[i]-arr[i+1])) {
					ans=Math.min(ans, Math.abs(arr[i]-arr[i+1]));
					l=i+1;
					m=i+2;
				}
				
			}
			System.out.println(l+" "+m);
		}
	}

}
    