B. Beautiful Paintings

time limit per test

memory limit per test

input

output

n pictures delivered for the new exhibition. The i-th painting has beauty ai. We know that a visitor becomes happy every time he passes from a painting to a more beautiful one.

a in any order. What is the maximum possible number of indices i (1 ≤ i ≤ n - 1), such that ai + 1 > ai.

Input

n (1 ≤ n ≤ 1000) — the number of painting.

a1, a2, ..., an (1 ≤ ai), where ai means the beauty of the i-th painting.

Output

ai + 1 > ai, after the optimal rearrangement.

Examples

input

5
20 30 10 50 40

output

4

input

4
200 100 100 200

output

2


#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
#include <stdio.h>

using namespace std;
int a[1005];
int b[1005];
int tag[1005];
int tag2[1005];
int num[1005];
int n;
int main()
{
scanf("%d",&n);
memset(tag2,0,sizeof(tag2));
int cnt=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(!tag2[a[i]])
{
tag2[a[i]]=1;
b[++cnt]=a[i];
}
}
sort(b+1,b+cnt+1);
for(int i=1;i<=cnt;i++)
tag[b[i]]=i;
memset(num,0,sizeof(num));
for(int i=1;i<=n;i++)
num[tag[a[i]]]++;
int ans=0;
for(int i=1;i<=cnt;i++)
{
for(int j=i-1;j>=1;j--)
{
if(num[j]<=num[i])
{
ans+=num[j];
num[j]=0;
num[i]-=num[j];
}
else
{
ans+=num[i];
num[i]=0;
num[j]-=num[i];

}
}

}
printf("%d\n",ans);
return 0;

}