#include <bits/stdc++.h>
using namespace std;
int main()
{
int N;//苹果树的棵树
cin>>N;
vector<vector<int>> apples;//存储每一颗苹果树的所有信息
for(int i=0;i<N;i++)
{
int n;
cin>>n;
vector<int> tmp;
for(int j=0;j<n;j++)
{
int num;
cin>>num;
tmp.push_back(num);
}
apples.push_back(tmp);
}
long long T=0;//操作结束后剩余的苹果总数
int D=0;//发生落果的苹果树数量
int E=0;//连续三棵树落果则加一
vector<int> luoguo;//存储发生落果的果树编号
for(int i=0;i<N;i++)
{
int sum=apples[i][0];
int flag=0;
for(int j=1;j<apples[i].size();j++)
{
if(apples[i][j]<=0)//如果为负数则是疏果操作
sum+=apples[i][j];
else if(sum!=apples[i][j])//否则就是可能落果
{
sum=apples[i][j];
if(flag==0)//每棵树的编号只加一次
{
luoguo.push_back(i+1);
flag=1;
}
}
}
T+=sum;
}
D=luoguo.size();
if(D<3)
E=0;
else
{
for(int i=0;i<D;i++)
{
int a=luoguo[i];
int b=(luoguo[(i+1)%D])%N;
int c=(luoguo[(i+2)%D])%N;
if((a+1)%N!=b)
continue;
else if((a+2)%N!=c)
i=i+1;
else
{
//cout<<a<<" "<<b<<" "<<c<<endl;
E++;
}
}
}
cout<<T<<" "<<D<<" "<<E;
return 0;
}
/*
4
4 74 -7 -12 -5
5 73 -8 -6 59 -4
5 76 -5 -10 60 -2
5 80 -6 -15 59 0
5
4 10 0 9 0
4 10 -2 7 0
2 10 0
4 10 -3 5 0
4 10 -1 8 0
*/