#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m, k;
cin >> n >> m >> k;
// Build adjacency list
vector<vector<int>> adj(n+1);
for(int i = 0; i < m; i++){
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
// Iterative DFS to produce the Euler‐tour of the spanning tree
vector<bool> seen(n+1,false);
vector<int> euler;
euler.reserve(2*n);
// stack entries: (node, next child index)
vector<pair<int,int>> st;
st.reserve(n);
st.emplace_back(1, 0);
seen[1] = true;
while(!st.empty()){
auto &top = st.back();
int u = top.first;
int &ci = top.second;
if(ci == 0){
// first time visiting u
euler.push_back(u);
}
if(ci < (int)adj[u].size()){
int v = adj[u][ci++];
if(!seen[v]){
seen[v] = true;
st.emplace_back(v, 0);
}
} else {
// finished all children of u
euler.push_back(u);
st.pop_back();
}
}
// We have at most 2n-1 entries
int S = (int)euler.size();
// ceil( S / k )
int limit = (S + k - 1) / k;
// Now print exactly k routes
int p = 0;
for(int i = 0; i < k; i++){
if(p < S){
int sz = min(limit, S - p);
cout << sz;
for(int j = 0; j < sz; j++, p++){
cout << ' ' << euler[p];
}
cout << "\n";
} else {
// No more real entries: trivial route at node 1
cout << "1 1\n";
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgbiwgbSwgazsKICAgIGNpbiA+PiBuID4+IG0gPj4gazsKCiAgICAvLyBCdWlsZCBhZGphY2VuY3kgbGlzdAogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBhZGoobisxKTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBtOyBpKyspewogICAgICAgIGludCB1LCB2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgfQoKICAgIC8vIEl0ZXJhdGl2ZSBERlMgdG8gcHJvZHVjZSB0aGUgRXVsZXLigJB0b3VyIG9mIHRoZSBzcGFubmluZyB0cmVlCiAgICB2ZWN0b3I8Ym9vbD4gc2VlbihuKzEsZmFsc2UpOwogICAgdmVjdG9yPGludD4gZXVsZXI7CiAgICBldWxlci5yZXNlcnZlKDIqbik7CgogICAgLy8gc3RhY2sgZW50cmllczogKG5vZGUsIG5leHQgY2hpbGQgaW5kZXgpCiAgICB2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gc3Q7CiAgICBzdC5yZXNlcnZlKG4pOwogICAgc3QuZW1wbGFjZV9iYWNrKDEsIDApOwogICAgc2VlblsxXSA9IHRydWU7CgogICAgd2hpbGUoIXN0LmVtcHR5KCkpewogICAgICAgIGF1dG8gJnRvcCA9IHN0LmJhY2soKTsKICAgICAgICBpbnQgdSA9IHRvcC5maXJzdDsKICAgICAgICBpbnQgJmNpID0gdG9wLnNlY29uZDsKICAgICAgICBpZihjaSA9PSAwKXsKICAgICAgICAgICAgLy8gZmlyc3QgdGltZSB2aXNpdGluZyB1CiAgICAgICAgICAgIGV1bGVyLnB1c2hfYmFjayh1KTsKICAgICAgICB9CiAgICAgICAgaWYoY2kgPCAoaW50KWFkalt1XS5zaXplKCkpewogICAgICAgICAgICBpbnQgdiA9IGFkalt1XVtjaSsrXTsKICAgICAgICAgICAgaWYoIXNlZW5bdl0pewogICAgICAgICAgICAgICAgc2Vlblt2XSA9IHRydWU7CiAgICAgICAgICAgICAgICBzdC5lbXBsYWNlX2JhY2sodiwgMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBmaW5pc2hlZCBhbGwgY2hpbGRyZW4gb2YgdQogICAgICAgICAgICBldWxlci5wdXNoX2JhY2sodSk7CiAgICAgICAgICAgIHN0LnBvcF9iYWNrKCk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIFdlIGhhdmUgYXQgbW9zdCAybi0xIGVudHJpZXMKICAgIGludCBTID0gKGludClldWxlci5zaXplKCk7CiAgICAvLyBjZWlsKCBTIC8gayApCiAgICBpbnQgbGltaXQgPSAoUyArIGsgLSAxKSAvIGs7CgogICAgLy8gTm93IHByaW50IGV4YWN0bHkgayByb3V0ZXMKICAgIGludCBwID0gMDsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBrOyBpKyspewogICAgICAgIGlmKHAgPCBTKXsKICAgICAgICAgICAgaW50IHN6ID0gbWluKGxpbWl0LCBTIC0gcCk7CiAgICAgICAgICAgIGNvdXQgPDwgc3o7CiAgICAgICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBzejsgaisrLCBwKyspewogICAgICAgICAgICAgICAgY291dCA8PCAnICcgPDwgZXVsZXJbcF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY291dCA8PCAiXG4iOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIE5vIG1vcmUgcmVhbCBlbnRyaWVzOiB0cml2aWFsIHJvdXRlIGF0IG5vZGUgMQogICAgICAgICAgICBjb3V0IDw8ICIxIDFcbiI7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9Cg==