#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<vector>
#include<queue>
#include<cmath>
#define INF 0x3f3f3f3f
#define ll long long
#define mem(ar,num) memset(ar,num,sizeof(ar))
#define me(ar) memset(ar,0,sizeof(ar))
#define lowbit(x) (x&(-x))
#define IOS ios::sync_with_stdio(false)
#define DEBUG cout<<endl<<"DEBUG"<<endl;
using namespace std;
int tree[500010], temp[500010], n;
long long ans;
struct node {
int num, val;
} a[500010];
inline bool cmp(node q, node w) {
if(q.val == w.val)
return q.num < w.num;
return q.val < w.val;
}
inline void insert(int p, int d) {
for(; p <= n; p += p & -p)
tree[p] += d;
}
inline int query(int p) {
int sum = 0;
for(; p; p -= p & -p)
sum += tree[p];
return sum;
}
int main() {
while(cin >> n && n) {
ans = 0;
me(tree);
for(int i = 1; i <= n; i++)
scanf("%d", &a[i].val), a[i].num = i;
sort(a + 1, a + 1 + n, cmp);
for(int i = 1; i <= n; i++)
temp[a[i].num] = i;
for(int i = 1; i <= n; i++) {
insert(temp[i], 1);
ans += i - query(temp[i]);
}
printf("%lld\n", ans);
}
return 0;
}