f=open("input.txt","r") [nv,ne]=f.readline().split() nv=int(nv) # кількість вершин ne=int(ne) # кількість ребер b=[] # списки суміжності for k in range(nv): b.append([]) for l in range(ne): [j, k]=f.readline().split() j=int(j) k=int(k) b[j].append(k) b[k].append(j) f.close l=[0]*nv # значення фнкції L q=[0] # список вершин у порядку досягнення j=0 # поточний номер вершини у списку q m=0 # номер останньої досягнутої вершини у списку q while (j<=m): for k in range(len(b[q[j]])): x=b[q[j]][k] if ((x!=0) and (l[x]==0)): m=m+1 q.append(x) l[x]=l[q[j]]+1 j=j+1 f = open("output.txt","w") f.write(str(l[0])) for j in range(1,nv): f.write(" "+str(l[j])) f.write('\n') f.close()