void Quick_Sort(long *arr, long begin, long end){
if(begin > end)
return;
int tmp = arr[begin];
int i = begin;
int j = end;
while(i != j){
while(arr[j] >= tmp && j > i)
j--;
while(arr[i] <= tmp && j > i)
i++;
if(j > i){
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
arr[begin] = arr[i];
arr[i] = tmp;
Quick_Sort(arr, begin, i-1);
Quick_Sort(arr, i+1, end);
}
int main(){
long n,f[200000],i;
int cnt=0;
scanf("%d",&n);
for(i=0;i
scanf("%d",&f[i]);
}
Quick_Sort(f,0,n);
//打印
for(i=1;i
if(i==1) {printf("%d ",f[i]);cnt++;}
else{if(f[i]!=f[i-1]) {
printf("%d\n",cnt);
printf("%d ",f[i]);cnt=1;}
else cnt++;
}
}
printf("%d",cnt);
return 0;
}