Ana has a couple of classmates coming over for crepes (known as pala?inke in Croatian). They are coming in T minutes, and Ana just found out that she has neither one of the four required ingredients (flour, milk, eggs and jam). She hops into her car and drives around her neighbourhood buying supplies.
Her neighbourhood contains N crossroads numbered 1 to N, and M one way roads connecting them. Ana starts on crossroad 1. On each road there is exactly one shop, selling some, maybe all, ingredients.
Ana needs 1 minute to drive down any given road if she does not stop in the shop, or 2 minutes if she does. She needs to obtain all ingredients and drive back to crossroad one in time. She likes to compare shop prices so she may enter a shop even if she already has all ingredients. Consider the following example with 5 crossroads and 7 roads.
Ana can make the ingredient run in 5 different ways, as shown in the table below
Write a program that will calculate the number of different ways Ana can buy the ingredients and return home in T minutes or less. Since this number can be very large, output it modulo 5557.
입력 3 3 1 2 BMJ 2 3 MJP 3 1 JPB 5 출력 3 입력 3 4 1 2 B 2 1 P 1 3 J 3 1 M 8 출력 2 입력 5 7 1 2 B 2 4 M 1 3 J 3 4 MB 4 1 JP 4 5 J 5 1 P 7 출력 5
출처:coci 2009-2010 contest4 6/6