#include <bits/stdc++.h>
using namespace std;
int n, i, j, vis[1234567], a[1234567], samp, smp[1234567];
string name[1234567];
queue<int> ns, nt, ys, yt, cs, ct, cz;
vector<pair<int, int> > ans;
int main() {
  ios::sync_with_stdio(false);
  ;
  cin >> n;
  for (i = 1; i <= n; i++) {
    cin >> name[i] >> smp[i];
    samp += smp[i];
    if (name[i][0] == '0') {
      a[i] = n * 4 + i;
      vis[a[i]] = 1;
      continue;
    }
    for (j = 0; j < name[i].size(); j++) {
      if (isdigit(name[i][j]))
        a[i] = a[i] * 10 + name[i][j] - '0';
      else {
        a[i] = n * 4 + i;
        break;
      }
    }
    vis[a[i]] = 1;
  }
  for (i = 1; i <= n; i++) {
    if (smp[i]) {
      if (a[i] > samp && a[i] <= n)
        ns.push(a[i]);
      else if (a[i] < 1 || a[i] > n)
        ys.push(-i);
    } else {
      if (a[i] > 0 && a[i] <= samp)
        nt.push(a[i]);
      else if (a[i] < 1 || a[i] > n)
        yt.push(-i);
    }
  }
  for (i = 1; i <= samp; i++) {
    if (!vis[i]) {
      cs.push(i);
    }
  }
  for (; i <= n; i++) {
    if (!vis[i]) {
      ct.push(i);
    }
  }
  for (; i <= 5 * n; i++) {
    if (!vis[i]) {
      cz.push(i);
    }
  }
  while (!ns.empty() || !nt.empty() || !ys.empty() || !yt.empty()) {
    if (!ns.empty() && !cs.empty()) {
      ans.push_back(make_pair(ns.front(), cs.front()));
      ct.push(ns.front());
      ns.pop();
      cs.pop();
    } else if (!nt.empty() && !ct.empty()) {
      ans.push_back(make_pair(nt.front(), ct.front()));
      cs.push(nt.front());
      nt.pop();
      ct.pop();
    } else if (!ns.empty()) {
      ans.push_back(make_pair(nt.front(), cz.front()));
      cs.push(nt.front());
      yt.push(cz.front());
      nt.pop();
      cz.pop();
    } else if (!ys.empty()) {
      ans.push_back(make_pair(ys.front(), cs.front()));
      ys.pop();
      cs.pop();
    } else if (!yt.empty()) {
      ans.push_back(make_pair(yt.front(), ct.front()));
      yt.pop();
      ct.pop();
    }
  }
  cout << ans.size() << endl;
  for (i = 0; i < ans.size(); i++) {
    cout << "move ";
    if (ans[i].first < 0)
      cout << name[-ans[i].first];
    else
      cout << ans[i].first;
    cout << ' ' << ans[i].second << endl;
  }
  return 0;
}
