#include using namespace std; using ll = long long; ll const m = 998244353; ll mpow(ll a, ll n) { return (n ? (mpow((a * a) % m, n >> 1) * (n & 1 ? a : 1ll)) % m : 1ll); } int main () { int N = 30; std::vector>> X; int t = 2; vector P(N); for (int i = 0; i < N; i ++) { for (int j = 0; j < N; j ++) { P[j] = (i + j) % N + 1; } X.emplace_back(t, P); } t = 4; for (int i = 1; i <= N; i ++) { ll iv = 0; ll pw = 1; for (int j = 0; j < N; j ++) { iv += pw; iv %= m; pw = (pw * i) % m; } X.emplace_back(t, vector{mpow(iv, m - 2)}); } t = 4; for (int i = 1; i <= N; i ++) { X.emplace_back(t, vector{mpow(N, m - 2)}); } cout << X.size() << endl; for (auto& [t, v] : X) { cout << t << endl; for (auto& a : v) { cout << a << (a == v.back() ? "" : " "); } cout << endl; } }