#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
//英语 看博友分析 抄博友程序 动态规划 背
int da[5008];
int dp[5008];//以da[i]结尾的绝对降序序列的最大长度
int f[5008];//以da[i]结尾的绝对降序序列的最大长度 对应个数
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&da[i]);
dp[i]=1;
}
int jg=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<i;j++)
{
if(da[i]<da[j])
dp[i]=max(dp[i],dp[j]+1);
}
jg=max(jg,dp[i]);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<i;j++)
{
if(da[i]==da[j])
{
f[j]=0;
}
}
if(dp[i]==1)
{
f[i]=1;
}else
{
for(int j=0;j<i;j++)
{
if(da[j]>da[i] && dp[j]+1==dp[i])
{
f[i]=f[i]+f[j];
}
}
}
}
int js=0;
for(int i=0;i<n;i++)
{
if(dp[i]==jg)
{
js=js+f[i];
}
}
printf("%d %d\n",jg,js);
return 0;
}