from sys import stdin
from math import sqrt,fabs

class Game:
	class Ufo:
		def __init__(self,x,y,r,v):
			self.x = x*1.0
			self.y = y*1.0
			self.r = r*1.0
			self.v = v*1.0
			self.d = sqrt(x**2+y**2)
			self.cs = self.x / self.d
			self.si = self.y / self.d
			self.vx = -self.v*self.cs
			self.vy = -self.v*self.si

		def __str__(self):
			return "ufo x = " + str(self.x) + ", y = " + str(self.y) + ", r = " + str(self.r) + ", v = " + str(self.v)

		def oneMinMove(self):
			self.x += self.vx
			self.y += self.vy
			self.d -= self.v

	class Laser:
		def __init__(self,cs,si):
			self.cs = cs
			self.si = si

	ufos = []
	laser = Laser(0,0)
	gameend = False
	inrl = 0
	def __init__(self,R):
		self.R = R

	def hit(self,laser,ufo):
		temp1 = ufo.r**2 - (laser.si*ufo.x - laser.cs*ufo.y)**2
		if temp1 >= 0:
			temp2 = laser.cs*ufo.x + laser.si*ufo.y
			d1 = temp2 + sqrt(temp1)
			d2 = temp2 - sqrt(temp1)
			if d1>=0 or d2>=0: return True
			else: return False
		else: return False

	def isInvaded(self,ufo):
		return (ufo.d<= self.R)
	
	def gameOneMinMove(self):
		curInrs = []
		for ufo in self.ufos:
			ufo.oneMinMove()
			if self.isInvaded(ufo): curInrs.append(ufo)
		self.inrl += len(curInrs)
		#print str(len(curInrs)) + " ufos invaded!"
		for ufo in curInrs:
			self.ufos.remove(ufo)
			#print ufo
		del curInrs
		if self.ufos == []:
			self.gameend = True

	def setLaser(self):
		nearestUfo = self.ufos[0]
		for ufo in self.ufos:
			if nearestUfo.d > ufo.d :
				nearestUfo = ufo
		self.laser = self.Laser(nearestUfo.cs,nearestUfo.si)

	def fireLaser(self):
		curDeads = []
		for ufo in self.ufos:
			if self.hit(self.laser,ufo):
				curDeads.append(ufo)
		#print str(len(curDeads)) +" ufos burned!"
		for ufo in curDeads:
			self.ufos.remove(ufo)
			#print ufo
		del curDeads

	def oneLogic(self):
		self.gameOneMinMove()
		if self.gameend:
			pass
		else:
			self.setLaser()
			self.fireLaser()

	def allLogic(self):
		while not self.gameend:
			self.oneLogic()


for inp in stdin:
#for inp in open("input.txt"):
	inp = map(int,inp.split())
	if len(inp) == 2:
		if inp == (0,0): break
		game = Game(inp[0])
		N = inp[1]
	else:
		game.ufos.append(game.Ufo(inp[0],inp[1],inp[2],inp[3]))
		if len(game.ufos) == N:
			game.allLogic()
			print game.inrl

### FIXED CODE ###

from math import sqrt

class Ufo:
	def __init__(self,px,py,d,vd,ui):
		self.pd=sqrt(px**2+py**2)
		self.px=float(px)
		self.py=float(py)
		self.ex=self.px/self.pd
		self.ey=self.py/self.pd
		self.d=float(d)
		self.vd=float(vd)
		self.vx=-self.vd*self.ex
		self.vy=-self.vd*self.ey
		self.i=ui
	def move(self):
		self.pd -= self.vd
		self.px += self.vx
		self.py += self.vy



while True:
	R,ul=tuple(map(int,raw_input().split()))
	if(R==0 and ul==0): break
	us=[]
	for ui in xrange(ul):
		px,py,d,vd = tuple(map(int,raw_input().split()))
		u = Ufo(px,py,d,vd,ui)
		us.append(u)

	re=0
	while True:
		for u in us: u.move()
		us.sort(key=lambda u: u.pd)

		for u in us[:]:
			if u.pd<=R:
				re+=1
				us.remove(u)
				#print u.i, "due to invade"
				continue
			else:
				break
		if len(us)==0: break

		neu=us.pop(0)
		#print "focus",neu.i
		#print neu.i,"due to hit"

		for u in us[:]:
			d = u.pd*abs(neu.ex*u.ey-neu.ey*u.ex)	#u kara laser ni orosita suisen no nagasa
			if d<u.d:
				if u.pd*(neu.ex*u.ex+neu.ey*u.ey)+sqrt(u.d**2-d**2) > R:
					us.remove(u)
					#print u.i, "due to hit"
		if len(us)==0: break

	print re