#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(i,a,b) for (int i=(a);i<(b);i++) #define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--) #define REP(i,n) for (int i=0;i<(n);i++) #define RREP(i,n) for (int i=(n)-1;i>=0;i--) #define inf 0x3f3f3f3f #define CLEAR(a) a = decltype(a)() #define MP make_pair #define ALL(a) (a).begin(),(a).end() #define pii pair #define pcc pair #define pic pair #define pci pair #define VS vector #define VI vector #define VVI vector> #define DEBUG(x) cout<<#x<<": "< dp; vector cost; int main(void) { int N, K; cin >> N >> K; vector l(N); vector xy(K); for (auto &a : xy) { cin >> a.first >> a.second; a.first--; a.second--; } for (auto &a : l) { cin >> a; --a; } for (auto &a : xy) { swap(l[a.first], l[a.second]); } vector res; REP(i, l.size()) { REP(j, l.size()-1) { if (l[j] > l[j + 1]) { res.push_back(j); swap(l[j], l[j + 1]); } } } cout << res.size() << endl; for (int a : res) { cout << a+1 << " " << a + 2 << endl; } cout << endl; return 0; }