#include using namespace std; int n; char classRoom[2005],teacher[2005]; vector< pair > answer; bool ok[2005]; int numUnsatisfiedClasses[600]; int split[600]; int main() { ios_base :: sync_with_stdio(false); cin.tie(0); cin>>n; for (int i=1;i<=n;i++) { cin>>classRoom[i]; } for (int i=1;i<=n;i++) { cin>>teacher[i]; if (classRoom[i]!='-' && teacher[i] != classRoom[i]) { numUnsatisfiedClasses[classRoom[i]]++; } if (classRoom[i] == teacher[i]) ok[i]=1; } char carry = '-'; while (numUnsatisfiedClasses['C'] > 0 || numUnsatisfiedClasses['M'] > 0) { memset(split,false,sizeof(split)); for (int i=1;i<=n;i++) { if (ok[i] == 1) continue; if (teacher[i]!='-' && classRoom[i]!='-' && teacher[i] != classRoom[i]) { split[classRoom[i]]=true; } } for (int i=1;i<=n;i++) { if (ok[i]==1) continue; if (carry == '-') { if (teacher[i] != '-' && classRoom[i] == '-' && numUnsatisfiedClasses[teacher[i]]!=0) { answer.push_back(make_pair("DRIVE",i)); answer.push_back(make_pair("PICKUP",-1)); ok[i]=1; carry = teacher[i]; teacher[i]='-'; break; } } else { if (classRoom[i] == carry ) { if (teacher[i] == '-' && split[carry] == true) continue; answer.push_back(make_pair("DRIVE",i)); answer.push_back(make_pair("DROPOFF",-1)); ok[i]=1; numUnsatisfiedClasses[classRoom[i]]--; carry = '-'; if (teacher[i]!='-' && numUnsatisfiedClasses[teacher[i]]!=0) { answer.push_back(make_pair("PICKUP",-1)); carry = teacher[i]; teacher[i]='-'; } break; } } } } cout<