#include <bits/stdc++.h>
using namespace std;
int d[1000005];
pair<int, int> e[1000005];
int del[1000005];
int main(int argc, char** argv) {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) scanf("%d%d", &e[i].first, &e[i].second);
  int G = min(m, m - (n + m - 1) / 2 + 1);
  while (1) {
    memset(d, 0, sizeof d), memset(del, 0, sizeof del);
    int cnt = 0;
    for (int i = 1; i <= m; i++) ++d[e[i].first], ++d[e[i].second];
    for (int i = 1; i <= n; i++) d[i] >>= 1;
    random_shuffle(e + 1, e + m + 1);
    for (int i = 1; i <= m; i++) {
      if (d[e[i].first] && d[e[i].second]) {
        --d[e[i].first], --d[e[i].second];
        del[i] = 1;
        ++cnt;
      }
    }
    if (cnt >= G) {
      printf("%d\n", m - cnt);
      for (int i = 1; i <= m; i++) {
        if (!del[i]) printf("%d %d\n", e[i].first, e[i].second);
      }
      return 0;
    }
  }
  return 0;
}
