parameter k는 val 이라 var로 재선언해주어야 함

least signed bit 즉 가장작은 켜진 비트를 찾기 위해서

k & -k  비트연산을 사용했음. Integer.lowestOneBit(k) 써도 됨