求解下这个约瑟夫问题

问题遇到的现象和发生背景

约瑟夫问题

问题相关代码,请勿粘贴截图

a = []
n = int(input())
m = int(input())

length = n
head = 0
i = 1
k = head
for i in range(n-1):
a.append([i+1, i+1])
a.append([n, 0])
while length > 1:
i += 1
if i == m:
t = a[k][1]
a[k][1] = a[t][1]
if t == head:
head = a[k][1]
i = 1
length -= 1
k = a[k][1]
print(a[head][0])

运行结果及报错内容

没有输出

我的解答思路和尝试过的方法

用链表的方法,可是没有输出

我想要达到的结果

你这个索引有问题,看不出你原来代码。