import collections import sys from itertools import accumulate, groupby, batched from typing import List, Tuple MOD = 998244353 int1 = lambda x: int(x) - 1 input = lambda: sys.stdin.readline().rstrip('\n') ii = lambda: int(input()) vi = lambda: list(map(int, input().split())) vi1 = lambda: list(map(int1, input().split())) def dbg(*args, **kwargs): print(*(repr(arg) for arg in args), *(f'{k}: {repr(v)}' for k, v in kwargs.items()), sep='; ', file=sys.stderr, flush=True) def main(): n, m = vi() g = [[] for _ in range(n)] iwai = [False] * n for i in range(m): u, v = vi1() g[u].append(v) g[v].append(u) k = ii() a = vi1() for i in a: iwai[i] = True q = collections.deque() q.append((0, 0, 0)) inq = [[False] * 5 for _ in range(n)] inq[0][0] = True while q: d, u, c = q.popleft() if u == n - 1: return d for v in g[u]: nd, nc = d + 1, c + 1 if iwai[v] else 0 if nc == 5 or inq[v][nc]: continue q.append((nd, v, nc)) inq[v][nc] = True return -1 def _start(): if (ret := main()) is not None: print(*ret) if isinstance(ret, List) or isinstance(ret, Tuple) else print(ret) if __name__ == '__main__': _start()