해커가 메가바이러스를 만들었습니다. 바이러스의 각 복사본에는 고유한 번호가 있으며, 맨 처음 복사본의 번호는 0입니다. 매 분마다 새로운 세대의 바이러스가 만들어집니다. 세대 k에 있는 번호 i인 바이러스는 세대 k+1에 번호가 2⋅i와 2⋅i+1인 두 바이러스(자식)를 만듭니다. 이렇게 새로 생긴 두 바이러스 2⋅i, 2⋅i+1을 세대 k의 바이러스 i의 자식이라고 부릅니다. 바이러스 v와 그 자식, 자식의 자식 등을 모두 합쳐 바이러스 v의 자손이라 하고(바이러스 v 자신도 자손에 포함됩니다), v를 그들의 조상이라고 부릅니다. 즉, 모든 바이러스는 자기 자신의 조상이기도 합니다. 세대 번호는 0부터 시작합니다. 각 세대에 존재하는 바이러스의 번호는 다음과 같습니다.
세대 번호 하나와 그 세대에 속한 여러 바이러스의 번호가 주어질 때, 주어진 모든 바이러스의 공통 조상을 포함하는 가장 큰 세대 번호를 구해서 출력하는 프로그램을 작성하세요.
첫째 줄에 두 정수 k와 n이 공백으로 구분되어 주어집니다. k (1≤k≤512)는 세대 번호이고, n (1≤n≤150)은 읽어들일 바이러스의 개수입니다. 이어지는 n개의 줄에는 각 줄마다 바이러스의 번호가 하나씩 주어집니다. 모든 바이러스는 세대 k에 속하므로, 각 번호는 0 이상 2k−1 이하의 정수입니다.
주어진 모든 바이러스의 공통 조상을 포함하는 가장 큰 세대 번호를 한 줄에 출력합니다.