N,K=[int(i) for i in input().split()] D=[int(i) for i in input().split()] D.insert(0,0) # print(D) is_refed=[False for i in range(N+1)] #最小回数の導出 min_swap_num=0 for i in range(1,N+1): # print(i,is_refed) if is_refed[i]==True: continue tmp=i zyunkai_list_len=0 while(1): zyunkai_list_len+=1 is_refed[tmp]=True if D[tmp]==i: min_swap_num+=zyunkai_list_len-1 break tmp=D[tmp] # print(min_swap_num) if K