#include<iostream>using namespace std;const int maxn=3e5+5;int num[maxn],l[maxn],r[maxn],f[maxn];int main(){int n;cin>>n;for(int i=1;i<=n;i++){//初始化 l[i]=r[i]=f[i]=0;}for(int i=1;i<=n;i++){cin>>num[i];//如果当前值还未出现,则标记第一次出现的位置 if(l[num[i]]==0) l[num[i]]=i;//不断更新最右边出现的位置 r[num[i]]=i;}int sum=n;int lst=0;//标记上一个出现的数字 int ans=0;//记录最长连续上升序列的长度 for(int i=1;i<=n;i++){if(l[i]==0) {//统计出现的不同数字个数 sum--;continue; }if(l[i]<=r[lst]) f[i]=1;else f[i]=f[lst]+1;ans=max(ans,f[i]);lst=i; }cout<<sum-ans<<endl;return 0;}