public static int[] Merge(int A[], int p, int q, int r){
		System.out.println("p = " + p + " q = " + q + " r = " + r);
		int n1 = q-p+1;
		int n2 = r-q;
		
		if(n1 == 1 && n2 == 1){
			return A;
		}else{
			
			int[] L = new int[n1];
			int[] R = new int[n2];
			
			for(int i = 0; i < n1; i++){
				L[i] = A[p+i];
			}
			
			for(int i = 0; i < n2; i++){
				R[i] = A[q+i+1];
			}
			System.out.print("n1: " + n1 + " Left: ");
			printArray(L, n1);
			System.out.print("n2: " + n2 + " Right: ");
			printArray(R, n2);			
			
			int i = 0;
			int j = 0;
			
			for(int k = 0; k <= r; k++){
				if(i < n1 && j < n2){
					if(L[i] <= R[j]){
						A[k] = L[i++];
					}else{
						A[k] = R[j++];						
					}	
				}
			}
			
			return A;
		}
	}