1774: 路由器管理系统

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

Internet是一个巨大的而又复杂冗余的有向网络,在Internet上传输信息往往需要经过数个中转路由才能把信息发送过去到目标对象,然后如果我们要确认我们发送的信息是否正确的到达我们要发送的对象,目标对象需要在发送一个确认收到的信息回送给我们,这同样又要经过若干个网络中转路由才能还回到我们这里,这是一些网络传输协议的最基本要求,比如TCP协议。

现在你接手了这样一个系统协议的设计问题,设计要求在“发送端发送-接收端接收/发送-发送端接收”这个过程中经过的中转路由点数越少越好,包括发送端和接收端。

相信这个问题应该难不倒你。

 

输入

第一行有两个整数NM,分别表示网络中存在N个路由节点和M条路由间的连接关系。

接下去有M行,每行有两个整数uv1<=uv<=N),表示从路由u可以直接发送信息到路由v

然后一行有一个整数Q,表示系统收到的请求次数。

接下去一共有Q行,每行有两个整数st1<=st<=N),表示该次请求的发送端是s,接收端是t

50%的数据保证N<=30Q<=100

100%的数据保证N<=80,Q<=10000

输出

对于每次请求,请用你的系统输出该请求所要经过的最少中转路由点数,如果发送端的信息根本不可能发送到接收端或者接收端根本接收不到确认信息,那么输出Impossible

每行一个询问。

样例输入 复制

3 3

1 2

2 1

1 3

2

1 2

1 3

样例输出 复制

2

Impossible