// 120 #include using namespace std; int t; struct node { int l, r, d; } arm[200005]; map qsum; int n; bool check(int now) { pair pre; for (auto k : qsum) { if (pre.first < now && k.first >= now) { return k.second % 2; } pre = k; } } int main() { scanf("%d", &t); while (t--) { scanf("%d", &n); int maxr = 0; qsum.clear(); for (int i = 1; i <= n; ++i) { scanf("%d%d%d", &arm[i].l, &arm[i].r, &arm[i].d); for (int j = arm[i].l; j <= arm[i].r; j += arm[i].d) { qsum[j] += (j - arm[i].l + arm[i].d) / arm[i].d; maxr = max(maxr, j); } } if (qsum[maxr] % 2 == 0) puts("There's no weakness."); else { int l = 0, r = maxr, mid; while (l < r) if (check(mid)) r = mid; else l = mid + 1; printf("%d\n", mid); } } return 0; }