#include<bits/stdc++.h>
#define f1(i, n) for(ll i=1;i<=n;++i)
#define f0(i, n) for(ll i=0;i<n;++i)
#define ull unsigned long long
#define ll long long
#define rev(a) reverse(a.begin(),a.end())
#define all(x) x.begin(),x.end()
#define so(A, n) sort(A+1, A+n+1)
using namespace std;
const int maxn = 200010;
const int N = 1e6 + 1;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n;
cin >> n;
if (n <= 1e3) {
int A[n + 1];
f1(i, n) {
cin >> A[i];
}
int cnt = 0;
while (1) {
bool check = false;
for (int i = 1; i < n; ++i) {
if (A[i] > A[i + 1]) {
swap(A[i], A[i + 1]);
for (int j = 1; j <= n; ++j) cout << A[j] << " ";
cout << endl;
check = true;
cnt++;
}
}
if (!check) break;
}
cout << cnt;
}
else
{
pair<int, int> A[n + 1];
f1(i, n) {
cin >> A[i].first;
A[i].second = i;
}
sort(A + 1, A + n + 1);
set<int> se;
int res = 0;
se.insert(A[1].second);
for (int i = 2; i <= n; ++i) {
set<int>::iterator it = se.upper_bound(A[i].second);
res += abs(int(se.size() - distance(se.begin(), it)));
se.insert(A[i].second);
}
cout << res;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmMShpLCBuKSBmb3IobGwgaT0xO2k8PW47KytpKQojZGVmaW5lIGYwKGksIG4pIGZvcihsbCBpPTA7aTxuOysraSkKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgcmV2KGEpIHJldmVyc2UoYS5iZWdpbigpLGEuZW5kKCkpCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSx4LmVuZCgpCiNkZWZpbmUgc28oQSwgbikgc29ydChBKzEsIEErbisxKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgbWF4biA9IDIwMDAxMDsKY29uc3QgaW50IE4gPSAxZTYgKyAxOwppbnQgbWFpbigpCnsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwoJaW50IG47CgljaW4gPj4gbjsKCWlmIChuIDw9IDFlMykgewoJCWludCBBW24gKyAxXTsKCQlmMShpLCBuKSB7CgkJCWNpbiA+PiBBW2ldOwoJCX0KCQlpbnQgY250ID0gMDsKCQl3aGlsZSAoMSkgewoJCQlib29sIGNoZWNrID0gZmFsc2U7CgkJCWZvciAoaW50IGkgPSAxOyBpIDwgbjsgKytpKSB7CgkJCQlpZiAoQVtpXSA+IEFbaSArIDFdKSB7CgkJCQkJc3dhcChBW2ldLCBBW2kgKyAxXSk7CgkJCQkJZm9yIChpbnQgaiA9IDE7IGogPD0gbjsgKytqKSBjb3V0IDw8IEFbal0gPDwgIiAiOwoJCQkJCWNvdXQgPDwgZW5kbDsKCQkJCQljaGVjayA9IHRydWU7CgkJCQkJY250Kys7CgkJCQl9CgkJCX0KCQkJaWYgKCFjaGVjaykgYnJlYWs7CgkJfQoJCWNvdXQgPDwgY250OwoJfQoJZWxzZQoJewoJCXBhaXI8aW50LCBpbnQ+IEFbbiArIDFdOwoJCWYxKGksIG4pIHsKCQkJY2luID4+IEFbaV0uZmlyc3Q7CgkJCUFbaV0uc2Vjb25kID0gaTsKCQl9CgkJc29ydChBICsgMSwgQSArIG4gKyAxKTsKCQlzZXQ8aW50PiBzZTsKCQlpbnQgcmVzID0gMDsKCQlzZS5pbnNlcnQoQVsxXS5zZWNvbmQpOwoJCWZvciAoaW50IGkgPSAyOyBpIDw9IG47ICsraSkgewoJCQlzZXQ8aW50Pjo6aXRlcmF0b3IgaXQgPSBzZS51cHBlcl9ib3VuZChBW2ldLnNlY29uZCk7CgkJCXJlcyArPSBhYnMoaW50KHNlLnNpemUoKSAtIGRpc3RhbmNlKHNlLmJlZ2luKCksIGl0KSkpOwoJCQlzZS5pbnNlcnQoQVtpXS5zZWNvbmQpOwoJCX0KCQljb3V0IDw8IHJlczsKCX0KCgoKCglyZXR1cm4gMDsKfQoK