煎肉排

题目描述

Y 同学结束了一天的训练,感到饥肠辘辘。他从商店买了一块半成品的肉排,准备回家做一顿丰盛的晚餐。

根据说明书,这块肉排需要总共煎 2N2N 秒才能熟透。具体来说,肉排的正面需要煎 NN 秒,背面也需要煎 NN 秒。

Y 同学准备好了平底锅并点燃了火。烹饪过程从第 00 秒开始,持续到第 2N2N 秒结束。然而,由于 Y 同学还要忙着在群里讨论算法题,他并不是每时每刻都能去翻动肉排。

已知共有 KK 个可以翻面的时间段。第 ii 个时间段表示为闭区间 [Li,Ri][L_i, R_i]。这意味着,Y 同学只能在烹饪开始后的第 LiL_i 秒到第 RiR_i 秒之间(包括端点)进行翻面操作。在同一个时间段内,他可以翻面任意次(也可以不翻)。在这些时间段之外的时间里,他无法进行翻面操作。

初始时(第 00 秒),肉排的一面朝下,另一面朝上。Y 同学希望在第 2N2N 秒结束时,肉排的正反两面都恰好煎了 NN 秒。

请你帮助 Y 同学判断,在给定的限制条件下,是否能够达成这个目标?如果可以,请计算出他最少需要翻面多少次。

输入格式

第一行包含两个整数 NNKK,分别表示每一面所需的烹饪时间和可翻面的时间段数量。

接下来 KK 行,每行包含两个整数 LiL_iRiR_i,表示第 ii 个可翻面的时间段。 保证对于所有 2iK2 \le i \le K,满足 Li>Ri1L_i > R_{i-1},且 0LiRi2N0 \le L_i \le R_i \le 2N

输出格式

如果 Y 同学无法让肉排的两面都恰好煎 NN 秒,输出一行字符串 Hungry

如果可以达成目标,第一行输出字符串 Full,第二行输出一个整数,表示最少的翻面次数。

样例

样例输入 #1

10 2
3 5
11 13

样例输出 #1

Full
2

样例输入 #2

10 3
3 5
9 10
11 13

样例输出 #2

Full
1

样例输入 #3

20 1
3 19

样例输出 #3

Hungry

数据范围与约定

对于 100%100\% 的数据,保证 1N100,0001 \le N \le 100,0001K1001 \le K \le 1000LiRi2N0 \le L_i \le R_i \le 2N

子任务编号 分值 NN \le KK \le 特殊性质
1 20 2020 55
2 30 20002000 100100
3 50 10510^5