# 题目 有n个人围成一圈，顺序排号。从第一个人开始报数（从1到3报数），凡报到3的人退出圈子，问最后留下的是原来第几号的那位。
# 程序分析 无。
if __name__ == '__main__':
    nmax = 50
    n = int(input('请输入总人数:'))
    num = []
    for i in range(n):
        num.append(i + 1)
    print(num)
 
    i = 0 # 这个是对应列表中10个位置的索引，是活人才对应k报号加1
    k = 0 # 这个是报号123，逢3变0，再次123这样报号
    m = 0 # 这个是淘汰的人数
 
    while m < n - 1:
        if num[i] != 0: # 之后的话有人会被淘汰，活人才会报号吧，就是索引活人呀
            k += 1
        if k == 3: # 谁报到了3，就被淘汰啊，它的索引位置会归0
            num[i] = 0
            k = 0
            m += 1
        i += 1 # 游戏不结束就会不停地索引，一个接着一个
        # print(i)
        if i == n: # i本来等于9了，已经索引至第10个人了，前一步刚刚加到10，逢10变0，又回头从第一个人开始索引
            i = 0
 
    i = 0
    while num[i] == 0: # 从第一个开始找，直到找到那个没被淘汰的
        i += 1
    print(num[i])

# 10
# 1,2 4,5 7,8 10,1 4,5 8,10 4,5 10,4 4

# n=10
# num = [1,2,3,4,5,6,7,8,9,10]
# m=0<10-1=9
# k=1
# i=1;
# m=0<9
# k=2
# i=2;
# m=0<9
# k=3
# num[2]=0
# k=0
# m=1
# i=3;
# m=1<9
# k=1
# i=4;
# m=1<9
# k=2
# i=5;
# m=1<9
# k=3
# num[5]=0
# k=0
# m=2
# i=6;
# ...最后的话m=8<9继续，又淘汰了一个，淘汰掉9个，只剩1个了







