#include<iostream>
#include<algorithm>
using namespace std;
int dp[1<<16],n;
int L[100],t[100];
int main()
{
	while(cin>>n,n)
	{
		for(int i=0;i<n;i++)
		{
			t[i]=0;
			int m;
			cin>>m>>L[i];
			for(;m--;)
			{
				int l,r;cin>>l>>r;
				l-=6;r-=6;
				for(int j=l;j<r;j++)
				{
					t[i]|=1<<j;
				}
			}
		}
		for(int i=0;i<1<<16;i++)dp[i]=0;
		for(int i=0;i<1<<16;i++)
		{
			for(int j=0;j<n;j++)
			{
				if(~i&t[j])continue;
				dp[i]=max(dp[i],L[j]+dp[i&~t[j]]);
			}
		}
		cout<<dp[(1<<16)-1]<<endl;
	}
}

