def read_data(): N, K = map(int, input().split()) Ds = list(map(int, input().split())) return N, K, Ds def solve(N, K, Ds): group = list(range(N)) Ds = [d - 1 for d in Ds] n_groups = 0 for v in range(N): if group[v] != v: continue n_groups += 1 u = v while Ds[u] != v: u = Ds[u] group[u] = v min_steps = N - n_groups if K < min_steps: return False elif (K - min_steps) % 2: return False else: return True N, K, Ds = read_data() if solve(N, K, Ds): print('YES') else: print('NO')