Problem:


FizzBuzz

「Fizz Buzz」と言われる数字を使ったゲームがあります。このゲームは複数のプレイヤーで数字を1 から順にひとつずつ数え上げていくもので、各プレイヤーは直前のプレイヤーが発言した次の数字をひとつだけ発言します。その時、3 で割り切れる場合は 「Fizz」, 5 で割り切れる場合は 「Buzz」、両者で割り切れる場合は「FizzBuzz」と数の代わりに発言しなければなりません。例えば、最初の 16 までの発言は以下のようになります。

    1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, ・・・

  太郎君は友達と「Fizz Buzz」をして遊ぶことにしました。太郎君たちはルールを次のように決めました。 

  

  「間違えた人は脱落する。その次の人は間違えた数の次の数から始める。つまり、1, 2, 3 と発言した場合、3 で間違えたので次は 4 から始めることになる。」

  

このルールに従ってゲームを行うのですが、ゲームに慣れていないため、間違えたことに気付かないことがあり、公平な判断ができません。そこであなたは太郎君たちがこのゲームを楽しめるように、決められた発言回数が終わった時点で残っていた人を出力するプログラムを作成することにしました。

  プレイヤー数、ゲーム中に発言された回数、それぞれの発言を入力とし、入力が終わった時点で残っているプレイヤーの番号を小さい順に出力するプログラムを作成してください。ただし、プレイヤーには 1 から番号が割り振られており、発言順番も 1 番目のプレイヤーから順に行い、一通り発言が終わると、再度 1 番目のプレイヤーから発言することとします。順番の回ってきたプレイヤーが既に脱落している場合は、その次のプレイヤーが発言します。また、このプログラムは、プレイヤーが一人になった時点で、その後の発言を無視しなければなりません。

Input

複数のデータセットの並びが入力として与えられます。入力の終わりはゼロふたつの行で示されます。
各データセットは以下の形式で与えられます。

m n
s1
s2
:
sn

1 行目にプレイヤー数 m (2 ≤ m ≤ 1000) と発言回数 n (1 ≤ n ≤ 10000) が与えられます。

続く n 行に i 番目の発言 s1 が与えられます。 si は整数、Fizz、Buzz、または FizzBuzz を示す文字列（8文字以下）です。

n 行に i 番目の発言 s1 が与えられます。 si は数字、Fizz、Buzz、FizzBuzz、あるいは間違った発言を示すその他の文字列 (20 文字以下) です。

-->

データセットの数は 50 を超えません。

Output

入力データセットごとに、指定された発言回数まで入力されたときに残っているプレイヤーの番号を小さい順に出力します。

Sample Input

5 7
1
2
Fizz
4
Buzz
6
7
3 5
1
2
3
4
5
0 0

Output for the Sample Input

2 3 4 5
1



Sample input:
5 7
1
2
Fizz
4
Buzz
6
7
3 5
1
2
3
4
5
0 0


Sample output:
2 3 4 5
1

Submission status: Runtime Error

Solution code:
# -*- coding: utf-8 -*-
"""
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0221

"""
import sys
from sys import stdin
from collections import deque
input = stdin.readline


def fb_gen(count=1):
    while True:
        if count % 15 == 0:
            ans = 'FizzBuzz'
        elif count % 5 == 0:
            ans = 'Buzz'
        elif count % 3 == 0:
            ans = 'Fizz'
        else:
            ans = str(count)
        yield ans
        count += 1


def main(args):
    while True:
        m, n = map(int, input().split())
        if m == 0 and n == 0:
            break
        players = deque(range(1, m+1))
        fb = fb_gen()
        for _ in range(n):
            p = input().strip()
            # print('player {}: {}'.format(players[0], p))
            if p != fb.__next__():
                drop = players.popleft()
                # print('player {} dropped'.format(drop))
                if len(players) == 1:
                    break
            else:
                players.rotate(-1)

        result = list(players)
        result.sort()
        print(*result)


if __name__ == '__main__':
    main(sys.argv[1:])

Submission status: Runtime Error

Solution code:
# -*- coding: utf-8 -*-
"""
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0221

"""
import sys
from sys import stdin
from collections import deque
input = stdin.readline


def fb_gen(count=1):
    while True:
        if count % 15 == 0:
            ans = 'FizzBuzz'
        elif count % 5 == 0:
            ans = 'Buzz'
        elif count % 3 == 0:
            ans = 'Fizz'
        else:
            ans = str(count)
        yield ans
        count += 1


