Problem: As you could know there are no male planes nor female planes. However, each plane on Earth likes some other plane. There are n planes on Earth, numbered from 1 to n, and the plane with number i likes the plane with number fi, where 1 ≤ fi ≤ n and fi ≠ i.

We call a love triangle a situation in which plane A likes plane B, plane B likes plane C and plane C likes plane A. Find out if there is any love triangle on Earth.

Input

The first line contains a single integer n (2 ≤ n ≤ 5000) — the number of planes.

The second line contains n integers f1, f2, ..., fn (1 ≤ fi ≤ n, fi ≠ i), meaning that the i-th plane likes the fi-th.

Output

Output «YES» if there is a love triangle consisting of planes on Earth. Otherwise, output «NO».

You can output any letter in lower case or in upper case.

Examples

Input

5
2 4 5 1 3


Output

YES


Input

5
5 5 5 5 1


Output

NO

Note

In first example plane 2 likes plane 4, plane 4 likes plane 1, plane 1 likes plane 2 and that is a love triangle.

In second example there are no love triangles.

Solution (in JAVA):

Solution:
/*
 * UNIVERSIDAD ICESI
 * ALGORITMOS Y ESTRUCTURAS DE DATOS
 * SEGUIMIENTO SEMANA 12
 * SANTIAGO RODAS RODRIGUEZ
 */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ClaseTest {
	
	// ---------------------------------------------------------------------------------
	
	// VARIABLES ESTATICAS QUE SE USAN EN EL PROGRAMA
	
	// ESTAS SON LAS DEL PRIMER METODO

	static int[] estructuraUnicaGrafo;
	
	static boolean existeTripleAmor = false;
	
	static int amorImposible = 0;
	
	// ********************************************
	
	// ESTAS SON LAS DEL SEGUNDO METODO
	
	static boolean amorDeMasDedos = false;
	
	static String auxiliar = "";
	
	static String[] verticesUnitarios;
	
	// ---------------------------------------------------------------------------------
	
	// METODO DE VALIDACION PRIMARIO PARA SABER SI ES UN TRIANGULO AMOROSO O NO

	public static boolean metodoValidacionPrimario(int amor, int vertice) {
		
		if (estructuraUnicaGrafo[amor - 1] != 0) {
			
			amorImposible = estructuraUnicaGrafo[amor - 1];
			
			if (estructuraUnicaGrafo[amorImposible - 1] == vertice + 1) {
				
				existeTripleAmor = true;
				
			}
			
		}

		return existeTripleAmor;
		
	}
	
	//---------------------------------------------------------------------------------
	
	// METODO PRINCIPAL DEL SISTEMA (MAIN)

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		// ********************************************
		
		// CREACION DEL BUFFERED READER CON LA FINALIDAD DE LECTURA EN EL SISTEMA
		
		BufferedReader unicoLector = new BufferedReader(new InputStreamReader(System.in));
		
		// ********************************************
		
		// UTILIZACION DE ALGUNAS VARIABLES PARA LA LECTURA Y ALMACENAMIENTO DE DATOS
		
		int principalTotal = Integer.parseInt(unicoLector.readLine());

		auxiliar = unicoLector.readLine();
		
		verticesUnitarios = auxiliar.split(" ");
		
		// ********************************************
		
		// CREACION DE LA ESTRUCTURA COMO TAL

		estructuraUnicaGrafo = new int[principalTotal];
		
		// UNICO Y PRINCIPAL CICLO DEL SISTEMA PARA REALIZAR LOS CALCULOS CORRECTOS
		
		// ********************************************

		for (int i = 0; i < principalTotal && !amorDeMasDedos; i++) {
			
			estructuraUnicaGrafo[i] = Integer.parseInt(verticesUnitarios[i]);
			
			amorDeMasDedos = metodoValidacionPrimario(estructuraUnicaGrafo[i], i);
			
		}
		
		// ********************************************
		
		// VALIDACION DE LA VARIABLE ESTATICA AMOR DE MAS DE DOS PARA IMPRIMIR EL RESULTADO

		if (amorDeMasDedos) {
			
			System.out.println("YES");
			
		} else {
			
			System.out.println("NO");
			
		}
		
		// ********************************************
		
		// CIERRE DEL BUFFERED PARA TENER LAS BUENAS PRACTICAS DE PROGRAMACION
		
		unicoLector.close();
		
		// ********************************************

	}
	
	// ---------------------------------------------------------------------------------

}