#include <iostream>
#define ll long long//因为a[i]范围超过int类型,所以要用long long存储
using namespace std;
const int N=5e5+5;
int n;
ll cnt;
ll arr[N],temp[N];//temp数组为过度数组
void arr_add(ll arr[],int left,int mid,int right)//归并
{
if(left>=right) return;
int i=left,j=mid+1,k=0;
while(i<=mid&&j<=right)//左侧,右侧数组比较较小元素,依次放入temp数组中(此时,左右数组均未完成排序)
{
if(arr[i]<=arr[j])//如果左边的元素小于右边的元素,那么就放到过度数组中
{
temp[k++]=arr[i++];
}
else
{
temp[k++]=arr[j++];
cnt+=mid+1-i;//记录逆序数,详见下图
}
}
while(i<=mid)//右侧数组已排序完成,左侧数组还有剩余,将左侧数组依次放入temp数组中
{
temp[k++]=arr[i++];
}
while(j<=right)//左侧数组已排序完成,右侧数组还有剩余,将右侧数组依次放入temp数组中
{
temp[k++]=arr[j++];
}
for(int i=0;i<k;i++)
{
arr[i+left]=temp[i];
}
}
void merge_sort(ll arr[],int left,int right)//分割
{
if(left>=right) return;
int mid=(left+right)>>1;
merge_sort(arr,left,mid);
merge_sort(arr,mid+1,right);
arr_add(arr,left,mid,right);
}
int main()
{
while(cin >> n && n)
{
cnt=0;
for(int i=0;i<n;i++)
{
cin >> arr[i];
}
merge_sort(arr,0,n-1);
cout << cnt << endl;
}
return 0;
}