#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
struct M{int a,b;double c;};
int n,a[N],f[N],s[N],l[N],x,y;
signed main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=n;i>=1;i--)
{
f[i]=1;s[i]=0;
for(int j=i+1;j<=n;j++)
if(a[i]>a[j])
f[i]=max(f[i],f[j]+1);
for(int j=i+1;j<=n;j++)
if(a[i]>a[j]&&f[j]==f[i]-1&&l[a[j]]!=i)
s[i]+=s[j],l[a[j]]=i;
if(!s[i])s[i]=1;
}
for(int i=1;i<=n;i++)if(f[i]>x)x=f[i];
for(int i=1;i<=n;i++)if(f[i]==x&&l[a[i]]!=n+1)y+=s[i],l[a[i]]=n+1;
cout<<x<<' '<<y;
return 0;
}