n=gets.to_i f=gets.split.map &:to_i puts (1..n).map{|u|l=1;m=u;r=[v=u];(l+=1;m=[m,v].min)while (v=f[v-1])!=u;[l,m]}.uniq.group_by{|x|x[0]}.any?{|k,v|k[0]*(k[1]+1)%2>0}? :No: :Yes