static void AuxillaryMerge(int[] A, int[]B, int p, int q, int r) {
	   
	    //Data is first copied from A to global auxiliary array B
        for(int i=p; i<=r; i++){ 
        	B[i] = A[i];
        }
        
        //Merge the data in B back to A
        int i = p; int j = q+1;
        
        for(int k=p; k<=r; k++) {
        	if ((j>r) || ((i<=q) && (B[i] <= B[j])))
        		A[k] = B[i++];
        	else
        		A[k] = B[j++];
        }
        return;	
    }