n=gets.to_i f=gets.split.map &:to_i puts (1..n).map{|u|l=1;m=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]+1)*v.size%2>0}?:No: :Yes