FEAST - Feast Coins

Last feast the young princess received way too many coins. Since she is very young, she doesn't know the value of each coin, if you give her a coin with the value 5 or a coin with the value 1, she will consider them both as just 1 coin, regardless of the value.

However, she can notice that the coin with value 5 doesn't look the same as the coin with value 1, and she will be happy if she has the same number of coins of each value. Otherwise, she will not be happy.

She has a lot of coins of different values, and she needs some subset of these coins such that the sum of their values should be exactly S, and the number of coins of each value in this subset should be the same. Can you help her to count the number of different ways to do this?

Input

Your program will be tested on one or more test cases. The first line of the input will be a single integer T (1 ≤ T ≤ 100) representing the number of test cases. Followed by T test cases. Each test case starts with a line containing two integers separated by a single space S and N (1 ≤ S ≤ 5,000, 1 ≤ N ≤ 50) representing the total required sum and the number of different values of coins, respectively. Followed by N lines, each one will contain two integers separated by a single space Vi and Ci (1 ≤ Vi, Ci ≤ 5,000) representing the value of a coin and the number of coins the princess has with this value, respectively. For each test case, all values of Vi will be distinct.

Output

For each test case print a single line containing "Case n:" (without quotes) where n is the test case number (starting from 1) followed by a space then the number of different ways to make the total sum S as described above. Two ways are considered different if any coin value does not appear the same number of times in both ways.

You can assume that the result will always fit in a 64-bit signed integer.

Sample

Input:
2
10 2
2 2
6 1
10 4
1 10
2 10
3 10
4 10

Output:
Case 1: 0
Case 2: 5

Notes:

In the first test case, the only way to make the sum 10, is to use the following subset of coins (2, 2, 6), but this isn't valid because there are 2 coins with value 2 and 1 coin with value 6.

In the second test case, the following are the 5 different ways: (1, 1, 1, 1, 1, 1, 1, 1, 1, 1), (2, 2, 2, 2, 2), (2, 2, 3, 3), (1, 1, 4, 4), (1, 2, 3, 4).


Added by:Tensor
Date:2015-03-14
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64 JS-MONKEY
Resource:ACPC 2014

hide comments
2018-09-23 16:39:07
Nice problem
2017-09-02 08:07:45 Akash Garg
dp forever :)
2017-01-22 10:25:48 Shubhojeet Chakraborty
top down gives tle...go botttom up..!
2015-07-05 16:40:27 Rishav Goyal
cool problem ;-)
2015-06-05 09:01:53 Akhilesh Anandh
Really nice problem! Enjoyed solving...
2015-03-27 16:07:30 (Tjandra Satria Gunawan)(曾毅昆)
Nice problem, greedy solution will not work ;-)
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.