#include <bits/stdc++.h>
using namespace std;
vector<bool> b(200005);
vector<int> ans, ans1;
vector<vector<int>> v, v1;
void dfs(int n) {
  b[n] = true;
  for (int i : v[n])
    if (!b[i]) {
      v1[n].push_back(i);
      v1[i].push_back(n);
      dfs(i);
    }
}
void solve(int n, int m, bool p) {
  if (p)
    ans.push_back(n + 1);
  else
    ans1.push_back(n + 1);
  for (int i : v1[n])
    if (i != m) solve(i, n, !p);
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0);
  int t;
  cin >> t;
  while (t--) {
    int n, m, num, num1;
    cin >> n >> m;
    v = v1 = vector<vector<int>>(n);
    for (int i = 0; i < n; ++i) b[i] = 0;
    while (m--) {
      cin >> num >> num1;
      v[--num].push_back(--num1);
      v[num1].push_back(num);
    }
    dfs(0);
    solve(0, -1, 0);
    if (ans.size() < ans1.size()) {
      cout << ans.size() << '\n';
      for (int i : ans) cout << i << " ";
      cout << '\n';
    } else {
      cout << ans1.size() << '\n';
      for (int i : ans1) cout << i << " ";
      cout << '\n';
    }
    if (t) {
      v.clear();
      v1.clear();
      ans.clear();
      ans1.clear();
    }
  }
}
