```#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int lds(vector<int>& v)
{
int n = v.size();
vector<int>dp(n, 1);
vector<int>prve(n, -1);
for (int i = 1;i < n;i++)
for (int j = 0;j < i;j++)
{
if (v[i] > v[j])
continue;
if (dp[j] + 1 > dp[i])
{
dp[i] = dp[j] + 1;
prve[i] = j;
}
}
int max = max_element(dp.begin(), dp.end()) - dp.begin();
int p = max;
while (p != -1)
{
v.erase(v.begin() + p);
p = prve[p];
}
return dp[max];
}
int main()
{
int n;
vector<int>v;
while(scanf("%d",&n)!=EOF)
v.push_back(n);
cout << lds(v) << endl;
int cnt = 1;
while (v.size() > 0)
{
int x = lds(v);
cnt++;
}
cout << cnt;
return 0;
}