#include using namespace std; typedef long long ll; long long res = 0; void merge(vector & v, int l, int r) { if (r-l <= 1) return; int mid = l + (r-l)/2; ::merge(v, l, mid); ::merge(v, mid, r); vector tmp; int lId = l, rId = mid; for (int i = l; i < r; i++) { if ((lId < mid && v[lId] < v[rId]) || rId >= r) tmp.push_back(v[lId++]); else tmp.push_back(v[rId++]), res += 1; } for (int i = l; i < r; i++) v[i] = tmp[i-l]; } int main() { ll n; ios::sync_with_stdio(0); while (cin >> n) { res = 0; vector v(n),m(n+7); for (int i = 0; i < n; i++) cin >> v[i]; for (int i = 0; i < n; i++) m[v[i]] = i; for (int i = 0; i < n; i++) { if (i+1 != v[i]) { int bad = v[i]; swap(v[i], v[m[i+1]]); swap(m[i+1], m[bad]); res ++; } } cout << res << endl; } }