program test
implicit none

integer(8) :: n,k,a(200000),i,j,max_a,bits(50)=0,bits_max = 1,ans2(0:50),ruijyou(0:50),base


read(*,*) n,k
read(*,*) (a(i),i=1,n)


!2の累乗を計算
ruijyou(0) = 1
do i=1,50
	ruijyou(i) = ruijyou(i-1) * 2
enddo

!bits(i)      下からi桁目のビットが1である数の個数
!(n-bits(i))  下からi桁目のビットが0である数の個数
do i=0,49
	do j=1,n
		if(BTEST(a(j),i)) then
			bits_max = i+1
			bits(i+1) = bits(i+1) + 1
		endif
	enddo
enddo

!K=0のときの値
base = 0
do i=1,50
	base = base + bits(i)*ruijyou(i-1)
enddo

!i桁までの数で、K=0との最大値の差分を計算
ans2(0) = 0
do i=1,50
	ans2(i)= ans2(i-1) + max(0,(n-bits(i))-bits(i))*ruijyou(i-1)
enddo

write(*,*) base+ans(k)

contains

function ans_fixed(x,j_s,j_e) result(tmp)
	implicit none
	integer(8):: x,tmp,j_s,j_e
	
	tmp = 0
	
	do j=j_s,j_e
		if(BTEST(x,j-1))then
			tmp = tmp + ((n-bits(j))-bits(j)) * ruijyou(j-1)
		else
			tmp = tmp
		endif
	enddo
	
	return
	
end function

function keta(x) result(tmp)
	implicit none
	integer(8) :: x,i,tmp
	do i=0,49
		if( x <= ruijyou(i)-1 ) then
			tmp = max(1,i)
			return
		endif
	enddo
	tmp = 50
	return
end function

recursive function ans(x) result(res)
	implicit none
	integer(8):: x,x_bit,count=0,res
		
		!xのビット桁数を調べる
		x_bit = keta(x)
		res = ans2(x_bit-1)
		
		!上位桁から調べていく
		do i=x_bit-1,1,-1
			if(BTEST(x,i-1))then !i桁目の数が1なら
				!i+1～x_bit桁目は固定
				res = max(res,ans_fixed(x,i+1,x_bit)+ans(mod(x,ruijyou(i))))
				goto 200
			endif
			200 continue
		enddo
		
		return
		
end function

end program
