#include <bits/stdc++.h>
using namespace std;
const int MAXN = (int)1e5 + 5;
vector<int> tests[2], cells[2];
string name[MAXN];
int tp[MAXN], sz[2];
int cell[MAXN];
int idx[MAXN];
int misplaced[MAXN];
int owner[MAXN];
int n;
void solve() {
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    cin >> name[i] >> tp[i];
    tp[i] ^= 1;
    ++sz[tp[i]];
  }
  for (int i = 1; i <= n; ++i) {
    bool ok = 1;
    for (char c : name[i]) {
      ok &= ('0' <= c && c <= '9');
    }
    ok &= (name[i][0] != '0');
    int x = -1;
    if (ok) {
      x = atoi(name[i].c_str());
    }
    if (1 <= x && x <= sz[0]) {
      owner[x] = i;
      if (tp[i] == 0) {
        misplaced[i] = 1;
        cell[x] = 1;
      } else {
        cell[x] = 2;
        misplaced[i] = 2;
        idx[i] = x;
      }
    } else if (sz[0] + 1 <= x && x <= n) {
      owner[x] = i;
      if (tp[i] == 0) {
        cell[x] = 2;
        misplaced[i] = 2;
        idx[i] = x;
      } else {
        misplaced[i] = 1;
        cell[x] = 1;
      }
    }
  }
  vector<pair<string, string>> ans;
  if (*min_element(cell + 1, cell + n + 1) > 0) {
    int ptr = 1;
    while (ptr <= n && cell[ptr] == 1) {
      ++ptr;
    }
    if (ptr > n) {
      printf("0\n");
      return;
    }
    ans.emplace_back(to_string(ptr), "zzzzz0");
    name[owner[ptr]] = "zzzzz0";
    misplaced[owner[ptr]] = 0;
    cell[ptr] = 0;
  }
  for (int x : {0, 2}) {
    for (int i = 1; i <= n; ++i) {
      if (misplaced[i] == x) {
        tests[tp[i]].push_back(i);
      }
    }
  }
  for (int i = 1; i <= n; ++i) {
    if (cell[i] == 0) {
      cells[i > sz[0]].push_back(i);
    }
  }
  if (0) {
    for (int i = 0; i < 2; ++i) {
      printf("cell:");
      for (int x : cells[i]) {
        printf(" %d", x);
      }
      printf("\n");
      printf("tests:");
      for (int x : tests[i]) {
        printf(" %d", x);
      }
      printf("\n");
    }
  }
  while (!tests[0].empty() || !tests[1].empty()) {
    for (int i = 0; i < 2; ++i) {
      if (!tests[i].empty() && !cells[i].empty()) {
        int a = tests[i].back();
        int b = cells[i].back();
        tests[i].pop_back();
        cells[i].pop_back();
        ans.emplace_back(name[a], to_string(b));
        if (misplaced[a] == 2) {
          cells[i ^ 1].push_back(idx[a]);
          misplaced[a] = 0;
          idx[a] = 0;
        }
      }
    }
  }
  cout << ans.size() << '\n';
  for (auto it : ans) {
    cout << "move " << it.first << ' ' << it.second << '\n';
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int tt = 1;
  while (tt--) {
    solve();
  }
  return 0;
}
