private int findKthInSortedArrays(int[] A, int i, int[] B, int j,int k){
		if(A.length-i>B.length-j){
			return findKthInSortedArrays(B,j,A,i,k);
		}
		if(i>=A.length){
			return B[j+k-1];
		}
		if(k==1){
			return Math.min(A[i],B[j]);
		}
		
		int ii=Math.min(i+k/2-1,A.length-1);
		int jj=j+k-(ii-i+1)-1;
		
		if(A[ii]<B[jj]){
			return findKthInSortedArrays(A,ii+1,B,j,k-(ii-i+1));
		}else if(A[ii]>B[jj]){
			return findKthInSortedArrays(A,i,B,jj+1,ii-i+1);
		}else{
			return A[ii];
		}
	}