瘦了的牛牛去旅游
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

牛牛为了奖励自己减肥成功( 并没有),奖励自己去X市旅游,X市有N个地点,这些点之间有M条长度不同的边,他们组成了一张有向无环图,牛牛希望从一个点X到另外一个点Y走密度最小的一条路,所谓密度是指的从X到Y的总路程长度除以X到Y走过的边的数量。现在牛牛提出Q个询问,每次询问一对Xi,Yi,请你输出Xi到Yi密度最小的路径密度。

输入描述:

第一行包括2个整数N和M。

以下M行,每行三个数字u、v、w,表示从u点到v点有一条权值为w的有向边。
再下一行有一个整数Q。
以下Q行,每行一个询问X和Y,求X到Y的最小密度路径

输出描述:

对于每个询问输出一行,表示该询问的最小密度路径的密度(误差在1e-3范围内即可),如果不存在这么一条路径输出“OMG!”(不含引号)。
示例1

输入

复制
3 3
1 3 5
2 1 6
2 3 6
2
1 3
2 3

输出

复制
5.000
5.500

说明

1 ≤ N ≤ 50,1 ≤ M ≤ 1000,1 ≤ W ≤ 100000,1 ≤ Q ≤ 100000。