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

typedef long long ll;
typedef pair<int, int> man; // time, sat;

const int C = (1 << 16);

ll S[C];
man M[110];

int main() {
  int N;
  while (cin >> N && N) {
    // 初期化
    fill(S, S+C, 0);
    // 男の入力処理
    for (auto i=0; i<N; i++) {
      int Z;
      int L;
      cin >> Z >> L;
      int time = 0;
      for (auto j=0; j<Z; j++) {
	int s, e;
	cin >> s >> e;
	s -= 6;
	e -= 6;
	for (auto k=s; k<e; k++) {
	  time |= 1 << k;
	}
      }
      M[i] = make_pair(time, L);
    }
    // 動的計画法
    for (auto i=0; i<N; i++) {
      for (auto j=C-1; j>=0; j--) {
	if ((j & M[i].first) == 0) {
	  int dst = j | M[i].first;
	  S[dst] = max(S[dst], S[j]+M[i].second);
	}
      }
    }
    cout << S[C-1] << endl;
  }
}