#include <bits/stdc++.h>
using namespace std;
const long long LINF = 0x3f3f3f3f3f3f3f3f;
const long long NLINF = 0xf7f7f7f7f7f7f7f7;
const int INF = 0x3f3f3f3f, NINF = 0xf7f7f7f7;
const int MOD1 = 1e9 + 7, MOD2 = 1e9 + 9;
const int N = 210;
int t, n, m, mark[N], deg[N], deg_[N];
vector<int> adj[N], adj_[N];
void make_tour(int beg) {
  stack<int> p;
  vector<int> order;
  int curv = beg;
  p.push(curv);
  while (!p.empty()) {
    if (deg_[curv]) {
      p.push(curv);
      int nxt = adj_[curv].back();
      adj_[curv].pop_back();
      adj_[nxt].erase(find(adj_[nxt].begin(), adj_[nxt].end(), curv));
      deg_[curv]--, deg_[nxt]--;
      curv = nxt;
    } else {
      order.push_back(curv);
      curv = p.top();
      p.pop();
    }
  }
  for (int i = order.size() - 1; i > 0; i--) {
    auto it1 = find(adj[order[i]].begin(), adj[order[i]].end(), order[i - 1]);
    auto it2 =
        find(adj[order[i - 1]].begin(), adj[order[i - 1]].end(), order[i]);
    if (it1 != adj[order[i]].end()) {
      adj[order[i]].erase(it1), adj[order[i - 1]].erase(it2);
      printf("%d %d\n", order[i], order[i - 1]);
    }
  }
}
void solve(int v) {
  queue<int> q;
  q.push(v);
  mark[v] = 1;
  int odd_lst = -1;
  while (!q.empty()) {
    int cur = q.front();
    q.pop();
    if (deg[cur] % 2) {
      if (odd_lst != -1) {
        adj_[cur].push_back(odd_lst), adj_[odd_lst].push_back(cur);
        deg_[cur]++, deg_[odd_lst]++;
      } else {
        odd_lst = cur;
      }
    }
    for (auto &u : adj[cur]) {
      if (!mark[u]) {
        mark[u] = 1;
        q.push(u);
      }
    }
  }
  make_tour(v);
}
int main() {
  for (scanf("%d", &t); t--;) {
    scanf("%d%d", &n, &m);
    for (int i = 0; i < N; i++) adj[i].clear();
    memset(deg, 0, sizeof deg);
    memset(mark, 0, sizeof mark);
    for (int i = 1, u, v; i <= m; i++) {
      scanf("%d%d", &u, &v);
      adj[u].push_back(v), adj[v].push_back(u);
      adj_[u].push_back(v), adj_[v].push_back(u);
      deg[u]++, deg[v]++;
      deg_[u]++, deg_[v]++;
    }
    int oddcnt = 0;
    for (int i = 1; i <= n; i++) oddcnt += (deg[i] % 2);
    printf("%d\n", n - oddcnt);
    for (int i = 1; i <= n; i++)
      if (!mark[i]) solve(i);
  }
}