def main(args):
    while True:
        m, n = map(int, input().split())
        if m == 0 and n == 0:
            break
        players = deque(range(1, m+1))
        fb = fb_gen()
        for _ in range(n):
            if len(players) == 1:
                break
            p = input().strip()
            if p != fb.__next__():
                players.popleft()
            else:
                players.rotate(-1)

        result = list(players)
        result.sort()
        print(*result)


if __name__ == '__main__':
    main(sys.argv[1:])

Submission status: Runtime Error

Solution code:
# -*- coding: utf-8 -*-
"""
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0221

"""
import sys
from sys import stdin
from collections import deque
input = stdin.readline


def fb_gen(count=1):
    while True:
        if count % 15 == 0:
            ans = 'FizzBuzz'
        elif count % 5 == 0:
            ans = 'Buzz'
        elif count % 3 == 0:
            ans = 'Fizz'
        else:
            ans = str(count)
        yield ans
        count += 1


def main(args):
    while True:
        m, n = map(int, input().split())
        if m == 0 and n == 0:
            break
        players = deque(range(1, m+1))
        fb = fb_gen()
        for _ in range(n):
            p = input().strip()
            if p != fb.__next__():
                try:
                    drop = players.popleft()
                except:
                    players = deque(drop)
                if len(players) == 1:
                    break
            else:
                players.rotate(-1)

        result = list(players)
        result.sort()
        print(*result)


if __name__ == '__main__':
    main(sys.argv[1:])

Submission status: Runtime Error

Solution code:
while True:
    m,n=map(int,raw_input().split())
    if m==n==0:
        break
    L=[]
    s=range(1,m+1)
    for i in range(1,n+1):
        if i%15==0:
            L.append("FizzBuzz")
        elif i%5==0:
            L.append("Buzz")
        elif i%3==0:
            L.append("Fizz")
        else:
            L.append(str(i))

    j=0
    for chars in L:
        t=raw_input()
        if t<>chars:
            del s[j%m]
        j+=1
    print " ".join([str(i) for i in s])

Submission status: Runtime Error

Solution code:
m,n=map(int,raw_input().split())
if m==n==0:
    break
L=[]
s=range(1,m+1)
for i in range(1,n+1):
    if i%15==0:
        L.append("FizzBuzz")
    elif i%5==0:
        L.append("Buzz")
    elif i%3==0:
        L.append("Fizz")
    else:
        L.append(str(i))

j=0
for chars in L:
    t=raw_input()
    if t<>chars:
        del s[j%m]
    j+=1
print " ".join([str(i) for i in s])

Submission status: Runtime Error

Solution code:
while True:
    m,n=map(int,raw_input().split())
    if m==n==0:
        break
    L=[]
    s=range(1,m+1)
    for i in range(1,n+1):
        if i%15==0:
            L.append("FizzBuzz")
        elif i%5==0:
            L.append("Buzz")
        elif i%3==0:
            L.append("Fizz")
        else:
            L.append(str(i))

    j=0
    for chars in L:
        t=raw_input()
        if t<>chars:
            del s[j%m]
        j+=1
    for i in s:
        print i

Submission status: Runtime Error

Solution code:
while True:
    m,n=map(int,raw_input().split())
    if m==n==0:
        break
    L=[]
    S=range(1,m+1)
    for i in range(1,n+1):
        if i%15==0:
            L.append("FizzBuzz")
        elif i%5==0:
            L.append("Buzz")
        elif i%3==0:
            L.append("Fizz")
        else:
            L.append(str(i))

    j=0
    for char in L:
        t=raw_input()
        if len(S)==1:break
        if t<>char:
            del S[j%m]
        j+=1
    print " ".join([str(i) for i in S])

Submission status: Runtime Error

Solution code:
def Judge(i):
    if i%15==0: return "FizzBuzz"
    if i%5==0:  return "Buzz"
    if i%3==0:  return "Fizz"
    return str(i)

while True:
    m,n=map(int,raw_input().split())
    L=range(1,m+1)
    j=0
    if m==n==0:break
    for i in range(1,n+1):
	c=raw_input()
	if len(L)==1:break
        if Judge(i)!=c:
            del L[j]
            j%=len(L)
        else:
            j=(j+1)%len(L)
        print L
    print " ".join(map(str,L))

