為了慶祝 iPhone Max 手機的上市,蓮霧公司在他們的最大直營店擺設了 n 台最新的 iPhone Max 手機環繞整家直營店,希望在首賣日帶動買氣。殊不知,在首賣日前一天晚上,有 m 個競爭對手的死忠支持者因為不滿銷售量被 iPhone 系列的推出大受打擊,趁夜闖入蓮霧直營店,打算惡搞這些已經開機好正在展示動畫的 iPhone 。
但闖入後才發現,該店展示的 iPhone 數量實在太多,他們沒有時間去惡搞所有的iPhone,他們決定每人只挑部分手機下手:第 i 個人把第 ki, 2ki, 3ki, ... 隻手機倒置;如果手機是開機狀態就把它關機、如果手機是正放就把它倒放,反之亦然。
假設原本所有的 iPhone 全部都是正放且開機,請寫一隻程式去計算這些闖入者在結束他們的惡作劇後,究竟有幾台手機看起來是被惡搞過(過程不重要,只須以最後的狀態判斷即可)。
第一行有兩個整數,n 和 m,並以空白分隔。n 代表 iPhone 的總數,而 m 代表有幾個入侵者。接下來是 m 行,每行一個數字,依序代表每個人惡作劇手機的間隔,即 k1, k2, k3, ... , km。
限制:
保證有99%的測試資料滿足:
1 ≤ n ≤ 200
1 ≤ m ≤ 200
1 ≤ ki ≤ n
保證所有的測試資料滿足:
1 ≤ n ≤ 300000
1 ≤ m ≤ 2000000
1 ≤ ki ≤ n
第一行輸出一整數,代表最後看起來被惡搞過的手機數量x。接下來輸出x行,每行按照由小到大的順序輸出被惡搞的手機編號。
No. | Testdata Range | Score |
---|---|---|
1 | 0~4 | 99 |
2 | 5~9 | 1 |