def solve n = read_line.to_i o = Array.new(n) { read_line.split.map(&.to_i) } unit = -1 n.times do |i| n.times do |j| n.times do |k| if o[i][o[j][k]] != o[o[i][j]][k] return false end end end if n.times.all? { |j| o[i][j] == j && o[j][i] == j } unit = i end end return false if unit == -1 return n.times.all? { |i| n.times.any? { |j| o[i][j] == unit } } end puts solve() ? "Yes" : "No"