Submission status: Runtime Error

Solution code:
def Judge(i):
    if i%15==0: return "FizzBuzz"
    if i%5==0:  return "Buzz"
    if i%3==0:  return "Fizz"
    return str(i)

while True:
    m,n=map(int,raw_input().split())
    L=range(1,m+1)
    j=0
    if m==n==0:break
    for i in range(1,n+1):
	c=raw_input()
	if len(L)==1:break
        if Judge(i)!=c:
            del L[j]
            j%=len(L)
        else:
            j=(j+1)%len(L)
    print " ".join(map(str,L))

Submission status: Runtime Error

Solution code:
null

Submission status: Runtime Error

Solution code:
while 1:
  m, n = map(int, raw_input().split())
  if not m:
    break
  p = range(m)
  t = 0
  for i in range(1, n + 1):
    s = raw_input()
    if(i % 15 == 0 and s != "FizzBuzz" or
       i % 5 == 0 and s != "Buzz" or
       i % 3 == 0 and s != "Fizz" or
       i % 3 and i % 5 and s != str(i)):
      p.pop(t)
    else:
      t = (t + 1) % len(p)
  for i in range(len(p) - 1):
    print p[i] + 1,
  print p[len(p) - 1] + 1

Submission status: Runtime Error

Solution code:
def fizzbuzz(n):
	if n%15==0: return "FizzBuzz"
	if n%5==0: return "Buzz"
	if n%3==0: return "Fizz"
	return str(n)

while 1:
	m,n=map(int,raw_input().split())
	if m==0:break
	player=[i+1 for i in range(m)]
	for i in range(n):
		if fizzbuzz(i+1)!=raw_input():
			player.pop((i-(m-len(player)))%len(player))
			if len(player)==1:
				break
	print " ".join(map(str,player))

Submission status: Runtime Error

Solution code:
def fizzbuzz(n):
	if n%15==0: return "FizzBuzz"
	if n%5==0: return "Buzz"
	if n%3==0: return "Fizz"
	return str(n)

while 1:
	m,n=map(int,raw_input().split())
	if m==0:break
	player=range(1,m+1)
	for i in range(n):
		if len(player)>1:
			if fizzbuzz(i+1)!=raw_input():
				player.pop((i-(m-len(player)))%len(player))
	print " ".join(map(str,player))

Submission status: Runtime Error

Solution code:
def fizzbuzz(n):
	if n%15==0: return "FizzBuzz"
	if n%5==0: return "Buzz"
	if n%3==0: return "Fizz"
	return str(n)

while 1:
	m,n=map(int,raw_input().split())
	if m==0:break
	player=range(1,m+1)
	for i in range(n):
		if len(player)==1:
			break
		if fizzbuzz(i+1)!=raw_input():
			del player[(i-(m-len(player)))%len(player)]
	print " ".join(map(str,player))

Submission status: Runtime Error

Solution code:
def fizzbuzz(n):
	if n%15==0: return "FizzBuzz"
	if n%5==0: return "Buzz"
	if n%3==0: return "Fizz"
	return str(n)

while 1:
	m,n=map(int,raw_input().split())
	if m==0:break
	player=range(1,m+1)
	p=0
	for i in range(n):
		if len(player)==1:
			break
		if fizzbuzz(i+1)!=raw_input():
			del player[p]
			p%=len(player)
		else:
			p=(p+1)%len(player)
	print " ".join(map(str,player))

Submission status: WA: Presentation Error

Solution code:
while 1:
        n = map(int,raw_input().split())
        if n[0] == n[1] == 0:
                break
        m, o = [1 for x in range(n[0])], 0

        for x in range(1,n[1]+1):
                a = raw_input()
                if sum(m) == 1:
                        pass
                elif x % 15 == 0:
                        if a != "FizzBuzz":
                                m[o] = 0
                elif x % 3 == 0:
                        if a != "Fizz":
                                m[o] = 0
                elif x % 5 == 0:
                        if a != "Buzz":
                                m[o] = 0
                else:
                        if a != str(x):
                                m[o] = 0
                while 1:
                        o += 1
                        if sum(m) == 1:
                                break
                        elif o == len(m):
                                o = -1
                        elif m[o] == 1:
                                break

        for x in range(n[0]):
                if m[x] == 1:
                        print x+1,
        print ""