#include <bits/stdc++.h>
using namespace std;
const unsigned long long MOD = 1e9 + 7;
const int INF = (int)2e9 + 7;
const long long LINF = (long long)1e18;
const unsigned long long mod1 = 183453789;
const unsigned long long mod2 = 1234567891;
const int P1 = 337, P2 = 263;
template <typename T>
T input() {
  T ans = 0, m = 1;
  char c = ' ';
  while (!((c >= '0' && c <= '9') || c == '-')) c = getchar();
  if (c == '-') m = -1, c = getchar();
  while (c >= '0' && c <= '9') ans = ans * 10 + (c - '0'), c = getchar();
  return ans * m;
}
string nextString(bool flag = false) {
  char ch;
  string ans = "";
  do {
    ch = getchar();
  } while (ch <= ' ');
  while (1) {
    ans += ch;
    ch = getchar();
    if ((!flag && ch <= ' ') || (flag && ch < ' ')) break;
  }
  return ans;
}
char nextChar() {
  char ch;
  do {
    ch = getchar();
  } while (ch <= ' ');
  return ch;
}
void read(string& s) { s = nextString(); }
void read(char& c) { c = nextChar(); }
template <typename T>
void read(T& a) {
  a = input<T>();
}
template <typename T, typename... R>
void read(T& a, R&... r) {
  read(a);
  read(r...);
}
const int N = 2e5 + 10;
int n, m, k;
int ptr = 0;
vector<int> g[N];
vector<int> ans[N];
char u[N];
int rm, capt, R;
void dfs(int v, int p = -1) {
  u[v] = 1;
  for (auto to : g[v]) {
    if (u[to]) continue;
    if (capt == 0) {
      ptr++;
      rm = R - 1;
      ans[ptr].push_back(to);
      capt = (rm > 0);
    } else {
      rm -= 1;
      ans[ptr].push_back(to);
      capt = (rm > 0);
    }
    dfs(to, v);
  }
  if (p == -1) return;
  if (capt) {
    rm -= 1;
    ans[ptr].push_back(p);
    capt = (rm > 0);
  }
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  read(n, m, k);
  for (int i = 0; i < m; ++i) {
    int u, v;
    read(u, v);
    u--, v--;
    g[u].push_back(v);
    g[v].push_back(u);
  }
  R = (2 * n) / k + ((2 * n) % k == 0 ? 0 : 1);
  rm = R - 1, capt = (rm > 0);
  ans[0].push_back(0);
  dfs(0);
  for (int i = 0; i < k; ++i) {
    if (ans[i].size() >= 1) {
      cout << ans[i].size() << " ";
      for (auto j : ans[i]) cout << j + 1 << " ";
      cout << "\n";
    } else {
      cout << 1 << " " << 1 << "\n";
    }
  }
}
