import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class TwoTeams { private static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); public static String readLine() { try { return reader.readLine(); } catch (IOException e) { return null; } } public static int solve(int n, int index, int whiteIndex, int blackIndex, int[][][] dp, int[] elements) { if (index == n) { return 0; } if (dp[index][whiteIndex][blackIndex] != 0) { return dp[index][whiteIndex][blackIndex]; } int secondaryState = 0; int tertiaryState = 0; if (whiteIndex == n || elements[index] > elements[whiteIndex]) { secondaryState = 1 + solve(n, index + 1, index, blackIndex, dp, elements); } if (blackIndex == n || elements[index] < elements[blackIndex]) { tertiaryState = 1 + solve(n, index + 1, whiteIndex, index, dp, elements); } dp[index][whiteIndex][blackIndex] = Math.max(solve(n, index + 1, whiteIndex, blackIndex, dp, elements), Math.max(secondaryState, tertiaryState)); return dp[index][whiteIndex][blackIndex]; } public static void main(String[] args) { int n = Integer.parseInt(readLine()); long start = System.currentTimeMillis(); int[][][] dp = new int[257][257][257]; String[] unparsed = readLine().split("\\s"); int[] parsed = new int[n]; for (int i = 0; i < unparsed.length; i++) { parsed[i] = Integer.parseInt(unparsed[i]); } System.out.println(n - solve(n, 0, n, n, dp, parsed)); long end = System.currentTimeMillis(); System.out.println(end - start); } }