AT_maximum_cup_2018_c 嘘つきな天使たち

Description

[problemUrl]: https://atcoder.jp/contests/maximum-cup-2018/tasks/maximum_cup_2018_c 天使の中に悪魔が紛れ込んだ。あなたは上司にこれを報告しなければならないが、上司は『最大でどれだけ悪魔が紛れ込んだか調査しろ』と命じてきた。 「一体、誰が悪魔なんですかね」 あなたが言うと、彼らは『あいつが悪魔だ』と指摘し合った。**誰も同じ者を指ささずバラバラの者を指摘していた。** どうやら天使は必ず悪魔を、悪魔は必ず天使を指摘しているようだった。 最大で何人の悪魔がいるだろうか。その数を報告してほしい。 ただし、あなたや上司は天使でも悪魔でもなく、入力で与えられる『彼ら』には含まれない。また、『彼ら』はそれぞれ天使か悪魔のどちらかである。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_{1} $ $ A_{2} $ $ : $ $ A_{N} $ 一つの整数 $ N $ と $ N $ 行の整数からなる。 $ i+1 $行目は番号$ i $の者が番号$ A_{i} $の者を指さしたことを示している。 ただし、$ 2\ \leq\ N\ \leq\ 10^5 $、$ 1\ \leq\ A_{i}\ \leq\ N $ であり、 **相異なる任意の $ i, $ $ j $ について $ A_i≠A_j $** である。

Output Format

考えられる悪魔の数として最大のものを一行に出力せよ。 どのように天使と悪魔を決めても矛盾が生じるなら$ -1 $を出力せよ。