import java.util.Scanner;

public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();

    int[] p = new int[n + 2];

    int outOfOrder = 0;

    for (int i = 0; i < n; ++i) {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    }

    if (outOfOrder == -1)
      System.out.println("NO");
    else
      System.out.println("YES");

  }
} import java.util.Scanner; Scanner java.util public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();

    int[] p = new int[n + 2];

    int outOfOrder = 0;

    for (int i = 0; i < n; ++i) {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    }

    if (outOfOrder == -1)
      System.out.println("NO");
    else
      System.out.println("YES");

  }
} Main public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();

    int[] p = new int[n + 2];

    int outOfOrder = 0;

    for (int i = 0; i < n; ++i) {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    }

    if (outOfOrder == -1)
      System.out.println("NO");
    else
      System.out.println("YES");

  } main {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();

    int[] p = new int[n + 2];

    int outOfOrder = 0;

    for (int i = 0; i < n; ++i) {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    }

    if (outOfOrder == -1)
      System.out.println("NO");
    else
      System.out.println("YES");

  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int[] p = new int[n + 2]; p new int[n + 2] n + 2 n 2 int outOfOrder = 0; outOfOrder 0 for (int i = 0; i < n; ++i) {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    } int i = 0; int i = 0; i 0 i < n i n ++i ++i i {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    } {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    } p[i] = sc.nextInt() p[i] p i sc.nextInt() sc.nextInt sc if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1; outOfOrder == 0 && p[i] != i + 1 outOfOrder == 0 outOfOrder 0 p[i] != i + 1 p[i] p i i + 1 i 1 outOfOrder = 1 outOfOrder 1 if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1; outOfOrder == 1 && p[i] != i + 1 outOfOrder == 1 outOfOrder 1 p[i] != i + 1 p[i] p i i + 1 i 1 {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1; p[p[i] - 1] == i + 1 p[p[i] - 1] p p[i] - 1 p[i] p i 1 i + 1 i 1 outOfOrder = 2 outOfOrder 2 outOfOrder = -1 outOfOrder -1 1 if (p[i] != i + 1)
        outOfOrder = -1; p[i] != i + 1 p[i] p i i + 1 i 1 outOfOrder = -1 outOfOrder -1 1 if (outOfOrder == -1)
      System.out.println("NO");
    else
      System.out.println("YES"); outOfOrder == -1 outOfOrder -1 1 System.out.println("NO") System.out.println System.out System System.out "NO" System.out.println("YES") System.out.println System.out System System.out "YES" String[] args args public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();

    int[] p = new int[n + 2];

    int outOfOrder = 0;

    for (int i = 0; i < n; ++i) {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    }

    if (outOfOrder == -1)
      System.out.println("NO");
    else
      System.out.println("YES");

  }
} public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();

    int[] p = new int[n + 2];

    int outOfOrder = 0;

    for (int i = 0; i < n; ++i) {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    }

    if (outOfOrder == -1)
      System.out.println("NO");
    else
      System.out.println("YES");

  }
} Main
import java.util.Scanner;

public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();

    int[] p = new int[n + 2];

    int outOfOrder = 0;

    for (int i = 0; i < n; ++i) {
      p[i] = sc.nextInt();
      if (outOfOrder == 0 && p[i] != i + 1)
        outOfOrder = 1;
      else if (outOfOrder == 1 && p[i] != i + 1) {
        if (p[p[i] - 1] == i + 1)
          outOfOrder = 2;
        else
          outOfOrder = -1;
      } else if (p[i] != i + 1)
        outOfOrder = -1;
    }

    if (outOfOrder == -1)
      System.out.println("NO");
    else
      System.out.println("YES");

  }
}