#include <bits/stdc++.h>
const int N = 205;
int n, m;
std::set<int> E[N];
void add(int u, int v) {
  E[u].insert(v);
  E[v].insert(u);
}
std::vector<std::pair<int, int> > ans;
void dfs(int u) {
  while (!E[u].empty()) {
    int v = *E[u].begin();
    E[u].erase(v);
    E[v].erase(u);
    ans.push_back(std::pair<int, int>(u, v));
    dfs(v);
  }
}
int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    scanf("%d%d", &n, &m);
    for (int i = 0; i < m; ++i) {
      int u, v;
      scanf("%d%d", &u, &v);
      add(u, v);
    }
    for (int i = 1; i <= n; ++i) {
      if (E[i].size() & 1) {
        add(0, i);
      }
    }
    printf("%d\n", n - E[0].size());
    ans.clear();
    for (int i = 1; i <= n; ++i) {
      dfs(i);
    }
    for (int i = 0; i < ans.size(); ++i) {
      if (ans[i].first && ans[i].second) {
        printf("%d %d\n", ans[i].first, ans[i].second);
      }
    }
  }
}
