Fangy the little walrus, as all the modern walruses, loves to communicate via text messaging. One day he faced the following problem: When he sends large texts, they are split into parts each containing _n_ characters (which is the size of one text message). Thus, whole sentences and words get split!
Fangy did not like it, so he faced the task of breaking the text into minimal messages on his own so that no sentence were broken into pieces when it is sent and the number of text messages to be sent would be minimal. If two consecutive sentences are in different messages, the space between them can be ignored (Fangy does not write this space).
The little walrus's text looks in the following manner:
TEXT ::= SENTENCE | SENTENCE SPACE TEXT
SENTENCE ::= WORD SPACE SENTENCE | WORD END
END ::= {'.', '?', '!'}
WORD ::= LETTER | LETTER WORD
LETTER ::= {'a'..'z', 'A'..'Z'}
SPACE ::= ' '
SPACE stands for the symbol of a space.
So, how many messages did Fangy send?
## Input
The first line contains an integer _n_, which is the size of one message (2 ≤ _n_ ≤ 255). The second line contains the text. The length of the text does not exceed 104 characters. It is guaranteed that the text satisfies the above described format. Specifically, this implies that the text is not empty.
## Output
On the first and only line print the number of text messages Fangy will need. If it is impossible to split the text, print "_Impossible_" without the quotes.
[samples]
## Note
Let's take a look at the third sample. The text will be split into three messages: "_Hello!_", "_Do you like fish?_" and "_Why?_".
小海象 Fangy 和所有现代海象一样,喜欢通过短信交流。一天,他遇到了以下问题:当他发送大段文本时,文本会被分割成每部分包含 #cf_span[n] 个字符(即一条短信的大小)的片段,导致完整句子和单词被拆开!
Fangy 不喜欢这样,于是他决定自己将文本分割成最少数量的短信,使得任何句子都不会被拆分,同时发送的短信数量最少。如果两个连续的句子位于不同的短信中,它们之间的空格可以忽略(Fangy 不会写这个空格)。
小海象的文本格式如下:
SPACE 表示空格字符。
那么,Fangy 发送了多少条短信?
第一行包含一个整数 #cf_span[n],表示每条短信的大小(#cf_span[2 ≤ n ≤ 255])。第二行包含文本。文本长度不超过 #cf_span[104] 个字符。保证文本符合上述格式。具体而言,这意味着文本非空。
在第一行且仅有一行中,输出 Fangy 需要发送的短信数量。如果无法分割文本,请输出 "_Impossible_"(不含引号)。
让我们看第三个样例。文本将被分割为三条短信:"_Hello!_"、"_Do you like fish?_" 和 "_Why?_"。
## Input
第一行包含一个整数 #cf_span[n],表示每条短信的大小(#cf_span[2 ≤ n ≤ 255])。第二行包含文本。文本长度不超过 #cf_span[104] 个字符。保证文本符合上述格式。具体而言,这意味着文本非空。
## Output
在第一行且仅有一行中,输出 Fangy 需要发送的短信数量。如果无法分割文本,请输出 "_Impossible_"(不含引号)。
[samples]
## Note
让我们看第三个样例。文本将被分割为三条短信:"_Hello!_"、"_Do you like fish?_" 和 "_Why?_"。
**Definitions**
Let $ n \in \mathbb{Z} $ be the maximum number of characters per message, with $ 2 \leq n \leq 255 $.
Let $ T $ be the input text string, with $ 1 \leq |T| \leq 10^4 $.
Let $ S = [s_1, s_2, \dots, s_m] $ be the sequence of sentences in $ T $, where each sentence ends with one of $ \{., !, ?\} $ and sentences are separated by exactly one space (except possibly the last sentence).
**Constraints**
1. Each sentence $ s_i $ contains no internal spaces at its end (i.e., trailing space only exists between sentences).
2. No sentence is empty.
3. The text $ T $ is well-formed: sentences are separated by single spaces, and end with one of $ \{., !, ?\} $.
**Objective**
Partition $ S $ into the minimal number of contiguous subsequences (messages) such that:
- The total number of characters in each message (including all characters of the sentences in it, but **excluding** the spaces between sentences that are split across messages) does not exceed $ n $.
- Sentences must not be split across messages.
- If two consecutive sentences $ s_i $ and $ s_{i+1} $ are placed in different messages, the space between them is omitted.
Let $ L_i = |s_i| $ denote the length of sentence $ s_i $.
Let $ k $ be the minimal number of messages required.
If no such partition exists (i.e., any single sentence has length $ > n $), output "_Impossible_".
Otherwise, output $ k $.
**Formal Objective**
Find the minimal $ k \in \mathbb{Z}^+ $ such that there exists a partition of $ S $ into $ k $ contiguous blocks $ B_1, B_2, \dots, B_k $, where for each block $ B_j = [s_{l_j}, s_{l_j+1}, \dots, s_{r_j}] $:
$$
\sum_{i=l_j}^{r_j} L_i + \max(0, r_j - l_j) \leq n
$$
(The term $ \max(0, r_j - l_j) $ accounts for the spaces *between* sentences within the same message — there are $ r_j - l_j $ such spaces.)
If $ \max_i L_i > n $, output "_Impossible_".