#include using namespace std; int fr[10] = {0}; vector ids[10]; bool first = true; vector sol; int _M = 1; int _C = 2; int CM = 3; int MC = 4; int C_ = 5; int M_ = 6; void go(int x) { string aux; aux = "DRIVE "; aux += to_string(ids[x].back() + 1); ids[x].pop_back(); sol.push_back(aux); fr[x]--; if (!first) sol.push_back("DROPOFF"); first = false; if (x != C_ && x != M_) sol.push_back("PICKUP"); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n; cin >> n; string needs, gives; cin >> needs >> gives; for (int i=0;i fr[MC] + fr[M_]) { go(_C); if (fr[CM]) go(CM); while (fr[MC] && fr[CM]) { go(MC); go(CM); } if (fr[M_]) go(M_); while (fr[_M] && fr[M_]) { go(_M); go(M_); } while (fr[CM] && fr[M_]) { go(_C); go(CM); go(M_); } while (fr[CM]) { go(_C); go(CM); } while (fr[C_]) { go(_C); go(C_); } } else { go(_M); if (fr[MC]) go(MC); while (fr[CM] && fr[MC]) { go(CM); go(MC); } if (fr[C_]) go(C_); while (fr[_C] && fr[C_]) { go(_C); go(C_); } while (fr[C_] && fr[MC]) { go(_M); go(MC); go(C_); } while (fr[MC]) { go(_M); go(MC); } while (fr[M_]) { go(_M); go(M_); } } if (sol.back() == "PICKUP") sol.pop_back(); cout << sol.size() << '\n'; for (string& s : sol) cout << s << '\n'; return 0; }