import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int[] nums = new int[N];
//利用hashMap存储所有元素原来的位置
Map<Integer, Integer> map = new HashMap<>();
for(int i=0; i<N; i++){
nums[i] = scanner.nextInt();
map.put(nums[i], i);
}
//重新排序
Arrays.sort(nums);
//计数器
int res =0;
//遍历排序好的元素,此时可以这么理解:
//我们在不断的抽出第一小的数据,第二小的数据....
//将每次得到的数据与它的后面一个进行比较,比较什么呢? 比较它们原来在数组中的位置,如果发生了颠倒,则说明更大的那个数字发生了一次替换,
//此时计数器加一,并且更重要的是,i+1的hash值也要变,变为一个比所有value都大的值,示意它现在是新的末尾
//也就是说,其实这个hashMap是一个动态的过程,我们在不断的维护他
for(int i=0; i<nums.length-1; i++){
if(map.get(nums[i]) > map.get(nums[i+1])){
map.put(nums[i+1], N++);
res++;
}
}
System.out.println(res);
}
}