import java.util.*;


public class Main {
    public static void main(String[] args) {
      
      Scanner sc = new Scanner(System.in);
      int n = Integer.parseInt(sc.next());
      int ary[] = new int[n];
      for (int i = 0; i < ary.length; i++) {
        ary[i] = Integer.parseInt(sc.next());
      }
      
      if (isAscendingOrder(ary)) {
        System.out.print("YES");
      } else {
        System.out.print("NO");
      }
    }
  
  public static boolean isAscendingOrder(int[] ary) {
    int x = 0;
    int y = 0;
    int k = 0;
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        }
        return true;
      }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args) {
      
      Scanner sc = new Scanner(System.in);
      int n = Integer.parseInt(sc.next());
      int ary[] = new int[n];
      for (int i = 0; i < ary.length; i++) {
        ary[i] = Integer.parseInt(sc.next());
      }
      
      if (isAscendingOrder(ary)) {
        System.out.print("YES");
      } else {
        System.out.print("NO");
      }
    }
  
  public static boolean isAscendingOrder(int[] ary) {
    int x = 0;
    int y = 0;
    int k = 0;
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        }
        return true;
      }
} Main public static void main(String[] args) {
      
      Scanner sc = new Scanner(System.in);
      int n = Integer.parseInt(sc.next());
      int ary[] = new int[n];
      for (int i = 0; i < ary.length; i++) {
        ary[i] = Integer.parseInt(sc.next());
      }
      
      if (isAscendingOrder(ary)) {
        System.out.print("YES");
      } else {
        System.out.print("NO");
      }
    } main {
      
      Scanner sc = new Scanner(System.in);
      int n = Integer.parseInt(sc.next());
      int ary[] = new int[n];
      for (int i = 0; i < ary.length; i++) {
        ary[i] = Integer.parseInt(sc.next());
      }
      
      if (isAscendingOrder(ary)) {
        System.out.print("YES");
      } else {
        System.out.print("NO");
      }
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = Integer.parseInt(sc.next()); n Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int ary[] = new int[n]; ary new int[n] n for (int i = 0; i < ary.length; i++) {
        ary[i] = Integer.parseInt(sc.next());
      } int i = 0; int i = 0; i 0 i < ary.length i ary.length ary ary.length i++ i++ i {
        ary[i] = Integer.parseInt(sc.next());
      } {
        ary[i] = Integer.parseInt(sc.next());
      } ary[i] = Integer.parseInt(sc.next()) ary[i] ary i Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc if (isAscendingOrder(ary)) {
        System.out.print("YES");
      } else {
        System.out.print("NO");
      } isAscendingOrder(ary) isAscendingOrder ary {
        System.out.print("YES");
      } System.out.print("YES") System.out.print System.out System System.out "YES" {
        System.out.print("NO");
      } System.out.print("NO") System.out.print System.out System System.out "NO" String[] args args public static boolean isAscendingOrder(int[] ary) {
    int x = 0;
    int y = 0;
    int k = 0;
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        }
        return true;
      } isAscendingOrder {
    int x = 0;
    int y = 0;
    int k = 0;
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        }
        return true;
      } int x = 0; x 0 int y = 0; y 0 int k = 0; k 0 for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        } int i = 0; int i = 0; i 0 i < ary.length -1 i ary.length -1 ary.length ary ary.length 1 i++ i++ i {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        } {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        } if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          } ary[i] > ary[i + 1] ary[i] ary i ary[i + 1] ary i + 1 i 1 {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          } if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            } x == 0 x 0 {
              x = ary[i];
            } x = ary[i] x ary[i] ary i if (y == 0) {
              y = ary[i + 1];
            } y == 0 y 0 {
              y = ary[i + 1];
            } y = ary[i + 1] y ary[i + 1] ary i + 1 i 1 for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        } int i = 0; int i = 0; i 0 i < ary.length -1 i ary.length -1 ary.length ary ary.length 1 i++ i++ i {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        } {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        } if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          } ary[i] > ary[i + 1] ary[i] ary i ary[i + 1] ary i + 1 i 1 {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          } if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            } k == 0 k 0 {
              ary[i] = y;
              k += 1;
            } ary[i] = y ary[i] ary i y k += 1 k 1 if (k == 1) {
              ary[i +1] = x;
              k += 1;
            } k == 1 k 1 {
              ary[i +1] = x;
              k += 1;
            } ary[i +1] = x ary[i +1] ary i +1 i 1 x k += 1 k 1 for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        } int i = 0; int i = 0; i 0 i < ary.length -1 i ary.length -1 ary.length ary ary.length 1 i++ i++ i {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        } {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        } if (ary[i] > ary[i + 1]) {
            return false;
          } ary[i] > ary[i + 1] ary[i] ary i ary[i + 1] ary i + 1 i 1 {
            return false;
          } return false; false return true; true int[] ary ary public class Main {
    public static void main(String[] args) {
      
      Scanner sc = new Scanner(System.in);
      int n = Integer.parseInt(sc.next());
      int ary[] = new int[n];
      for (int i = 0; i < ary.length; i++) {
        ary[i] = Integer.parseInt(sc.next());
      }
      
      if (isAscendingOrder(ary)) {
        System.out.print("YES");
      } else {
        System.out.print("NO");
      }
    }
  
  public static boolean isAscendingOrder(int[] ary) {
    int x = 0;
    int y = 0;
    int k = 0;
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        }
        return true;
      }
} public class Main {
    public static void main(String[] args) {
      
      Scanner sc = new Scanner(System.in);
      int n = Integer.parseInt(sc.next());
      int ary[] = new int[n];
      for (int i = 0; i < ary.length; i++) {
        ary[i] = Integer.parseInt(sc.next());
      }
      
      if (isAscendingOrder(ary)) {
        System.out.print("YES");
      } else {
        System.out.print("NO");
      }
    }
  
  public static boolean isAscendingOrder(int[] ary) {
    int x = 0;
    int y = 0;
    int k = 0;
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        }
        return true;
      }
} Main
import java.util.*;


public class Main {
    public static void main(String[] args) {
      
      Scanner sc = new Scanner(System.in);
      int n = Integer.parseInt(sc.next());
      int ary[] = new int[n];
      for (int i = 0; i < ary.length; i++) {
        ary[i] = Integer.parseInt(sc.next());
      }
      
      if (isAscendingOrder(ary)) {
        System.out.print("YES");
      } else {
        System.out.print("NO");
      }
    }
  
  public static boolean isAscendingOrder(int[] ary) {
    int x = 0;
    int y = 0;
    int k = 0;
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (x == 0) {
              x = ary[i];
            } else if (y == 0) {
              y = ary[i + 1];
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            if (k == 0) {
              ary[i] = y;
              k += 1;
            } else if (k == 1) {
              ary[i +1] = x;
              k += 1;
            }
          }
        }
        for (int i = 0; i < ary.length -1; i++) {
          if (ary[i] > ary[i + 1]) {
            return false;
          }
        }
        return true;
      }
}