import sys

for line in sys.stdin:
    a = line.split()
    n=int(a[0])
    t=1
    l=[i for i in range(n+1)]
    m=0
    l2=[]
    while len(l)!=1:
        n=len(l)
        for i in range(1,n//2+1):
            m=0
            if t*(2*i-1)<n:
                l2.append(l[t*(2*i-1)])
                l[t*(2*i-1)-1]=0
            else:
                break
        if len(l)==1:
            break
        l=[i for i in l2]
        l2=[]
        #print(l)
    print(l[0])
    
    #print(int(a[0]) + int(a[1]))

这道题的整体思路比较简单。每次都删除数组的奇数位上的元素,因为使用pop会立马改变数组长度,我们选择用一个新数组去存储偶数位置的元素。