#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define FOR(i,k,n) for (int (i)=(k); (i)<(n); ++(i)) #define rep(i,n) FOR(i,0,n) #define pb push_back #define eb emplace_back #define all(v) begin(v), end(v) #define debug(x) cerr<< #x <<": "< i_i; typedef pair p_i; typedef vector vi; typedef vector > vvi; typedef vector vll; typedef vector > vvll; typedef vector vc; typedef vector > vvc; typedef vector vd; typedef vector > vvd; template using vv=vector >; typedef deque di; typedef deque > ddi; // cout vector template ostream& operator<<(ostream& s, const vector& v) { int len = v.size(); for (int i = 0; i < len; ++i) { s << v[i]; if (i < len - 1) s << "\t"; } return s; } // cout 2-dimentional vector template ostream& operator<<(ostream& s, const vector< vector >& vv) { int len = vv.size(); for (int i = 0; i < len; ++i) { s << vv[i] << endl; } return s; } int main() { int n; cin >> n; vi a(n); rep (i, n) { cin >> a[i]; } int current = n; for (int i = n-1; i >= 0; --i) { if ( a[i] == current ) { current -= 1; } } printf("%d\n", current); return 0; }