#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

int dp[1<<16];

int main()
{   
    int N, M, L;
    
    while(cin >> N, N) {

	int res = 0;
	memset(dp, 0, sizeof(dp));
	
	for(int i=0; i<N; i++) {
	    cin >> M >> L;

	    int sb = 0;
	    for(int j=0; j<M; j++) {
		int s,e;
		cin >> s >> e;
		s -= 6; e -= 6;
		
		for(int k=s; k<e; k++)
		    sb |= (1<<k);
	    }

	    for(int k=0; k<(1<<16); k++) {
		if(sb&k) continue;
		dp[sb|k] = max(dp[sb|k], dp[k] + L);
		res = max(res, dp[sb|k]);
	    }
	}

	cout << res << endl;
	
    }
}