程序循环到第二步,输出页面卡住了没输出

下面的程序运行的时候运行到第二轮的时候卡住了,查不出是什么问题
30 个人在一条船上,超载,需要 15 人下船。于是人们排成一队,排队的位置即为他们的编号。报数,从 1 开始数,报数为 9 的人下船。如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?

l=[]
m=[]
n=[]
len1,yu=0,0
for i in range(1,31):
    l.append(i)
while len(l)>15:
    len1=len(l)
    print('数据长度=',len1)
    for j in range(1,len1+1):        
        if (j+yu)%9==0:
            m.append(l[j-1])    
    print('m=',m)
    for k in l:
        if not k in m:
            n.append(k)
    l=n
    print('本轮n=',n)
    print('结束后本轮l=',l)
    yu=len1%9  
    print('余数=',yu)
    if len(l)==15:
        break
print('下船编号:',m)
print('没下船编号',l)

输出结果:
运行到第二轮的for k in l这里就一直卡住,能告诉下是什么问题吗?

img

l=[]
t=0
for i in range(30):
    l.append(0)
i=0
m=1
while t!=15:
    if l[i] == 0:
        if m == 9:
            l[i]=1
            print(i+1,end= ' ')
            t+=1
            m=0
        m+=1
    i+=1
    if i==30:
        i=0