#include <bits/stdc++.h>
using namespace std;
#define y1 hld
#define int long long
#define pii pair<int, int>
#define vi vector<int>
#define vii vector<pii>
#define fi first
#define se second
#define big (int)1e18
#define small (int)1e9
#define mouse (int)-1e18
#define cat (int)-1e9
#define pb push_back
#define eb emplace_back
#define tri pair<int, pair<int, int>>
#define a1 fi
#define a2 se.fi
#define a3 se.se
#define quad pair<pair<int, int>, pair<int, int>>
#define b1 fi.fi
#define b2 fi.se
#define b3 se.fi
#define b4 se.se
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define srt(x) sort(all(x));
#define bit(x, i) ((x >> i) & 1)
#define mask(i) (1LL << i)
#define sz(x) (int)x.size()
#define uni(x) sort(all(x)), x.erase(unique(all(x)), x.end())
#define debug(x) cerr << x << ' '
#define debg(x) cerr << x << '\n'
#define deb(x, y) cerr << x << ' ' << y << '\n'
#define de(x, y, z) cerr << x << ' ' << y << ' ' << z << '\n'
#define htbd(x, y, z, t) cerr << x << ' ' << y << ' ' << z << ' ' << t << '\n'
template <class T>
using minheap = priority_queue<T, vector<T>, greater<T>>;
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, 1, -1};
tri t3(int a, int b, int c) { return {a, {b, c}}; }
quad t4(int a, int b, int c, int d) { return {{a, b}, {c, d}}; }
void ptri(tri x) { cerr << x.a1 << ' ' << x.a2 << ' ' << x.a3 << '\n'; }
void pquad(quad x) {
cerr << x.b1 << ' ' << x.b2 << ' ' << x.b3 << ' ' << x.b4 << '\n';
}
int ceil_div(int a, int b) { return (a + b - 1) / b; }
#define fill0(x) memset(x, 0, sizeof x)
#define f36(x) memset(x, -1, sizeof x)
#define inf(x) memset(x, 0x3f, sizeof x)
#define nyc(x) memset(x, -0x3f, sizeof x)
#define loop(i, a, b) for (int i = (a); i <= (b); i++)
#define back(i, a, b) for (int i = (a); i >= (b); i--)
#define popcnt(x) __builtin_popcountll(x)
#define lb lower_bound
#define ub upper_bound
#define f59(a, b) a = min(a, b)
#define f69(a, b) a = max(a, b)
#define rep(i, n) for (int i = 1; i <= n; i++)
#define has(x, y) (x.find(y) != x.end())
#define each(x, a) for (auto &x : a)
#define lbit(x) (x & -x)
#define f(u, v) adj[u].push_back(v)
#define g(u, v, w) adj[u].push_back({v, w})
#define f2(u, v) (f(u, v), f(v, u))
#define g2(u, v, w) (g(u, v, w), g(v, u, w))
const int N = 2e5 + 5;
vector<int> adj[N];
int dist[N], p[N];
set<int> s;
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
if (ifstream("WOTU.INP")) {
freopen("WOTU.INP", "r", stdin);
freopen("WOTU.OUT", "w", stdout);
}
memset(dist, 0x3f, sizeof dist);
int n, m, k;
cin >> n >> m >> k;
for (int i = 1; i <= m; i++) {
int U, V;
cin >> U >> V;
f(V, U);
}
for (int i = 1; i <= n; i++) cin >> p[i];
queue<int> q;
q.push(n);
dist[n] = 0;
while (q.size()) {
int u = q.front();
q.pop();
for (int v : adj[u])
if (dist[v] > dist[u] + 1) dist[v] = dist[u] + 1, q.push(v);
}
for (int i = 1; i <= n; i++) s.insert(dist[p[i]] + i - 1);
int x, y;
while (k--) {
cin >> x >> y;
s.erase(s.find(dist[p[x]] + x - 1));
s.erase(s.find(dist[p[y]] + y - 1));
s.insert(dist[p[y]] + x - 1);
s.insert(dist[p[x]] + y - 1);
swap(p[x], p[y]);
cout << *s.begin() << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgeTEgaGxkCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIHBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgdmlpIHZlY3RvcjxwaWk+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBiaWcgKGludCkxZTE4CiNkZWZpbmUgc21hbGwgKGludCkxZTkKI2RlZmluZSBtb3VzZSAoaW50KS0xZTE4CiNkZWZpbmUgY2F0IChpbnQpLTFlOQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGViIGVtcGxhY2VfYmFjawojZGVmaW5lIHRyaSBwYWlyPGludCwgcGFpcjxpbnQsIGludD4+CiNkZWZpbmUgYTEgZmkKI2RlZmluZSBhMiBzZS5maQojZGVmaW5lIGEzIHNlLnNlCiNkZWZpbmUgcXVhZCBwYWlyPHBhaXI8aW50LCBpbnQ+LCBwYWlyPGludCwgaW50Pj4KI2RlZmluZSBiMSBmaS5maQojZGVmaW5lIGIyIGZpLnNlCiNkZWZpbmUgYjMgc2UuZmkKI2RlZmluZSBiNCBzZS5zZQojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2RlZmluZSByYWxsKHgpIHgucmJlZ2luKCksIHgucmVuZCgpCiNkZWZpbmUgc3J0KHgpIHNvcnQoYWxsKHgpKTsKI2RlZmluZSBiaXQoeCwgaSkgKCh4ID4+IGkpICYgMSkKI2RlZmluZSBtYXNrKGkpICgxTEwgPDwgaSkKI2RlZmluZSBzeih4KSAoaW50KXguc2l6ZSgpCiNkZWZpbmUgdW5pKHgpIHNvcnQoYWxsKHgpKSwgeC5lcmFzZSh1bmlxdWUoYWxsKHgpKSwgeC5lbmQoKSkKI2RlZmluZSBkZWJ1Zyh4KSBjZXJyIDw8IHggPDwgJyAnCiNkZWZpbmUgZGViZyh4KSBjZXJyIDw8IHggPDwgJ1xuJwojZGVmaW5lIGRlYih4LCB5KSBjZXJyIDw8IHggPDwgJyAnIDw8IHkgPDwgJ1xuJwojZGVmaW5lIGRlKHgsIHksIHopIGNlcnIgPDwgeCA8PCAnICcgPDwgeSA8PCAnICcgPDwgeiA8PCAnXG4nCiNkZWZpbmUgaHRiZCh4LCB5LCB6LCB0KSBjZXJyIDw8IHggPDwgJyAnIDw8IHkgPDwgJyAnIDw8IHogPDwgJyAnIDw8IHQgPDwgJ1xuJwp0ZW1wbGF0ZSA8Y2xhc3MgVD4KdXNpbmcgbWluaGVhcCA9IHByaW9yaXR5X3F1ZXVlPFQsIHZlY3RvcjxUPiwgZ3JlYXRlcjxUPj47CmludCBkeFs0XSA9IHsxLCAtMSwgMCwgMH07CmludCBkeVs0XSA9IHswLCAwLCAxLCAtMX07CnRyaSB0MyhpbnQgYSwgaW50IGIsIGludCBjKSB7IHJldHVybiB7YSwge2IsIGN9fTsgfQpxdWFkIHQ0KGludCBhLCBpbnQgYiwgaW50IGMsIGludCBkKSB7IHJldHVybiB7e2EsIGJ9LCB7YywgZH19OyB9CnZvaWQgcHRyaSh0cmkgeCkgeyBjZXJyIDw8IHguYTEgPDwgJyAnIDw8IHguYTIgPDwgJyAnIDw8IHguYTMgPDwgJ1xuJzsgfQp2b2lkIHBxdWFkKHF1YWQgeCkgewogICAgY2VyciA8PCB4LmIxIDw8ICcgJyA8PCB4LmIyIDw8ICcgJyA8PCB4LmIzIDw8ICcgJyA8PCB4LmI0IDw8ICdcbic7Cn0KaW50IGNlaWxfZGl2KGludCBhLCBpbnQgYikgeyByZXR1cm4gKGEgKyBiIC0gMSkgLyBiOyB9CiNkZWZpbmUgZmlsbDAoeCkgbWVtc2V0KHgsIDAsIHNpemVvZiB4KQojZGVmaW5lIGYzNih4KSBtZW1zZXQoeCwgLTEsIHNpemVvZiB4KQojZGVmaW5lIGluZih4KSBtZW1zZXQoeCwgMHgzZiwgc2l6ZW9mIHgpCiNkZWZpbmUgbnljKHgpIG1lbXNldCh4LCAtMHgzZiwgc2l6ZW9mIHgpCiNkZWZpbmUgbG9vcChpLCBhLCBiKSBmb3IgKGludCBpID0gKGEpOyBpIDw9IChiKTsgaSsrKQojZGVmaW5lIGJhY2soaSwgYSwgYikgZm9yIChpbnQgaSA9IChhKTsgaSA+PSAoYik7IGktLSkKI2RlZmluZSBwb3BjbnQoeCkgX19idWlsdGluX3BvcGNvdW50bGwoeCkKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgZjU5KGEsIGIpIGEgPSBtaW4oYSwgYikKI2RlZmluZSBmNjkoYSwgYikgYSA9IG1heChhLCBiKQojZGVmaW5lIHJlcChpLCBuKSBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiNkZWZpbmUgaGFzKHgsIHkpICh4LmZpbmQoeSkgIT0geC5lbmQoKSkKI2RlZmluZSBlYWNoKHgsIGEpIGZvciAoYXV0byAmeCA6IGEpCiNkZWZpbmUgbGJpdCh4KSAoeCAmIC14KQojZGVmaW5lIGYodSwgdikgYWRqW3VdLnB1c2hfYmFjayh2KQojZGVmaW5lIGcodSwgdiwgdykgYWRqW3VdLnB1c2hfYmFjayh7diwgd30pCiNkZWZpbmUgZjIodSwgdikgKGYodSwgdiksIGYodiwgdSkpCiNkZWZpbmUgZzIodSwgdiwgdykgKGcodSwgdiwgdyksIGcodiwgdSwgdykpCmNvbnN0IGludCBOID0gMmU1ICsgNTsKdmVjdG9yPGludD4gYWRqW05dOwppbnQgZGlzdFtOXSwgcFtOXTsKc2V0PGludD4gczsKc2lnbmVkIG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaWYgKGlmc3RyZWFtKCJXT1RVLklOUCIpKSB7CiAgICAgICAgZnJlb3BlbigiV09UVS5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJXT1RVLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIG1lbXNldChkaXN0LCAweDNmLCBzaXplb2YgZGlzdCk7CiAgICBpbnQgbiwgbSwgazsKICAgIGNpbiA+PiBuID4+IG0gPj4gazsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKykgewogICAgICAgIGludCBVLCBWOwogICAgICAgIGNpbiA+PiBVID4+IFY7CiAgICAgICAgZihWLCBVKTsKICAgIH0KICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgY2luID4+IHBbaV07CiAgICBxdWV1ZTxpbnQ+IHE7CiAgICBxLnB1c2gobik7CiAgICBkaXN0W25dID0gMDsKICAgIHdoaWxlIChxLnNpemUoKSkgewogICAgICAgIGludCB1ID0gcS5mcm9udCgpOwogICAgICAgIHEucG9wKCk7CiAgICAgICAgZm9yIChpbnQgdiA6IGFkalt1XSkKICAgICAgICAgICAgaWYgKGRpc3Rbdl0gPiBkaXN0W3VdICsgMSkgZGlzdFt2XSA9IGRpc3RbdV0gKyAxLCBxLnB1c2godik7CiAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHMuaW5zZXJ0KGRpc3RbcFtpXV0gKyBpIC0gMSk7CiAgICBpbnQgeCwgeTsKICAgIHdoaWxlIChrLS0pIHsKICAgICAgICBjaW4gPj4geCA+PiB5OwogICAgICAgIHMuZXJhc2Uocy5maW5kKGRpc3RbcFt4XV0gKyB4IC0gMSkpOwogICAgICAgIHMuZXJhc2Uocy5maW5kKGRpc3RbcFt5XV0gKyB5IC0gMSkpOwogICAgICAgIHMuaW5zZXJ0KGRpc3RbcFt5XV0gKyB4IC0gMSk7CiAgICAgICAgcy5pbnNlcnQoZGlzdFtwW3hdXSArIHkgLSAxKTsKICAgICAgICBzd2FwKHBbeF0sIHBbeV0pOwogICAgICAgIGNvdXQgPDwgKnMuYmVnaW4oKSA8PCAnXG4nOwogICAgfQp9