#include <bits/stdc++.h>
using namespace std;
const int maxn = 4e5 + 100;
vector<int> vec[maxn];
int n, m, k;
int d[maxn], cnt;
bool vis[maxn];
void dfs(int x) {
  vis[x] = 1;
  d[++cnt] = x;
  for (int i = 0; i < vec[x].size(); i++) {
    if (vis[vec[x][i]]) continue;
    dfs(vec[x][i]);
    d[++cnt] = x;
  }
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= m; i++) {
    int u, v;
    scanf("%d%d", &u, &v);
    vec[u].push_back(v);
    vec[v].push_back(u);
  }
  dfs(1);
  int x = (2 * n + k - 1) / k;
  for (int i = 1; i <= k; i++) {
    int c = min(x, cnt);
    if (c == 0) {
      cout << "1 1" << endl;
      continue;
    }
    cout << c << " ";
    for (int i = 1; i <= c && cnt != 0; i++, cnt--) {
      cout << d[cnt] << " ";
    }
    cout << endl;
  }
  return 0;
}
