{"raw_statement":[{"iden":"statement","content":"Your friend has C coins in his pocket, each coin has a value Vi, and you know that he will not need that amount of money, he will only need M. \n\nYou want to help him not to carry all these coins, so you decided to tell him to take the coins of specific values, in a way that he will have at least the amount of money he needs. \n\nYou will tell him that it will be enough for him if he carried coins of types X1, X2, ..., Xn. \n\nNote that if you tell him to carry coins of type Xi, he will carry all the coins with values Vi = Xi. \n\nThe first line contains an integer T representing the number of test cases. \n\nEach test case consists of two lines, the first line has two integers C (1 ≤ C ≤ 1000000) and M (1 ≤ M ≤ 109), and the other line contains C integers representing the values of the coins (1 ≤ Vi ≤ 1000000). \n\nFor each test case print the types of coins which your friend must carry,if there are multiple solutions, print the solution with the minimum number of types, if there are still multiple solutions print the one which makes your friend carry more money, if there are still multiple solutions print the solution with the bigger types. \n\nprint the types in increasing order. If he doesn't have enough money print \"Impossible\" without the quotations.\n\n"},{"iden":"input","content":"The first line contains an integer T representing the number of test cases. Each test case consists of two lines, the first line has two integers C (1 ≤ C ≤ 1000000) and M (1 ≤ M ≤ 109), and the other line contains C integers representing the values of the coins (1 ≤ Vi ≤ 1000000). "},{"iden":"output","content":"For each test case print the types of coins which your friend must carry,if there are multiple solutions, print the solution with the minimum number of types, if there are still multiple solutions print the one which makes your friend carry more money, if there are still multiple solutions print the solution with the bigger types. print the types in increasing order. If he doesn't have enough money print \"Impossible\" without the quotations."},{"iden":"examples","content":"Input310 71 1 1 1 1 2 2 2 5 410 111 1 1 1 1 1 1 1 1 110 61 1 1 1 1 1 2 2 2 3Output2 5Impossible2"}],"translated_statement":null,"sample_group":[],"show_order":[],"formal_statement":"**Definitions**  \nLet $ N, M \\in \\mathbb{Z}^+ $ be the dimensions of the grid, with $ 1 \\leq N, M \\leq 10^4 $.  \nLet $ P \\in \\mathbb{Z} $ be the number of dangerous cells, with $ 0 \\leq P \\leq 5 \\cdot 10^4 $.  \nLet $ D \\subseteq \\{1, \\dots, N\\} \\times \\{1, \\dots, M\\} $ be the set of dangerous cells.  \nNaruto starts at position $ (1,1) $; the target is at $ (N,M) $.  \n\n**Constraints**  \n1. Total queries $ \\leq 12P + 4(N + M) $.  \n2. Only valid directions: `\"U\"`, `\"D\"`, `\"L\"`, `\"R\"`.  \n3. Cannot move into a dangerous cell.  \n4. Grid boundaries are implicit; queries to invalid directions return `\"no\"`.  \n\n**Query Types**  \n- `query dir`: Probe direction `dir` ∈ {`\"U\"`, `\"D\"`, `\"L\"`, `\"R\"`}.  \n  - Response: `\"yes\"` if adjacent cell in `dir` is safe and within bounds; `\"no\"` otherwise.  \n- `move dir`: Move in direction `dir`.  \n  - Response: `\"yes\"` if target $ (N,M) $ reached; `\"no\"` otherwise.  \n\n**Objective**  \nFind a path from $ (1,1) $ to $ (N,M) $ using at most $ 12P + 4(N + M) $ queries, by adaptively probing and moving, without visiting any cell in $ D $.","simple_statement":"Naruto starts at (1,1) and needs to reach (N,M) in a grid. Some cells are dangerous. You can only move right or down. Use queries to check if a cell ahead is safe, then move. Don’t exceed query limit. Reach (N,M) to win.","has_page_source":false}