#include int n, k, a[100], s[100], t[100], ans[6000]; void swap(int x) { int temp = t[ s[x + 1] ]; t[ s[x + 1] ] = t[ s[x] ]; t[ s[x] ] = temp; temp = s[x + 1]; s[x + 1] = s[x]; s[x] = temp; } int main(void) { int x, y, i, j; scanf("%d%d", &n, &k); for(i = 0; i < n; i++) { s[i] = t[i] = i; } for(i = 0; i < k; i++) { scanf("%d%d", &x, &y); x--; swap(x); } for(i = 0; i < n; i++) { int temp; scanf("%d", &temp); a[temp - 1] = i; } int c = 0; for(i = 0; i < n; i++) { j = t[ a[i] ] - 1; while(i <= j) { ans[c] = j; c++; swap(j); j--; } } printf("%d\n", c); for(i = 0; i < c; i++) { printf("%d %d\n", ans[i] + 1, ans[i] + 2); } return 0; }