#include <stdio.h>
int main()
{
int a[100005], x, n = 0, len = 0, dp[100005] = { 0 },f[1005],ans=1;
char c;
dp[0] = 500000;
do
{
scanf("%d", &x);
c = getchar();
a[++n] = x;
}
while (c != '\n');
for (int i = 0; i <= n; i++)
{
f[i] = 500000;
}
for (int i = 1; i <= n; i++)
{
if (a[i] <= dp[len])
{
dp[++len] = a[i];
}
else
{
for (int j = len - 1; j >= 0; j--)
{
if (dp[j] >= a[i])
{
dp[j + 1] = a[i];
break;
}
}
}
}
printf("%d\n",len);
for (int i = 1; i <= n; i++)
{
if (a[i] <= f[1])
{
f[1] = a[i];
}
else
{
for (int j = 2; j <= n; j++)
{
if (a[i] <= f[j])f[j] = a[i];
if (j > ans)ans = j;
break;
}
}
}
printf("%d",ans);
return 0;
}