#include using namespace std; #define REP(i,n) for(int i=0; i<(int)(n); i++) int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; vector x(k), y(k); for (int i = 0; i < k; i++) { cin >> x[i] >> y[i]; --x[i], --y[i]; } vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; --a[i]; } vector b(n); for (int i = 0; i < n; i++) b[a[i]] = i; for (int i = 0; i < n; i++) a[i] = i; for (int i = 0; i < k; i++) swap(a[x[i]], a[y[i]]); vector z; for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { if (a[j] == b[i]) { for (int k = j; k > i; k--) { z.push_back(k); swap(a[k], a[k-1]); } break; } } } cout << z.size() << endl; for (int i = 0; i < z.size(); i++) cout << z[i] << " " << z[i]+1 << endl; return 0; }