#include <bits/stdc++.h>
#include "testlib.h"
 
using namespace std;
#define all(x) x.begin(), x.end()
// const int SUMK = 100'000;
const long long MAXM = 200'000'000'000'000LL;
 
int main(int argc, char** argv) {
    registerGen(argc, argv, 1);
    int T = opt<int>("T", 1000);
    int MAXA = opt<int>("MAXA", 2500);
    long long MIN_VAL = opt<long long>("MIN_VAL", 1);
    // long long MAX_VAL = opt<long long>("MAX_VAL", MAXM);
    // В этой задаче в rand тестах неприменимо
    println(T);
    vector<int> nlist = rnd.partition(T, 200'000, 1);
    for (int i = 0; i < T; i++){
        int n = nlist[i], a = rnd.next(1, MAXA);
        long long M = rnd.next(3LL * n * a, MAXM);
        while ((long long) 1e12 * n < M / (2 * a) + 1) {
            M = rnd.next(3LL * n * a, M - 1);
        }
        long long sumb = rnd.next(max((M) / (2 * a) + 1, MIN_VAL * n), (long long) 1e12 * n);
        vector<long long> b = rnd.partition(n, sumb, MIN_VAL);
        println(n, a, M);
        println(b);
    }
    return 0;
}
