#include <bits/stdc++.h>
using namespace std;
const long long int sz = 2e5;
long long int col[sz], vis[sz];
vector<long long int> adj[sz];
long long int n;
void reset() {
  long long int i;
  for (i = 0; i < n + 14; i++) {
    col[i] = -1;
    adj[i].clear();
    vis[i] = 0;
  }
}
void coloring(long long int n, long long int c) {
  vis[n] = 1;
  col[n] = c;
  for (auto it : adj[n]) {
    if (vis[it] == 0) coloring(it, c ^ 1);
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  long long int i, j, k, len, x, y, z, c, f, flag, p, q, mx, mn, l, r, sum, ans,
      tmp, it, pos, avg, m, cnt;
  long long int t;
  cin >> t;
  while (t--) {
    f = 0;
    flag = 0;
    ans = 0;
    cnt = 0;
    sum = 0;
    mn = LLONG_MAX;
    mx = LLONG_MIN;
    string s;
    cin >> n >> m;
    reset();
    for (i = 0; i < m; i++) {
      cin >> l >> r;
      adj[l].push_back(r);
      adj[r].push_back(l);
    }
    coloring(1, 0);
    vector<long long int> sol1, sol2;
    for (i = 1; i <= n; i++) {
      if (col[i])
        sol1.push_back(i);
      else
        sol2.push_back(i);
    }
    if (sol2.size() < sol1.size()) {
      cout << sol2.size() << "\n";
      for (auto dsp : sol2) cout << dsp << " ";
      cout << "\n";
      ;
    } else {
      cout << sol1.size() << "\n";
      for (auto dsp : sol1) cout << dsp << " ";
      cout << "\n";
      ;
    }
  }
  return 0;
}
