n = input()
a = input()
b = input()
check = True
for x in xrange(n+1):
	if a*x > n:
		break
	y = (n-x*a)/b
	if ((x*a)+(y*b)) == n:
		check = False
		print 'YES'
		print x, y
		break
if check:
	print 'NO'

from fractions import gcd

n, a, b = [int(input()) for _ in range(3)]
i = 0
while i * a <= n:
    if (n - i * a) % b == 0:
        print('%s\n%d %d' % ('YES', i, (n - i * a) // b))
        exit()
    i += 1

print('NO')

n=input();a=input();b=input()
nTmp=n
while n%a and n>0:
    n-=b
if n<0:
    print "NO"
else:
    print "YES"
    print n/a,(nTmp-n)/b

import sys
import collections
from collections import Counter
import itertools
import math
import timeit

#input = sys.stdin.readline

#########################
# imgur.com/Pkt7iIf.png #
#########################

def sieve(n):
    if n < 2: return list()
    prime = [True for _ in range(n + 1)]
    p = 3
    while p * p <= n:
        if prime[p]:
            for i in range(p * 2, n + 1, p):
                prime[i] = False
        p += 2
    r = [2]
    for p in range(3, n + 1, 2):
        if prime[p]:
            r.append(p)
    return r

def divs(n, start=1):
    divisors = []
    for i in range(start, int(math.sqrt(n) + 1)):
        if n % i == 0:
            if n / i == i:
                divisors.append(i)
            else:
                divisors.extend([i, n // i])
    return divisors

def divn(n, primes):
    divs_number = 1
    for i in primes:
        if n == 1:
            return divs_number
        t = 1
        while n % i == 0:
            t += 1
            n //= i
        divs_number *= t

def flin(d, x, default = -1):
    left = right = -1
    for i in range(len(d)):
        if d[i] == x:
            if left == -1: left = i
            right = i
    if left == -1:
        return (default, default)
    else:
        return (left, right)

def ceil(n, k): return n // k + (n % k != 0)
def ii(): return int(input())
def mi(): return map(int, input().split())
def li(): return list(map(int, input().split()))
def lcm(a, b): return abs(a * b) // math.gcd(a, b)
def prr(a, sep=' '): print(sep.join(map(str, a)))
def dd(): return collections.defaultdict(int)
def ddl(): return collections.defaultdict(list)

n = ii()
a = ii()
b = ii()
x = 0
while n - x*a >= 0:
    if not (n - x*a) % b:
        print('YES')
        exit(print(x, (n - x*a) // b))
    x += 1
print('NO')

n = int(input())
a = int(input())
b = int(input())
first = n
if n % a == 0:
    print('YES')
    print(n//a, 0)
elif n % b == 0:
    print('YES')
    print(0, n // b)
else:
    while n % a and n > 0:
        n -= b
    if n < 0:
        print('NO')
    else:
        print('YES')
        print(n//a, (first-n) // b)

n = int(input())
a = int(input())
b = int(input())
ans = 'NO'
arr = []
for x in range(n // a + 1):
    if (n - x * a) % b == 0:
        ans = 'YES'
        arr.append(x)
        arr.append((n - x * a) // b)
        break
print(ans)
if ans == 'YES':
    print(*arr)

m = int(input())
a, b = int(input()), int(input())
sw = 0 if a >= b else 1
if sw: a, b = b, a
# a >= b
if a * (m//a) == m:
    print('YES')
    aa = m//a
    bb = 0
    if sw: aa, bb = bb, aa
    print(aa, bb)
else:
    mm = m
    aa = 0
    while(m > 0):
        if b * (m//b) == m:
            print('YES')
            bb = m//b
            if sw: aa, bb = bb, aa
            print(aa, bb)
            break
        aa += 1
        m -= a
    else:
        print('NO')

n, a, b, x = int(input()), int(input()), int(input()), 0
while x * a <= n:
    if (n - x * a) % b == 0:
        print('YES')
        print(x, (n - x * a) // b)
        exit()
    x += 1
print('NO')

mod = 1000000007
ii = lambda : int(input())
si = lambda : input()
dgl = lambda : list(map(int, input()))
f = lambda : map(int, input().split())
il = lambda : list(map(int, input().split()))
ls = lambda : list(input())
n=ii()
n1=n
n2=n
a=ii()
b=ii()
c1, c2, c3, c4=0, 0, 0, 0
while n>=b:
    if n%a==0:
        c1+=n//a
        break
    n-=b
    c2+=1
while n1>=a:
    if n1%b==0:
        c4=n1//b
        break
    n1-=a
    c3+=1
if (c1+c2)>=(c3+c4) and c1*a+c2*b==n2:
    print('YES')
    print(c1,c2)
elif c3*a+c4*b==n2:
    print('YES')
    print(c3,c4)
else:
    print('NO')

'''input
10000000
3
999999
'''
n, a, b = int(input()), int(input()), int(input())
for x in range(n//a+1):
	if (n - x*a) % b == 0:
		print("YES")
		print(x, (n- x*a) // b)
		break
else:
	print("NO")

n = int(input())
a = int(input())
b = int(input())
for x in range(n // a + 1):
    if (n - x * a) < 0:
        print("NO")
        exit()
    elif (n - x * a) % b == 0:
        print("YES")
        print(x, (n - x * a) // b)
        exit()
print("NO")

def gcd(a,b):
    if(a==0):
        return b
    return gcd(b%a,a)

n = int(input())
a = int(input())
b = int(input())
g = gcd(a,b)
if(n%g!=0):
    print("NO")
else:
    if(n%a==0):
        print("YES")
        print(n//a,0)
    elif(n%b==0):
        print("YES")
        print(0,n//b)
    else:
        f=-1
        ans = 0
        while(n>1):
            n-=b
            ans+=1
            if(n<0):
                break
            if(n%a==0):
                f=1
                print("YES")
                print(n//a,ans)
                break
        if(f==-1):
            print("NO")

def h(m,n):
    while n:
        m,n=n,m%n
    return m
n=int(input())
a=int(input())
b=int(input())
hh=h(a,b)
s=0
if n%hh!=0:
    print('NO')
else:
    if a>b:
        c=n//a
        for i in range(0,c+1):
            d=n-a*i
            e=d//b
            f=d%b
            if f==0:
                B=e
                A=i
                s+=1
                print('YES')
                break
        if s!=0:
            print(A,end=' ')
            print(B)
        else:
            print('NO')
    elif a<b:
        c=n//b
        for i in range(0,c+1):
            d=n-b*i
            e=d//a
            f=d%a
            if f==0:
                A=e
                B=i
                s+=1
                print('YES')
                break
        if s!=0:
            print(A,end=' ')
            print(B)
        else:
            print('NO')
    else:
        if n%a==0:
            print('YES')
            print(int(n/a),end=' ')
            print(0)
        else:
            print('NO')

import sys,math,string,bisect
input=sys.stdin.readline
from collections import deque
L=lambda : list(map(int,input().split()))
Ls=lambda : list(input().split())
M=lambda : map(int,input().split())
I=lambda :int(input())
n=I()
a=I()
b=I()
if(n%math.gcd(a,b)):
    print("NO")
else:
    if(n%b==0):
        print("YES")
        print(0,n//b)
        exit()
    i=0
    while(n>0):
        if(n%a==0):
            print("YES")
            print(n//a,i)
            exit()
        n-=b
        i+=1
    print("NO")

a=int(input())
b=int(input())
c=int(input())
ans=0

while(a>0 and a%b!=0):
	a=a-c
	ans+=1
if(a<0):
	print("NO")
else:
	print("YES")
	print(a//b,ans)

c=int(input())
m=int(input())
n=int(input())
def gcd(n,m):
    if m==0:
        return n
    else:
        return gcd(m,n%m)
if c%gcd(n,m)==0:
    f=0
    x=c//n
    while x>=0:
        if (c-x*n)%m==0:
            f=1
            break
        else:
            x-=1
    if f==1:
        y=(c-x*n)//m
        print('YES')
        print(y,x)
    else:
        print('NO')

else:
    print('NO')

# -*- coding: utf-8 -*-
"""
Created on Sat Dec 16 14:43:34 2017

@author: ms
"""

def main():
    n = int(input())
    a = int(input())
    b = int(input())

    if(n%a == 0):
        print('YES')
        print(int(n/a), 0)
        return
    if(n%b == 0):
        print('YES')
        print(0, int(n/b))
        return

    if(a%2 == 0 and b%2 == 0):
        if (n%2 == 1):
            print('NO')
            return

    mx = max(a,b)
    mn = min(a,b)
    new = 0
    found = 0
    i = 0
    while(n>=0):
        if(n%mn == 0):
            found = 1
            new = n
            break
        n -= mx
        i += 1
    if found:
        print('YES')
        if (mx == a):
            print(i, int(new/b))
        if (mx == b):
            print(int(new/a), i)
    else:
        print('NO')

main()

n = int(input())
a = int(input())
b = int(input())
sw = 0
if b > a:
  a, b = b, a
  sw = 1
ans = "NO"
for i in range(n // a + 1):
  if (n - i * a) % b == 0:
    ans = "YES"
    break
print(ans)
if ans == "YES":
  if sw:
    print((n - i * a) //b, i)
  else:
    print(i, (n - i * a) // b)

import math

def extendedgcd(x, y):
    if x < y:
        x, y = y, x
    if x % y == 0:
        return [0, 1, y]
    eqn = [1, -1 * int(x/y), 0]
    coeff = extendedgcd(y, x % y)
    return [eqn[0]*coeff[1], coeff[1]*eqn[1]+coeff[0], coeff[2]]

n, a, b = int(input()), int(input()), int(input())
eqn = extendedgcd(a, b)

if a < b:
    eqn[0], eqn[1] = eqn[1], eqn[0]

if not n % eqn[2] == 0:
    print("NO")
else:
    eqn[0] *= (n/eqn[2])
    eqn[1] *= (n/eqn[2])
    if (not eqn[0] < 0 and eqn[1] < 0) or (not eqn[1] < 0 and eqn[0] < 0):
        if eqn[0] < 0:
            low, high = (-1*eqn[0]*eqn[2])/b, (eqn[1]*eqn[2])/a
            low = low if math.ceil(low) == low else math.ceil(low)
            high = high if math.floor(high) == high else math.floor(high)

            if low <= high:
                x, y = eqn[0]+low*b/eqn[2], eqn[1]-low*a/eqn[2]
                print('YES\n'+str(int(x))+' '+str(int(y)))
            else:
                print('NO')

        elif eqn[1] < 0:
            low, high = (-1*eqn[1]*eqn[2])/a, (eqn[0]*eqn[2])/b
            low = low if math.ceil(low) == low else math.ceil(low)
            high = high if math.floor(high) == high else math.floor(high)

            if low <= high:
                x, y = eqn[0]-low*b/eqn[2], eqn[1]+low*a/eqn[2]
                print('YES\n'+str(int(x))+' '+str(int(y)))
            else:
                print('NO')

    elif eqn[0] >= 0 and eqn[1] >= 0:
        print('YES\n'+str(int(eqn[0]))+' '+str(int(eqn[1])))

    else:
        print('NO')

def HOD(a, b):
    if a * b == 0:
        return a + b
    if a > b:
        a, b = b, a
    return HOD(a, b % a)

def main():
    n = int(input())
    a = int(input())
    b = int(input())
    if n % HOD(a, b):
        print('NO')
    else:
        f = 0
        if a < b:
            a, b = b, a
            f = 1
        for i in range(1 + n // a):
            if (n - i * a) % b == 0:
                print('YES')
                if f:
                    print((n - i * a) // b, i)
                else:
                    print(i, (n - i * a) // b)
                return
        print('NO')

main()

import math

def solve():
    n = int(input())
    a = int(input())
    b = int(input())
    if n % 2 != 0 and a % 2 == 0 and b % 2 == 0:
        print("NO")
        return

    else:
        for x in range(10000001):
            k = n - a * x
            if k >= 0 and k % b == 0:
                print("YES")
                print(x, k // b)
                return
            if k < 0:
                print("NO")
                return

    print("NO")
    return

#t = int(input())
for _ in range(1):
    solve()

n=int(input())
a=int(input())
b=int(input())
def gcd(x,y):
      if y==0:
            return x
      else:
            return gcd(y,x%y)
x=True
if n%gcd(a,b)==0:
      if a>b:
            for i in range(0,n//a+1):
                  if (n-i*a)%b==0:
                        print("YES")
                        x=False
                        print(i,"",(n-i*a)//b)
                        break
      else:
            for i in range(0,n//b+1):
                  if (n-i*b)%a==0:
                        print("YES")
                        x=False
                        print((n-i*b)//a,"",i)
                        break
if x:
      print("NO")

import time
from fractions import gcd

n, a, b = int(input()), int(input()), int(input())
t = time.time()

if n%a == 0:
	print('YES')
	print('{} {}'.format(int(n/a),0))
	exit()

if n%b == 0:
	print('YES')
	print('{} {}'.format(0,int(n/b)))
	exit()

if n%gcd(a,b) != 0:
	print("NO");
	exit()

i = 1
while (n-a*i) >= 0 and (n-b*i) >= 0:
	if (n-a*i)%b == 0:
		y = (n-a*i)//b
		print('YES')
		print('{} {}'.format(i,y))
		exit()

	if (n-b*i)%a == 0:
		x = (n-b*i)//a
		print('YES')
		print('{} {}'.format(x,i))
		exit()
	i+=1
print("NO");
# print(t-time.time())

c,a,b=int(input()),int(input()),int(input())
a1,b1=max(a,b),min(a,b)
while max(a1,b1)%min(a1,b1)!=0 :
    a1=a1-a1//b1*b1
    if b1>a1 :a1,b1=b1,a1
if c%min(a1,b1)!=0:print('NO')
else:
    for x in range(c//max(a,b)+1):
        if a>b : y=(c-x*a)/b
        else:y=(c-x*b)/a
        if (int(y)==y) and (y>=0):
            print('YES')
            if a>b :print(x,' ',int(y))
            else :print(int(y),' ',x)
            break
    else: print('NO')

n = int(input())
a = int(input())
b = int(input())
for i in range(n+1):
    if a*i>n:
        break
    else:
        if (n-a*i)%b==0:
            print("YES")
            print(i,(n-a*i)//b)
            exit()
print("NO")

n=int(input())
a=int(input())
b=int(input())
flags=False
for i  in range(n//a+1):
    if n-i*a>=0 and (n-i*a)%b==0:
        print("YES")
        print(i,(n-i*a)//b)
        flags=True
        break
if not flags:
    print("NO")

# cook your dish here
n=int(input())
a=int(input())
b=int(input())
f=0
if a<b:
    a,b=b,a
    f=1

i=0
s=n
while s>0:
    s=n-i*a
    if s<0:
        print('NO')
        break
    p=s%b
    if p==0:
        print('YES')
        if f==0:
            print(i,s//b)
        else:
            print(s//b,i)
        break
    i=i+1
else:
    print('NO')

from sys import stdin, stdout

n = int(stdin.readline())
a = int(stdin.readline())
b = int(stdin.readline())
x = 0
flg = False
if a % 2 == 0 and b % 2 == 0 and not n % 2 == 0:
    stdout.write("NO\n")
    exit()
elif n % a == 0:
    stdout.write("YES\n")
    stdout.write(str(n // a) + " " + str(0))
    exit()
elif n % b == 0:
    stdout.write("YES\n")
    stdout.write(str(0) + " " + str(n // b))
    exit()
elif a == b and not n % b ==0:
    stdout.write("NO\n")
else:
    l = max(a, b)
    r = min(a, b)
    while l < n:
        if (n - l) % r == 0:
            print('YES')
            fig = True
            if a < b:
                stdout.write(str((n-l)//a)+" "+ str(l//b))
                exit()
            else:
                stdout.write(str(l//a) + " " + str((n-l)//b))
                exit()

            break
        l = l + max(a, b)
    if not flg:
        stdout.write("NO\n")

from sys import stdin
n = int(stdin.readline())
a = int(stdin.readline())
b = int(stdin.readline())
ch = 0
if a < b:
 x = a; a = b; b = x; ch = 1
k = n/a
ans = 'NO'
for i in xrange(k+1):
 if (n - i*a)%b==0:
  print 'YES'
  ans = "%d %d"%(i,(n-a*i)/b)
  if ch:
   ans = "%d %d"%((n-a*i)/b,i)
  break
print ans

from sys import stdin, stdout

#n = int(stdin.readline())
#a = int(stdin.readline())
#b = int(stdin.readline())
n = int(input())
a = int(input())
b= int(input())
x = 0
flg = False
if a % 2 == 0 and b % 2 == 0 and not n % 2 == 0:
    #stdout.write("NO\n")
    print("NO")
    exit()
elif n % a == 0:
    #stdout.write("YES\n")
    print("YES")
    #stdout.write(str(n // a) + " " + str(0))
    print(n//a, 0)
    exit()
elif n % b == 0:
    #stdout.write("YES\n")
    print("YES")
    #stdout.write(str(0) + " " + str(n // b))
    print(0, n//b)
    exit()
elif a == b and not n % b ==0:
    #stdout.write("NO\n")
    print("NO")
else:
    l = max(a, b)
    r = min(a, b)
    while l < n:
        if (n - l) % r == 0:
            print('YES')
            fig = True
            if a < b:
                #stdout.write(str((n-l)//a)+" "+ str(l//b))
                print((n - l) // a, l // b)
                exit()
            else:
                #stdout.write(str(l//a) + " " + str((n-l)//b))
                print(l // a, (n - l) // b)
                exit()

            break
        l = l + max(a, b)
    if not flg:
        #stdout.write("NO\n")
        print("NO")

def egcd(a, b):
    x,y, u,v = 0,1, 1,0
    while a != 0:
        q, r = b//a, b%a
        m, n = x-u*q, y-v*q
        b,a, x,y, u,v = a,r, u,v, m,n
    gcd = b
    return gcd, x, y

import math
n=int(input())
a=int(input())
b=int(input())
gcd,x,y=(egcd(a,b))

status=0
if((n%gcd)!=0):
    print("NO")
    #print("point1")

else:
    multiply=n/gcd
    x1=int(multiply*x)
    y1=int(multiply*y)
    #print("gcd and soln to n")
    #print(gcd,x1,y1)
    d1=b/gcd
    d2=a/gcd
    rangemin= int(math.ceil(-x1/d1))
    rangemax= int(y1//d2)
    #print("rangemin and rangemax")
    #print(rangemin,rangemax)
    if(rangemin>rangemax):
        print("NO")
        #print("point2")
    else:
        #print("YES")
        #solx=x1+rangemin*d1
        #soly=y1-rangemin*d2
        m=rangemin
        while(m<=rangemax):
            solx=x1+m*d1
            soly=y1-m*d2
            if(solx>=0 and soly>=0):
                print("YES")
                status=1
                print(str(int(solx))+" "+str(int(soly)))
                break
            m=m+1

        if(status==0):
            print("NO")
            #print("point3")

n = int(raw_input())
a = int(raw_input())
b = int(raw_input())

if n < a and n < b:
    print 'NO'
    exit()

from fractions import gcd
c = gcd(a,b)
a /= c
b /= c

if n % c != 0:
    print 'NO'
else:
    n /= c

    def euclid(a, b):
        if a == 0:
            return (0, 1, b)
        (x, y, res) = euclid(b%a, a)
        return (y - (b/a) * x, x, res)

    (a_inv, y, res) = euclid(a, b)

    x_modb = (a_inv * n) % b
    for x in xrange(x_modb,n+1,b):
        by = (n - a*x)
        if by >= 0 and by % b == 0:
            print 'YES'
            print '{} {}'.format(x, by/b)
            exit()
    print 'NO'

from sys import stdin, stdout

n = int(stdin.readline())
a = int(stdin.readline())
b = int(stdin.readline())
x = 0
flg = False
while n >= 0:
    if n % b == 0 or n % b == 0:
        stdout.write("YES\n")
        stdout.write(str(x)+" "+str(n // b))
        flg = True
        break
    n = n - a
    x += 1
if not flg:
    stdout.write("NO\n")

n = int(input())
a = int(input())
b = int(input())
x = 0
y = -1
while a * x <= n:
	if (n - a * x) % b == 0:
		y = (n - a * x) // b
		break
	x += 1
if y == -1:
	print("NO")
else:
	print("YES")
	print(x, y, sep=" ")

z=input;n,a,b=int(z()),int(z()),int(z())
for i in range(min(a,b,n//(max(a,b)) +1)):
    if (n-i*a)%b==0:
        print('YES')
        print(i,(n-a*i)//b)
        break
    elif ((n-b*i)%a)==0:
        print('YES')
        print((n-b*i)//a,i)
        break
else:print('NO')

a=int(input())
b=int(input())
c=int(input())
if(b>c):

	for j in range(a//b +1):
		if((a-(j*b))%c==0):
			print("YES")
			print(j,(a-(j*b))//c)
			break
	else:

		print("NO")

else:
	for j in range(a//c +1):
		if((a-(j*c))%b==0):
			print("YES")
			print((a-(j*c))//b,j)
			break
	else:
		print("NO")

t = input()
bo = input()
ba = input()
if t%bo == 0:
	print 'YES'
	print t/bo,0
elif t%ba == 0:
	print 'YES'
	print 0,t/ba
else:
	flag = 0
	for i in range(1,t/bo+1):
		if (t - i*bo)%ba == 0:
			flag = 1
			print 'YES'
			print i, (t-i*bo)/ba
			break
	if flag == 0:
		print 'NO'

n=int(input())

a=int(input())

b=int(input())

is_swapped=b>a

if is_swapped:

	a,b=b,a

if a%b==0 and n%b!=0:

	print('NO')

	exit()

for i in range(n//a+1):

	if (n-a*i)%b==0:

		print('YES')

		x=i

		y=(n-a*i)//b

		if is_swapped:

			x,y=y,x

		print(x,y)

		exit()

print('NO')

# Made By Mostafa_Khaled

from fractions import gcd

n = int(raw_input())
a = int(raw_input())
b = int(raw_input())

g = gcd(a,b)
if n % g != 0:
    print "NO"
    exit()
if g != 1:
    n /= g
    a /= g
    b /= g

if n % b == 0:
    print "YES\n0 " + str(n/b)
    exit()

def modInverse(u, v):
    m0 = v
    y = 0
    x = 1
    if v == 1:
        return 0
    while u > 1:
        q = u / v
        t = v
        v = u % v
        u = t
        t = y
        y = x - q*y
        x = t
    if x < 0:
        x += m0
    return x

x = (modInverse(a,b) * n) % b

while a * x <= n:
    if (n - a * x) % b == 0:
        print "YES\n" + str(x) + " " + str((n-a*x)/b)
        exit()
    x += b
print "NO"

import sys, re

n = int(sys.stdin.readline())
a = int(sys.stdin.readline())
b = int(sys.stdin.readline())
for i in range(10000001):
    if (n - a * i) % b == 0 and (n - a * i) >= 0:
        print('YES')
        print(i, (n - a * i) // b)
        sys.exit(0)
print('NO')

from sys import stdout
# fi=open("input.txt","r")
# fo=open("output.txt","w")

x=int(raw_input())
a=int(raw_input())
b=int(raw_input())

if x%a==0:
	stdout.write("YES\n")
	stdout.write(str(x/a)+" 0\n")
elif x%b==0:
	stdout.write("YES\n")
	stdout.write("0 "+str(x/b)+"\n")
elif a%b==0 or b%a==0:
	stdout.write("NO\n")
else:
	cpyx=x
	flag=False
	while x>=0:
		if x%b==0:
			flag=True
			stdout.write("YES\n")
			stdout.write(str((cpyx-x)/a)+" ")
			stdout.write(str(x/b)+"\n")
			break
		x-=a
	if not flag:
		stdout.write("NO\n")

import sys
from fractions import gcd
n=input()
x=input()
y=input()
flag=False
if(x<y):
    temp=x
    x=y
    y=temp
    flag=True
gcf=gcd(x,y)
if(n%gcf!=0):
    print("NO")
    sys.exit(0)
a=0
while(a*x<=n):
    if((n-a*x)%y==0):
        b=(n-a*x)/y
        if(flag==False): print("YES\n"+str(a)+" "+str(b))
        else : print("YES\n"+str(b)+" "+str(a))
        sys.exit(0)
    a+=1
print("NO")

n = input()
a = input()
b = input()

T = a
flag = False
if b > a:
    T = b
    b = a
    flag = True

x = 0

if int(T) == int(b):
    if not n % b == 0:
	print 'NO'
	quit()

while x * T <= n:
    val = n - (x * T)
    if val % b == 0:
	y = val / b
        print 'YES'
	if flag:
	    print y, x
	else:
	    print x, y
	quit()
    x += 1

print 'NO'

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
if(x%y!=0 and x%z!=0):
    while(x%y != 0 and toolong > 0 and x > y):
    	x -= z
    	bar += 1
    	toolong -= z
if(x % y == 0 and x > 0):
	cola += x // y
elif(x % z == 0 and x > 0):
	bar += x // z
else:
	print("NO")
	quit()
print("YES")
print(cola, bar)

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
while(x%y != 0 and toolong > 0 and x > y):
	x -= z
	bar += 1
	toolong -= z
if(x % y == 0 and x > 0):
	cola += x // y
elif(x % z == 0 and x > 0):
	bar += x // z
else:
	print("NO")
	quit()
print("YES")
print(cola, bar)

n = int(raw_input())
a = int(raw_input())
b = int(raw_input())
for i in range(min(a, b, n / max(a, b) + 1)):
	if (n - i * a) % b == 0:
		print 'YES\n', i, (n - i * a) / b
		break
	if (n - i * b) % a == 0:
		print 'YES\n', (n - i * b) / a, i
		break
else:
	print 'NO'

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=2+(x%1000)+((y*z)*10)
for i in range(x):
	if((y == z and x % y != 0) or (x <= 0) or (toolong <= 0) or ((x<z) and (x<y))):
		print("NO")
		quit()
	if(x % y == 0):
		cola = x // y
		break
	if(x % z == 0):
		bar = x // z
		break
	elif(y>z or (x>y and z>x)):
		while(x%z != 0 and toolong > 0 and x > 0):
			x -= y
			cola += 1
			toolong -= y
	elif(z>y or (x>z and y>x)):
		while(x%y != 0 and toolong > 0 and x > 0):
			x -= z
			bar += 1
			toolong -= y
print("YES")
print(cola, bar)

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
for i in range(toolong):
	if((y == z and x % y != 0) or (x <= 0) or (toolong <= 0)):
		print("NO")
		quit()
	if(x % z == 0):
		bar = x // z
		break
	if(x % y == 0):
		cola = x // y
		break
	while(x%z != 0 and toolong > 0 and x > 0):
		x -= y
		cola += 1
		toolong -= y
print("YES")
print(cola, bar)

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
for i in range(toolong):
	while(x%y != 0 and toolong > 0 and (x > 0 and x > y)):
		x -= z
		bar += 1
		toolong -= z
	if(x % y == 0 and x > 0):
		cola += x // y
		break
	if(x % z == 0 and x > 0):
		bar += x // z
		break
	else:
		print("NO")
		quit()
print("YES")
print(cola, bar)

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
for i in range(toolong):
	if(x % y == 0):
		cola = x // y
		break
	if(x % z == 0):
		bar = x // z
		break
	if((y == z and x % y != 0) or (z + y > x) or (x <= 0) or (toolong <= 0)):
		print("NO")
		quit()
	while(x%y != 0 and toolong > 0 and x >= z):
		x -= z
		bar += 1
		toolong -= z
print("YES")
print(cola, bar)

from math import sqrt
n = int(input())
a = int(input())
b = int(input())
for i in range(int(n / 2 + 0.5)):
    if n - (i * b) >= 0 and (n - (i * b)) % a == 0:
        print("YES")
        print((n - i * b) // a, i)
        exit()
print("NO")

import math
import sys
N = int(input())
a = int(input())
b = int(input())
div = math.gcd(N, math.gcd(a, b))
if div == 1:
    if math.gcd(a, b) != 1:
        print("NO")
        sys.exit()
else:
    N, a, b = N/div, a/div, b/div

if a == 1:
    print("YES")
    print(int(a*N), 0)
    sys.exit()
elif b == 1:
    print("YES")
    print(0, int(b*N))
    sys.exit()
elif N % 2 == 0:
    if a == 2:
        print("YES")
        print(int(N/2), 0)
        sys.exit()
    elif b == 2:
        print("YES")
        print(0, int(N/2))
        sys.exit()
r = 0
while r*a <= N:
    if (N-(r*a)) % b == 0:
        print("YES")
        print(r, int((N-(r*a))/b))
        sys.exit()
    r += 1
print("NO")

import bisect

def list_output(s):
    print(' '.join(map(str, s)))

def list_input(s='int'):
    if s == 'int':
        return list(map(int, input().split()))
    elif s == 'float':
        return list(map(float, input().split()))
    return list(map(str, input().split()))

n = int(input())
a = int(input())
b = int(input())
for x in range(n+1):
    t = n - x*a
    if t >= 0 and t%b == 0:
        y = t//b
        print('YES')
        print(' '.join(map(str, [x, y])))
        exit(0)
print('NO')

'''
INPUT SHORTCUTS
N, K = map(int,input().split())
N ,A,B = map(int,input().split())
string = str(input())
arr = list(map(int,input().split()))
N = int(input())
'''

def main():
	N = int(input())
	a = int(input())
	b = int(input())
	for i in range(0,N//a+1):
		if (N-(i*a))%b==0 and (N-(i*a))>-1:
			print("YES")
			print(i,(N-(i*a))//b)
			return
	print("NO")

main()

n=int(input())
a=int(input())
b=int(input())

aa=[]
i=0
while(i*a<=n):
    aa.append(i*a)
    i+=1
f=0

for i in range(len(aa)):
    if (n-aa[i])%b==0:
        f=1
        print("YES")
        print(i,(n-aa[i])//b)
        break
if f==0:
    print("NO")

n = int(input())
a = int(input())
b = int(input())
l = n//a
for i in range(l,-1,-1):
    t = n-(i*a)
    r = t%b
    if r==0:
        print("YES")
        print(i,t//b)
        break
if r!=0:
    print("NO")

import math
def main():
    n = int(input())
    a = int(input())
    b = int(input())
    if n % math.gcd(a, b):
        print('NO')
    else:
        flag = 0
        if a < b:
            a, b = b, a
            flag = 1
        for i in range(1 + n // a):
            if (n - i * a) % b == 0:
                print('YES')
                if flag:
                    print((n - i * a) // b, i)
                else:
                    print(i, (n - i * a) // b)
                return
        print('NO')

main()

n=int(input())
a=int(input())
b=int(input())
def gcd(x,y):
      if y==0:
            return x
      else:
            return gcd(y,x%y)
x=True
if n%gcd(a,b)==0:
      if a>b:
            for i in range(0,n//a+1):
                  if (n-i*a)%b==0:
                        print("YES")
                        x=False
                        print(i,"",(n-i*a)//b)
                        break
      else:
            for i in range(0,n//b+1):
                  if (n-i*b)%a==0:
                        print("YES")
                        x=False
                        print((n-i*b)//a,"",i)
                        break
if x:
      print("NO")

import math

n = int( input() )
a = int( input() )
b = int( input() )

#print( n, a, b )

MAXVAL = 10000000

x = 0

while a * x <= n:

    if  ( n - x * a ) % b == 0:
        print( "YES" )
        print( x,  ( n - x * a ) // b )
        exit(0)

    x += 1

print( "NO" )

import sys
LI=lambda:list(map(int, sys.stdin.readline().split()))
MI=lambda:map(int, sys.stdin.readline().split())
SI=lambda:sys.stdin.readline().strip('\n')
II=lambda:int(sys.stdin.readline())

c, a, b=II(), II(), II()
ok=False
for i in range(0, c, a):
    if (c-i)%b==0:
        ok=True
        ans=[i//a, (c-i)//b]
for i in range(0, c, b):
    if (c-i)%a==0:
        ok=True
        ans=[(c-i)//a, i//b]
if ok:
    print('YES')
    print(*ans)
else:
    print('NO')

n,a,b=[int(input())for _ in[0]*3]
for i in range(n+2):
  if i*a>n:break
  if (n-i*a)%b<1:
    print(f'YES\n{i} {(n-i*a)//b}')
    break
if i*a>n:print('NO')

n=int(input())
a=int(input())
b=int(input())
ma=max(a,b)
mi=min(a,b)
k=ma//mi
count=0
if a==b:
    if n%a==0:
        print('YES')
        print(0,n//a)
    else:
        print('NO')
elif ma//mi == ma/mi:
    if n%mi==0:
        print('YES')
        if b==ma:
            print(n//a,0)
        else:
            print(0,n//b)
    else:
        print('NO')
elif b>a:
    for i in range(n//b + 2):
        if (n-i*b)>=0 and (n-i*b)%a==0:
            print("YES")
            count=1
            print((n-i*b)//a,end=' ')
            print(i)
            break
    if count==0:
        print("NO")
else:
    for i in range(n//a + 2):
        if (n-i*a)>=0 and (n-i*a)%b==0:
            print("YES")
            count=1
            print(i,end=' ')
            print((n-i*a)//b,end=' ')
            break
    if count==0:
        print("NO")

n = int(input())
a = int(input())
b = int(input())

def gcd(a, b):
    if (a == 0):
        return b, 0, 1

    d, x1, y1 = gcd(b%a, a)
    x = y1-x1*(b//a)
    y = x1
    return d, x, y

d, x, y = gcd(a, b)
d, x, y = gcd(d, n)
a //= d
b //= d
n //= d
d, x, y = gcd(a, b)

if (d>1):
    print("NO")
else:
    x0 = x*n
    y0 = y*n
    l = (-x0+b-1)//b
    r = y0//a
    if (r-l>=0):
        print("YES")
        print(x0+b*l, y0-a*l)
    else:
        print("NO")

n=int(input())
a=int(input())
b=int(input())

is_swapped=b>a
if is_swapped:
	a,b=b,a
if a%b==0 and n%b!=0:
	print('NO')
	exit()
for i in range(n//a+1):
	if (n-a*i)%b==0:
		print('YES')
		x=i
		y=(n-a*i)//b
		if is_swapped:
			x,y=y,x
		print(x,y)
		exit()
print('NO')

n = int(input())
x = int(input())
y = int(input())

import sys

def gcd(a,b):
    if b > a:
        return gcd(b,a)
    if a % b == 0:
        return b
    return gcd(b, a%b)

d = gcd(x,y)
if n % d != 0:
    print('NO')
    sys.exit(0)

def phi(n):
    result = n
    i = 2
    while i * i <= n:
        if n % i == 0:
            while n % i == 0:
                n //= i
            result -= result // i
        i += 1
    if n > 1:
        result -= result // n
    return result

x1 = x//d
y1 = y//d
n = n//d

b = (n*pow(y1, phi(x1) - 1, x1)) % x1

a = (n - y1*b) // x1

if a >= 0 and b >= 0:
    print('YES')
    print(a, b)
else:
    print('NO')

import math

n=int(input())
a=int(input())
b=int(input())

c=max(a,b)
d=min(a,b)
i=0
flag=0
gc = math.gcd(c,d)
if(n%gc==0):
    while(c*i<=n):
        diff=n-c*i
        if(diff%d==0):
            flag=1
            print("YES")
            if(c==a):
                print(i,(diff)//d)
            else:
                print((diff)//d,i)
            break
        i+=1
if(flag==0):print("NO")

n = int(input())
a = int(input())
b = int(input())

def gcd(a, b):
    if a * b == 0:
        return a + b
    return gcd(b, a % b)

d = gcd(a, b)
if n % d != 0:
    print("NO")
else:
    n, a, b = n//d, a//d, b//d
    if a >= b:
        for x in range(n // a + 1):
            if (n - a * x) % b == 0:
                print("YES")
                print(x, (n - a * x) // b)
                break
        else:
            print("NO")
    else:
        for y in range(n // b + 1):
            if (n - b * y) % a == 0:
                print("YES")
                print((n - b * y) // a, y)
                break
        else:
            print("NO")

from math import gcd
def xgcd(a, b):
    """return (g, x, y) such that a*x + b*y = g = gcd(a, b)"""
    x0, x1, y0, y1 = 0, 1, 1, 0
    while a != 0:
        q, b, a = b // a, a, b % a
        y0, y1 = y1, y0 - q * y1
        x0, x1 = x1, x0 - q * x1
    return b, x0, y0

n = int(input())
a = int(input())
b = int(input())
if n % gcd(a, b) == 0:
    g, x ,y = xgcd(a,b)
    lcm = a * b // g
    x *= (n // g)
    y *= (n // g)
    if x < 0:
        change = -(x // (lcm//a))
        x += (lcm//a)*change
        y -= (lcm//b)*change
    elif y < 0:
        change = -(y // (lcm//b))
        x -= (lcm//a)*change
        y += (lcm//b)*change
    if x < 0 or y < 0:
        print("NO")
    else:
        print("YES")
        print(x,y)
else:
    print("NO")

import math
def gcd_e(a, b):
	if(a==0):
		return (0, 1)
	else:
		x_, y_=gcd_e(b%a, a)
		x=y_-(b/a)*x_
		y=x_
		return (x, y)

import sys
from fractions import gcd
n=input()
a=input()
b=input()
if(n%gcd(a, b)!=0):
	print "NO"
	sys.exit()
x, y=gcd_e(a, b)
x=x*(n/gcd(a, b))
y=y*(n/gcd(a, b))
# print x, y
# k=min(x*gcd(a, b)/b, -(y*gcd(a, b)/a))
# x=x-k*b/gcd(a, b)
# y=y+k*a/gcd(a, b)
# if(x<0):
#	x=x+b
#	y=y-a
#elif(y<0):
#	x=x-b
#	y=y+a
if(x<0 and y>=0):
	k=math.ceil(float(abs(x))*gcd(a, b)/b)
	x=x+int(k)*b/gcd(a, b)
	y=y-int(k)*a/gcd(a, b)
elif(x>=0 and y<0):
	a, b=b, a
	x, y=y, x
	k=math.ceil(float(abs(x))*gcd(a, b)/b)
	x=x+int(k)*b/gcd(a, b)
	y=y-int(k)*a/gcd(a, b)
	x, y=y, x
if(x>=0 and y>=0):
	print "YES"
	print x, y
else:
	print "NO"

val = input()
a = input()
b = input()
x  = 0
while x*a <= val:
	t = val - x*a
	if t%b == 0:
		y = t/b
		print 'YES'
		print x,y
		quit()
	x += 1
print 'NO'

I=input
n,a,b=I(),I(),I()
for i in xrange(n+1):
    d=n-a*i
    if d<0:
        print 'NO'
        break
    if 0==d%b:
        print 'YES'
        print i,d/b
        break
else:
    print 'NO'

n = input()
a = input()
b = input()
ans = "NO"
x = 0
while x*a <= n:
    if (n-x*a)%b==0:
        ans = "YES"
        y = (n-x*a)/b
        break
    x+=1
if ans=="YES":
    print ans
    print x,y
else:
    print ans

'''
n burles

Ber-Cola costs a burles and one Bars bar costs b burles

Find out if it's possible to buy some amount of bottles of Ber-Cola and Bars bars and spend exactly n burles.

In other words, you should find two non-negative integers x and y such that Vasya can buy x bottles of Ber-Cola and y Bars bars and x·a + y·b = n or tell that it's impossible
'''
def low(butt,ass):
	if(butt < ass):
		return butt
	else :
		return ass

n = int(input())
cb = int(input())
bb = int(input())
i = 1
v = 0
w = 0
flag = False
muxi = max(bb,cb)
luxi = low(bb,cb)
if(muxi == cb):
	flag = True
#print(muxi,luxi)
ans = i*muxi
#print(ans)
if(muxi%luxi == 0 and n % luxi != 0):
	print("NO")
elif(n % cb == 0 or n % bb == 0):
	print("YES")
	if(n % cb == 0):
		print("{} {}".format(n//cb,0))
	elif(n % bb == 0):
		print("{} {}".format(0,n//bb))
else :
	while(ans<=n):
		if((n-ans)%luxi == 0):
			print("YES")
			if(flag):
				print("{} {}".format(i,(n-ans)//luxi))
			else :
				print("{} {}".format((n-ans)//luxi,i))
			exit()
		i += 1
		ans = muxi*i
	print("NO")

# -*- coding: utf-8 -*-
"""
Created on Sat Dec 16 14:43:34 2017

@author: ms
"""

def main():
    n = int(input())
    a = int(input())
    b = int(input())

    if(n%a == 0):
        print('YES')
        print(int(n/a), 0)
        return
    if(n%b == 0):
        print('YES')
        print(0, int(n/b))
        return

    if(a%2 == b%2):
        if (n%2 != a%2):
            print('NO')

    mx = max(a,b)
    mn = min(a,b)
    new = 0
    found = 0
    i = 0
    while(n>=0):
        n -= mx
        i += 1
        if(n%mn == 0):
            found = 1
            new = n
            break
    if found:
        print('YES')
        if (mx == a):
            print(i, int(new/b))
        if (mx == b):
            print(int(new/a), i)
    else:
        print('NO')

main()

n=int(input())
a=int(input())
b=int(input())
i=n-n//(a+b)*max(a,b)
if(i%min(a,b)!=0):
	print('NO')
else:
	print('YES')
	if(a==max(a,b)):
		print(n//(a+b),i//min(a,b))
	else:
		print(i//min(a,b),n//(a+b))

import sys
import math
import itertools
import functools
import collections
import operator
import fileinput
import copy

ORDA = 97  # a
def ii(): return int(input())
def mi(): return map(int, input().split())
def li(): return [int(i) for i in input().split()]
def lcm(a, b): return abs(a * b) // math.gcd(a, b)
def revn(n): return str(n)[::-1]
def dd(): return collections.defaultdict(int)
def ddl(): return collections.defaultdict(list)
def sieve(n):
    if n < 2: return list()
    prime = [True for _ in range(n + 1)]
    p = 3
    while p * p <= n:
        if prime[p]:
            for i in range(p * 2, n + 1, p):
                prime[i] = False
        p += 2
    r = [2]
    for p in range(3, n + 1, 2):
        if prime[p]:
            r.append(p)
    return r
def divs(n, start=2):
    r = []
    for i in range(start, int(math.sqrt(n) + 1)):
        if (n % i == 0):
            if (n / i == i):
                r.append(i)
            else:
                r.extend([i, n // i])
    return r
def divn(n, primes):
    divs_number = 1
    for i in primes:
        if n == 1:
            return divs_number
        t = 1
        while n % i == 0:
            t += 1
            n //= i
        divs_number *= t
def prime(n):
    if n == 2: return True
    if n % 2 == 0 or n <= 1: return False
    sqr = int(math.sqrt(n)) + 1
    for d in range(3, sqr, 2):
        if n % d == 0: return False
    return True
def convn(number, base):
    new_number = 0
    while number > 0:
        new_number += number % base
        number //= base
    return new_number
def cdiv(n, k): return n // k + (n % k != 0)
def ispal(s): # Palindrome
    for i in range(len(s) // 2 + 1):
        if s[i] != s[-i - 1]:
            return False
    return True
# a = [1,2,3,4,5] -----> print(*a) ----> list print krne ka new way

def main():
	n = ii()
	a = ii()
	b = ii()
	if n % math.gcd(a,b) != 0:
		print('NO')

	for i in range(100000):
		if (n-b*i)%a == 0:
			if (n-b*i)//a >= 0:
				print('YES')
				print((n-b*i)//a, i)
				break
	else:
		print('NO')

main()

import sys, re

n = int(sys.stdin.readline())
a = int(sys.stdin.readline())
b = int(sys.stdin.readline())
if n % abs(a - b) == 0:
    print('NO')
else:
    for i in range(n // b + 1):
        for j in range(n // a + 1):
            if a * i + b * j == n:
                print('YES')
                print(i, j)
                sys.exit(0)

import time
from fractions import gcd

n, a, b = int(input()), int(input()), int(input())
t = time.time()

if n%a == 0:
	print('YES')
	print('{} {}'.format(int(n/a),0))
	exit()

if n%b == 0:
	print('YES')
	print('{} {}'.format(0,int(n/b)))
	exit()

if n%gcd(a,b) != 0:
	print("NO");
	exit()

i = 1
while (n-a*i) >= 0 or (n-b*i) >= 0:
	if (n-a*i)%b == 0:
		y = (n-a*i)//b
		print('YES')
		print('{} {}'.format(i,y))
		exit()

	if (n-b*i)%a == 0:
		x = (n-b*i)//a
		print('YES')
		print('{} {}'.format(x,i))
		exit()
	i+=1
print("NO");
# print(t-time.time())

import math
def ixgcd(a, b):
    """ gcd(a, b) = a * x + b * y
     the extended euclidean gcd algo, iteration """
    x0, x1, y0, y1 = 1, 0, 0, 1
    while b:
        q, a, b = a // b, b, a % b
        x0, x1 = x1, x0 - q * x1
        y0, y1 = y1, y0 - q * y1
    return  a, x0, y0

c = int(input())
a = int(input())
b = int(input())
d, x0, y0 = ixgcd(a,b)
# print(d, x0, y0)
if c%d == 0  and a+b<=c:
    x0 *= c//d
    y0 *= c//d
    # print(x0,y0)
    if x0 >= 0 and y0 >= 0:
        print("YES")
        print(x0, y0)

    elif x0 < 0 and y0 < 0:
        print("NO")
    else:
        if x0 < 0:
            k = (d*x0)/b
            # x1 = (x0 - k * b//d)
        elif y0 < 0:
            k = (-1*d*y0)/a
            # print("test")
            # y1 = (y0 + k * a//d)
        # print("before {}".format(k))
        if k < 0:
            k = math.floor(k)
            # print(k)
        elif k > 0:
            k = math.ceil(k)
            # print(k)
        x1 = x0 - (k*b)//d
        y1 = y0 + (k*a)//d
        print("YES")
        print(x1, y1)
else:
    print("NO")

n = int(raw_input())
a = int(raw_input())
b = int(raw_input())

def euclid1(a,b):
    m,n = 0,1
    x,y = 1,0
    while a > 0:
        tem1, tem2 = b/a, b%a
        tem3 = m-x*tem1
        tem4 = n - y*tem1
        a,b = tem2, a
        m,n,x,y = x,y,tem3, tem4
    return [b,m,n]

k = euclid1(a,b)
if n%k[0] == 0:
    print "YES"
    print k[1]*n/k[0], k[2]*n/k[0]
else:
    print "NO"

import re
import sys
from bisect import bisect, bisect_left, insort, insort_left
from collections import Counter, defaultdict, deque
from copy import deepcopy
from decimal import Decimal
from itertools import (
    accumulate, combinations, combinations_with_replacement, groupby,
    permutations, product)
from math import (acos, asin, atan, ceil, cos, degrees, factorial, gcd, hypot,
                  log2, pi, radians, sin, sqrt, tan)
from operator import itemgetter, mul
from string import ascii_lowercase, ascii_uppercase, digits

def inp():
    return(int(input()))

def inlist():
    return(list(map(int, input().split())))

def instr():
    s = input()
    return(list(s[:len(s)]))

def invr():
    return(map(int, input().split()))

n = inp()
a = inp()
b = inp()
if n % gcd(a, b) == 0:

    y = 0
    x = 0
    while y * b <= n:
        if (n - b*y) % a == 0 and (n-b*y) > 0:
            x = (n - (b*y)) // a
            print("YES")
            print(x, y)
            break
        else:
            print("NO")
        y += 1

else:
    print("NO")

import sys
import math
import itertools
import functools
import collections
import operator
import fileinput
import copy

ORDA = 97  # a
def ii(): return int(input())
def mi(): return map(int, input().split())
def li(): return [int(i) for i in input().split()]
def lcm(a, b): return abs(a * b) // math.gcd(a, b)
def revn(n): return str(n)[::-1]
def dd(): return collections.defaultdict(int)
def ddl(): return collections.defaultdict(list)
def sieve(n):
    if n < 2: return list()
    prime = [True for _ in range(n + 1)]
    p = 3
    while p * p <= n:
        if prime[p]:
            for i in range(p * 2, n + 1, p):
                prime[i] = False
        p += 2
    r = [2]
    for p in range(3, n + 1, 2):
        if prime[p]:
            r.append(p)
    return r
def divs(n, start=2):
    r = []
    for i in range(start, int(math.sqrt(n) + 1)):
        if (n % i == 0):
            if (n / i == i):
                r.append(i)
            else:
                r.extend([i, n // i])
    return r
def divn(n, primes):
    divs_number = 1
    for i in primes:
        if n == 1:
            return divs_number
        t = 1
        while n % i == 0:
            t += 1
            n //= i
        divs_number *= t
def prime(n):
    if n == 2: return True
    if n % 2 == 0 or n <= 1: return False
    sqr = int(math.sqrt(n)) + 1
    for d in range(3, sqr, 2):
        if n % d == 0: return False
    return True
def convn(number, base):
    new_number = 0
    while number > 0:
        new_number += number % base
        number //= base
    return new_number
def cdiv(n, k): return n // k + (n % k != 0)
def ispal(s): # Palindrome
    for i in range(len(s) // 2 + 1):
        if s[i] != s[-i - 1]:
            return False
    return True
# a = [1,2,3,4,5] -----> print(*a) ----> list print krne ka new way

def main():
	n = ii()
	a = ii()
	b = ii()
	if n % math.gcd(a,b) != 0:
		print('NO')
		exit()

	#for i in range(n//2+1):
#		if (n-b*i)%a == 0:
#			if (n-b*i)//a >= 0:
#				print('YES')
#				print((n-b*i)//a, i)
#				break
#	else:
#		print('NO')

	for i in range(n//a):
		if ((n-b*i)%a == 0) or ((n-a*i)%b == 0):
			if (n-b*i)//a >= 0:
				print('YES')
				print((n-b*i)//a,i)
				break
			elif (n-a*i)//b >= 0:
				print('YES')
				print(i, (n-a*i)//b)
				break
	else:
		print('NO')

main()

n = int(input())
a = int(input())
b = int(input())
i = 0
if a >= b:
    while i <= n//a+1:
        if (n - i*a)% b == 0:
            print('YES')
            print(str(i)+' '+str(int((n-i*a)/b)))
            break
        i +=1
        if i == n//a+1:
            print('NO')
else:
    a1 = b
    b1 = a
    while i <= n//a1+1:
        if (n - i*a1)% b1 == 0:
            print('YES')
            print(str(int((n-i*a)/b))+' '+str(i))
            break
        i +=1
        if i == n//a1+1:
            print('NO')

n=input()
a=input()
b=input()
from fractions import gcd
if n%gcd(a,b)!=0:
  print "NO"
else:

  g=gcd(a,b)
  n=n/g
  a=a/g
  b=b/g
  for i in range(0,n+1):
    if (n-a*i)%b==0:
      print "YES"
      print i,(n-a*i)/b
      exit()
      break
  print "NO"

val = input()
a = input()
b = input()
x  = 0
while x*a <= val:
	t = val - x*a
	if t%b == 0:
		y = t/b
		print 'Yes'
		print x,y
		quit()
	x += 1
print 'NO'

n = int(input())
a = int(input())
b = int(input())
x = y = 0
flag = False

if a == b and n % a == 0:
	print("YES")
	print(n//a, 0)
else:
	while a*x <= n:
		if (n - a*x) % b == 0:
			print("YES")
			print(x, (n - a*x)//b)
			flag = True
			break
		else:
			x += 1

if flag == False:
	print("NO")

def gcd(a,b):
    if(a==0):
        return b
    return gcd(b%a,a)

n = int(input())
a = int(input())
b = int(input())
g = gcd(a,b)
if(a>n or b>n):
    print("NO")
elif(n%g!=0):
    print("NO")
else:
    if(n%a==0):
        print("YES")
        print(n//a,0)
    elif(n%b==0):
        print("YES")
        print(0,n//b)
    else:
        f=-1
        ans = 0
        while(n>1):
            n-=b
            ans+=1
            if(n%a==0):
                f=1
                print("YES")
                print(n//a,ans)
                break
        if(f==-1):
            print("NO")

from heapq import heappush, heappop
def main():
    n = int(raw_input())
    a = int(raw_input())
    b = int(raw_input())
    sw = 0
    if a > b:
        a, b = b, a
        sw = 1
    if b > 10000:
        for i in xrange(10000):
            if (n - b * i) % a == 0:
                print "YES"
                x, y = (n - b * i) / a, i
                if sw:
                    x, y = y, x
                print x, y
                break
        else:
            print "NO"
        return
    t = [1001001001] * b
    t[0] = 0
    x = y = 0
    for i in xrange(10000):
        x += a
        if x >= b:
            x -= b
            y += 1
        if t[x] < y:
            break
        t[x] = y
    x = t[n%b] * b + n % b
    if x > n:
        print "NO"
    else:
        print "YES"
        x, y = x / a, (n - x) / b
        if sw:
            x, y = y, x
        print x, y
main()

# TAIWAN NUMBER ONE!!!!!!!!!!!!!!!!!!!
# TAIWAN NUMBER ONE!!!!!!!!!!!!!!!!!!!
# TAIWAN NUMBER ONE!!!!!!!!!!!!!!!!!!!
from sys import stdin, stdout
import math
import heapq
from itertools import accumulate

N = int(input())
A = int(input())
B = int(input())
#s = input()
#N,K = [int(x) for x in stdin.readline().split()]

def GCD(x, y):

   while(y):
       x, y = y, x % y

   return x

gcd = GCD(A,B)

if N%gcd!=0:
    print('NO')
    quit()

print('YES')
if A==1:
    print(N,0)
    quit()

if B==1:
    print(0,N)
    quit()

if A>=B:
    for i in range((N//A)+1):
        num = N-A*i
        if num%B==0:
            print(i,num//B)
            quit()

else:
    for i in range((N//B)+1):
        num = N-B*i
        if num%A==0:
            print(num//A,i)
            quit()

n=int(input())
a=int(input())
b=int(input())
if a>=b:
    x=n//a
    for i in range(x+1):
        y=(n-i*a)//b
        if y==((n-i*a)/b):
            print("YES")
            print(i,end=' ')
            print(y,end='')
            exit(0)
elif a<b:
    y=n//a
    for i in range(y+1):
        x=(n-i*a)//b
        if x==((n-i*a)/b):
            print("YES")
            print(x,end=' ')
            print(i,end='')
            exit(0)
print("NO")

n = int(raw_input())
a = int(raw_input())
b = int(raw_input())
fla = False
x,ya=0,0
for i in range(1000000):
	if n-a*i<0:
		fla = False
		break
	y = (n-(a*i))/b
	if int(y)==y and a*i + y*b==n:
		fla = True
		x = i
		ya = y
		break
if fla:
	print "YES"
	print x,ya
else:
	print "NO"

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
for i in range(toolong):
	if(x % y == 0):
		cola = x // y
		break
	if(x % z == 0):
		bar = x // z
		break
	if((y == z and x % y != 0) or (z + y > x) or (x <= 0) or (toolong <= 0)):
		print("NO")
		quit()
	while(x%y != 0 and toolong > 0 and x > 0):
		x -= z
		bar += 1
		toolong -= z
print("YES")
print(cola, bar)

# TAIWAN NUMBER ONE!!!!!!!!!!!!!!!!!!!
# TAIWAN NUMBER ONE!!!!!!!!!!!!!!!!!!!
# TAIWAN NUMBER ONE!!!!!!!!!!!!!!!!!!!
from sys import stdin, stdout
import math
import heapq
from itertools import accumulate

N = int(input())
A = int(input())
B = int(input())
#s = input()
#N,K = [int(x) for x in stdin.readline().split()]

def GCD(x, y):

   while(y):
       x, y = y, x % y

   return x

gcd = GCD(A,B)

if N%gcd!=0:
    print('NO')
    quit()

print('YES')
if A==1:
    print(N,0)
    quit()

if B==1:
    print(N,0)
    quit()

if A>=B:
    for i in range(N//A+1):
        num = N-A*i
        if num%B==0:
            print(i,num//B)
            quit()

else:
    for i in range(N//B+1):
        num = N-B*i
        if num%A==0:
            print(num//A,i)
            quit()

import re
import sys
from bisect import bisect, bisect_left, insort, insort_left
from collections import Counter, defaultdict, deque
from copy import deepcopy
from decimal import Decimal
from itertools import (
    accumulate, combinations, combinations_with_replacement, groupby,
    permutations, product)
from math import (acos, asin, atan, ceil, cos, degrees, factorial, gcd, hypot,
                  log2, pi, radians, sin, sqrt, tan)
from operator import itemgetter, mul
from string import ascii_lowercase, ascii_uppercase, digits

def inp():
    return(int(input()))

def inlist():
    return(list(map(int, input().split())))

def instr():
    s = input()
    return(list(s[:len(s)]))

def invr():
    return(map(int, input().split()))

n = inp()
a = inp()
b = inp()
if n % gcd(a, b) == 0:

    y = 0
    x = 0
    while y * b <= n:
        if (n - b*y) % a == 0:
            if (n-b*y) > 0:
                x = (n - (b*y)) // a
                print("YES")
                print(x, y)
                break
        y += 1
    else:
        print("NO")

else:
    print("NO")

import re
import sys
from bisect import bisect, bisect_left, insort, insort_left
from collections import Counter, defaultdict, deque
from copy import deepcopy
from decimal import Decimal
from itertools import (
    accumulate, combinations, combinations_with_replacement, groupby,
    permutations, product)
from math import (acos, asin, atan, ceil, cos, degrees, factorial, gcd, hypot,
                  log2, pi, radians, sin, sqrt, tan)
from operator import itemgetter, mul
from string import ascii_lowercase, ascii_uppercase, digits

def inp():
    return(int(input()))

def inlist():
    return(list(map(int, input().split())))

def instr():
    s = input()
    return(list(s[:len(s)]))

def invr():
    return(map(int, input().split()))

n = inp()
a = inp()
b = inp()
if n % gcd(a, b) == 0:
    res = "YES"
    y = 0
    x = 0
    while y * b <= n:
        if (n - b*y) % a == 0:
            x = (n - b*y) // a
            if x < 0 or y < 0:
                res = "NO"
            else:
                res = "YES"
            break

        y += 1
    print(res)
    if res == "YES":
        print(x, y)

else:
    print("NO")

n=int(input())
a=int(input())
b=int(input())
if(n//a<n//b):
    k=a
    m=b
else:
    k=b
    m=a
flag=0
for i in range(0,n//k):
    if((n-i*k)%m==0):
        flag=1
        print('YES')
        if(k==a):
            print (i,end=" ")
            print ((n-i*k)//m)
        elif(k==b):
            print ((n-i*k)//m,end=" ")
            print(i)
        break
if(flag==0):
    print ("NO")

x = int(input()) #monies
y = int(input()) #cost of cola
z = int(input()) #cost of bar
cola = 0
bar = 0
toolong=2+(x%1000)+(y*z)
for i in range(x):
	if((y==z and x % y != 0) or (x < y) or (x < z) or (x <= 0) or (toolong <= 0)):
		print("NO")
		break
	if(y>=z):
		if(x%z==0):
			 bar = x // z
			 print("YES")
			 print(cola, bar)
			 break
		while(x%z != 0 and x >= y and toolong > 0):
			x -= y
			cola += 1
			toolong -= y
	if(z>y):
		if(x%y==0):
			 cola = x // y
			 print("YES")
			 print(cola, bar)
			 break
		while(x%y != 0 and x >= z and toolong > 0):
			x -= z
			bar += 1
			toolong -= y

n = input()
a = input()
b = input()
if a > b:
	for i in xrange(min(b, n / a + 1)):
		if (n - i * a) % b == 0:
			print 'Yes\n', i, (n - i * a) / b
			break
	else:
		print 'No'
else:
	for i in xrange(min(a, n / b + 1)):
		if (n - i * b) % a == 0:
			print 'Yes\n', i, (n - i * b) / a
			break
	else:
		print 'No'

n = int(input())
a = int(input())
b = int(input())

def gcd(a, b):
    if a * b == 0:
        return a + b
    return gcd(b, a % b)

d = gcd(a, b)
if n % d != 0:
    print("NO")
else:
    n, a, b = n//d, a//d, b//d
    if a >= b:
        for x in range(b):
            if (n - a * x) % b == 0:
                print("YES")
                print(x, (n - a * x) // b)
                break
        else:
            print("NO")
    else:
        for y in range(a):
            if (n - b * y) % a == 0:
                print("YES")
                print((n - b * y) // a, y)
                break
        else:
            print("NO")

n = int(input())
a = int(input())
b = int(input())
x = 0
while True:
    y = (n-x*a)/b
    if y < 0:
        print('No')
        break
    if int(y) == y:
        print("YES")
        print(x,int(y))
        break
    else:
        x += 1

n=int(input())
a=int(input())
b=int(input())
s=0
if a>b:
    c=n//a
    for i in range(0,c+1):
        d=n-a*i
        e=d//b
        f=d%b
        if f==0:
            B=e
            A=i
            s+=1
            print('YES')
            break
    if s!=0:
        print(A,end=' ')
        print(B)
    else:
        print('NO')
elif a<b:
    c=n//b
    for i in range(0,c+1):
        d=n-b*i
        e=d//a
        f=d%a
        if f==0:
            A=e
            B=i
            s+=1
            print('YES')
            break
    if s!=0:
        print(A,end=' ')
        print(B)
    else:
        print('NO')
else:
    if n%a==0:
        print('YES')
        print(int(n/a),end=' ')
        print(int(n/a))
    else:
        print('NO')

n = input()
a = input()
b = input()
if a > b:
	for i in xrange(min(b, n / a + 1)):
		if (n - i * a) % b == 0:
			print 'Yes', i, (n - i * a) / b
			break
	else:
		print 'No'
else:
	for i in xrange(min(a, n / b + 1)):
		if (n - i * b) % a == 0:
			print 'Yes', i, (n - i * b) / a
			break
	else:
		print 'No'

# -*- coding: utf-8 -*-
"""
Created on Sat Dec 16 14:43:34 2017

@author: ms
"""

def main():
    n = int(input())
    a = int(input())
    b = int(input())

    if(n%a == 0):
        print('YES')
        print(int(n/a), 0)
        return
    if(n%b == 0):
        print('YES')
        print(0, int(n/b))
        return

    if(a%2 == 0 and b%2 == 0):
        if (n%2 != 1):
            print('NO')
            return

    mx = max(a,b)
    mn = min(a,b)
    new = 0
    found = 0
    i = 0
    while(n>=0):
        n -= mx
        i += 1
        if(n%mn == 0):
            found = 1
            new = n
            break
    if found:
        print('YES')
        if (mx == a):
            print(i, int(new/b))
        if (mx == b):
            print(int(new/a), i)
    else:
        print('NO')

main()

import sys, re

n = int(sys.stdin.readline())
a = int(sys.stdin.readline())
b = int(sys.stdin.readline())
if a == b:
    if n % a == 0:
        print('YES')
        print(1, n // (a) - 1)
    else:
        print('NO')
else:
    if n % a == 0:
        print('YES')
        print(n // a, 0)
    elif n % b == 0:
        print('YES')
        print(0, n // b)
    else:
        if n % abs(a - b) != 0:
            print('NO')
        else:
            for i in range(n // a + 1):
                for j in range(n // b + 1):
                    if a * i + b * j == n:
                        print('YES')
                        print(i, j)
                        sys.exit(0)

from sys import stdin
n = int(stdin.readline())
a = int(stdin.readline())
b = int(stdin.readline())
k = n/a
ans = 'No'
for i in xrange(k+1):
 if (n - i*a)%b==0:
  print 'Yes'
  ans = "%d %d"%(i,(n-a*i)/b)
  break
print ans

import sys, re

n = int(sys.stdin.readline())
a = int(sys.stdin.readline())
b = int(sys.stdin.readline())
if a == b:
    if n % a == 0:
        print('YES')
        print(1, n // (a) - 1)
    else:
        print('NO')
else:
    if n % a == 0:
        print('YES')
        print(n // a, 0)
    elif n % b == 0:
        print('YES')
        print(0, n // b)
    else:
        for i in range(n // a + 1):
            for j in range(n // b + 1):
                if a * i + b * j == n:
                    print('YES')
                    print(i, j)
                    sys.exit(0)

n=int(input())
a=int(input())
b=int(input())
flag=0
if(n%a==0 or n%b==0):
  flag=1
  print('YES')
  if n%a==0:
    print(str(int(n/a))+' 0')
  else:
    print('0 '+str(int(n/b)))
else:
  i=1
  while a*i<=n and b*i<=n:
    p=n-a*i
    q=n-b*i
    if(p%b==0 or q%a==0):
      flag=1
      print('yes')
      if p%b==0:
        print(str(int(i)+' '+str(int(p/b))))
      else:
        print(str(int(q/a))+' '+str(int(i)))
      break
    i=i+1
if flag==0:
  print('NO')

n=int(input())
a=int(input())
b=int(input())

bigger = max(a,b)
smaller = min(a,b)

if (a==b) and (n%a != 0):
	print('NO')
	exit()

for i in range(n//bigger+1):
	if (n-bigger*i)%smaller==0:
		print('YES')
		x=i
		y=(n-bigger*i)//smaller
		print(x,y)
		exit()
print('NO')
quit()

from heapq import heappush, heappop
def main():
    n = int(raw_input())
    a = int(raw_input())
    b = int(raw_input())
    sw = 0
    if a > b:
        a, b = b, a
        sw = 1
    if b > 10000:
        for i in xrange(10000):
            if (n - b * i) % a == 0:
                print "YES"
                break
        else:
            print "NO"
        return
    t = [1000100] * b
    t[0] = 0
    x = y = 0
    for i in xrange(10000):
        x += a
        if x >= b:
            x -= b
            y += 1
        if t[x] < y:
            break
        t[x] = y
    x = t[n%b] * b + n % b
    if x > n:
        print "NO"
    else:
        print "YES"
        x, y = x / a, (n - x) / b
        if sw:
            x, y = y, x
        print x, y
main()

import re
import sys
from bisect import bisect, bisect_left, insort, insort_left
from collections import Counter, defaultdict, deque
from copy import deepcopy
from decimal import Decimal
from itertools import (
    accumulate, combinations, combinations_with_replacement, groupby,
    permutations, product)
from math import (acos, asin, atan, ceil, cos, degrees, factorial, gcd, hypot,
                  log2, pi, radians, sin, sqrt, tan)
from operator import itemgetter, mul
from string import ascii_lowercase, ascii_uppercase, digits

def inp():
    return(int(input()))

def inlist():
    return(list(map(int, input().split())))

def instr():
    s = input()
    return(list(s[:len(s)]))

def invr():
    return(map(int, input().split()))

n = inp()
a = inp()
b = inp()
if n % gcd(a, b) == 0:
    print("YES")
    c1 = (n // a) + 2
    c2 = (n // b) + 2
    for y in range(c2):
        if (n - b*y) % a == 0:
            x = (n - b*y) // a
            print(x, y)
            break

else:
    print("NO")

n = int(input())
a = int(input())
b = int(input())
x = y = 0
flag = False

if a == b and n % a == 0:
	print("YES")
	print(n//a, 0)
else:
	while a*x <= n:
		if (n - a*x) % b == 0:
			print("YES")
			print(x, (n - a*x)//b)
			flag = True
			break
		else:
			x += 1

if flag == False:
	print("NO")

from math import sqrt
n = int(input())
a = int(input())
b = int(input())
for i in range(n // 2):
    if (n - (i * b)) % a == 0:
        print("YES")
        print((n - i * b) // a, i)
        exit()
print("NO")

n = int(raw_input())
a = int(raw_input())
b = int(raw_input())

from fractions import gcd
c = gcd(a,b)
a /= c
b /= c

if n % c != 0:
    print 'NO'
else:
    print 'YES'
    n /= c
    a_inv = -1

    def euclid(a, b):
        if a == 0:
            return (0, 1, b)
        (x, y, res) = euclid(b%a, a)
        return (y - (b/a) * x, x, res)
    (a_inv, y, res) = euclid(a, b)

    x = a_inv * n % b
    for x in xrange(x,n,b):
        by = (n - a*x)
        if by >= 0 and by % b == 0:
            print '{} {}'.format(x, by/b)
            exit()

x = int(input()) #monies
y = int(input()) #cost of cola
z = int(input()) #cost of bar
cola = 0
bar = 0
toolong=2+(x%1000)+(y*z)
print(toolong)
for i in range(x):
	if((y==z and x % y != 0) or (x < y) or (x < z) or (x <= 0) or (toolong <= 0)):
		print("NO")
		break
	if(y>z):
		if(x%z==0):
			 bar = x // z
			 print("YES")
			 print(cola, bar)
			 break
		while(x%z != 0 and x >= y and toolong > 0):
			x -= y
			cola += 1
			toolong -= y
	if(z>y):
		if(x%y==0):
			 cola = x // y
			 print("YES")
			 print(cola, bar)
			 break
		while(x%y != 0 and x >= z and toolong > 0):
			x -= z
			bar += 1
			toolong -= y

from sys import stdin, stdout

n = int(stdin.readline())
a = int(stdin.readline())
b = int(stdin.readline())
x = 0
flg = False
while not n % a == 0 and n >= 0:
    if n % b == 0:
        print("YES")
        print(x, int(n / b))
        flg = True
        break
    n = n - a
    x += 1
if not flg:
    print("NO")

n = int(raw_input())
a = int(raw_input())
b = int(raw_input())

if n < a and n < b:
    print 'NO'
    exit()

from fractions import gcd
c = gcd(a,b)
a /= c
b /= c

if n % c != 0:
    print 'NO'
else:
    n /= c
    a_inv = -1

    def euclid(a, b):
        if a == 0:
            return (0, 1, b)
        (x, y, res) = euclid(b%a, a)
        return (y - (b/a) * x, x, res)
    (a_inv, y, res) = euclid(a, b)

    x = a_inv * n % b
    for x in xrange(x,n,b):
        by = (n - a*x)
        if by >= 0 and by % b == 0:
            print 'YES'
            print '{} {}'.format(x, by/b)
            exit()
    print 'NO'

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
for i in range(toolong):
	if(x % y == 0):
		cola = x // y
		break
	if(x % z == 0):
		bar = x // z
		break
	elif((y == z and x % y != 0) or (z + y > x) or (x <= 0) or (toolong <= 0)):
		print("NO")
		quit()
	while(x%y != 0 and toolong > 0 and x > 0):
		x -= z
		bar += 1
		toolong -= z
print("YES")
print(cola, bar)

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=2+(x%1000)+(y*11)+(z*11)
print(toolong)
for i in range(x):
	if((y == z and x % y != 0) or (x <= 0) or (toolong <= 0) or ((x<z) and (x<y))):
		print("NO")
		quit()
	if(x % y == 0):
		cola = x // y
		break
	if(x % z == 0):
		bar = x // z
		break
	elif(y>z or (x>y and z>x)):
		while(x%z != 0 and toolong > 0 and x > 0):
			x -= y
			cola += 1
			toolong -= y
	elif(z>y or (x>z and y>x)):
		while(x%y != 0 and toolong > 0 and x > 0):
			x -= z
			bar += 1
			toolong -= y
print("YES")
print(cola, bar)

def gcd(a,b):
    if(a==0):
        return b
    return gcd(b%a,a)

n = int(input())
a = int(input())
b = int(input())
g = gcd(a,b)
if(a+b>n):
    print("NO")
elif(n%g!=0):
    print("NO")
else:
    if(n%a==0):
        print("YES")
        print(n//a,0)
    elif(n%b==0):
        print("YES")
        print(0,n//b)
    else:
        f=-1
        ans = 0
        while(n>1):
            n-=b
            ans+=1
            if(n%a==0):
                f=1
                print("YES")
                print(n//a,ans)
                break
        if(f==-1):
            print("NO")

n,x,y=int(input()),int(input()),int(input())
f=0
for i in range(n//x+1):
    s=n-i*x
    if(s%y==0):
        f=1
        break
if(f==0):
    print("NO")
else:
    print("YES")

n=int(input())
a=int(input())
b=int(input())
x=True
if a>b:
      for i in range(0,n//a+1):
            if (n-i*a)%b==0:
                  print("YES")
                  x=False
                  print(i,"",(n-i*a)//b)
                  break
else:
      for i in range(0,n//b+1):
            if (n-i*b)%a==0:
                  print("YES")
                  x=False
                  print((n-i*b)%a,"",i)
                  break
if x:
      print("NO")

n=int(input())
a=int(input())
b=int(input())
if a==b and n%a!=0:
  print('NO')
elif n%a==0:
    print('YES')
    print(n//a,end=' ')
    print(0)
elif n%b==0:
    print('YES')
    print('0',end=' ')
    print(n//b)

elif n%2==1 and a%2==0 and b%2==0:
  print('NO')
elif max(a,b)%min(a,b)==0 and n%a!=0 and n%b!=0:
  print('NO')
elif a+b>n:
  print('NO')
else:
    i=0

    if a>b:
      while i<n//a and (n-a*i)%b!=0:
        i=i+1
      if i>n//a:
        print('NO')
      else:
        print('YES')
        print(i,end=' ')
        print((n-a*i)//b)
    else:
      while i<n//b and (n-b*i)%a!=0:
        i=i+1
      if i>n//b:
        print('NO')
      else:
        print('YES')
        print((n-b*i)//a,end=' ')
        print(i)

from sys import stdin
n = int(stdin.readline())
a = int(stdin.readline())
b = int(stdin.readline())
if a < b:
 x = a; a = b; b = x
k = n/a
ans = 'NO'
for i in xrange(k+1):
 if (n - i*a)%b==0:
  print 'YES'
  ans = "%d %d"%(i,(n-a*i)/b)
  break
print ans

from math import gcd,ceil
n=int(input())
a=int(input())
b=int(input())
g=gcd(a,b)
if n%g!=0:
    print('NO')
    exit()
def gcdex(a, b):
    if b == 0:
        return a, 1, 0
    else:
        d, x, y = gcdex(b, a % b)
        return d, y, x - y * (a // b)
k,xg,yg=gcdex(a,b)
#print(k,xg,yg)
x,y=xg*(n//g),yg*(n//g)
delx=b//g
dely=a//g
def printing(x,y,dx,dy):
    ko=ceil((-x)/dx)
    x+=ko*dx
    y-=ko*dy
    if y<0:
        print('NO')
    else:
        print('YES')
        if dx==delx:
            print(x,y)
        else:
            print(y,x)
if x<0 and y<0:
    print('NO')
elif x>=0 and y>=0:
    print('Yes')
    print(x,y)
elif x<0:
    printing(x,y,delx,dely)
elif y<0:
    printing(y,x,dely,delx)

import sys
import math
import itertools
import functools
import collections
import operator
import fileinput
import copy

ORDA = 97  # a
def ii(): return int(input())
def mi(): return map(int, input().split())
def li(): return [int(i) for i in input().split()]
def lcm(a, b): return abs(a * b) // math.gcd(a, b)
def revn(n): return str(n)[::-1]
def dd(): return collections.defaultdict(int)
def ddl(): return collections.defaultdict(list)
def sieve(n):
    if n < 2: return list()
    prime = [True for _ in range(n + 1)]
    p = 3
    while p * p <= n:
        if prime[p]:
            for i in range(p * 2, n + 1, p):
                prime[i] = False
        p += 2
    r = [2]
    for p in range(3, n + 1, 2):
        if prime[p]:
            r.append(p)
    return r
def divs(n, start=2):
    r = []
    for i in range(start, int(math.sqrt(n) + 1)):
        if (n % i == 0):
            if (n / i == i):
                r.append(i)
            else:
                r.extend([i, n // i])
    return r
def divn(n, primes):
    divs_number = 1
    for i in primes:
        if n == 1:
            return divs_number
        t = 1
        while n % i == 0:
            t += 1
            n //= i
        divs_number *= t
def prime(n):
    if n == 2: return True
    if n % 2 == 0 or n <= 1: return False
    sqr = int(math.sqrt(n)) + 1
    for d in range(3, sqr, 2):
        if n % d == 0: return False
    return True
def convn(number, base):
    new_number = 0
    while number > 0:
        new_number += number % base
        number //= base
    return new_number
def cdiv(n, k): return n // k + (n % k != 0)
def ispal(s): # Palindrome
    for i in range(len(s) // 2 + 1):
        if s[i] != s[-i - 1]:
            return False
    return True
# a = [1,2,3,4,5] -----> print(*a) ----> list print krne ka new way

def main():
	n = ii()
	a = ii()
	b = ii()
	if n % math.gcd(a,b) != 0:
		print('NO')
		exit()

	for i in range(100000):
		if (n-b*i)%a == 0:
			if (n-b*i)//a >= 0:
				print('YES')
				print((n-b*i)//a, i)
				break
	else:
		print('NO')

main()

n=int(input())
a=int(input())
b=int(input())
if(n//a<n//b):
    k=a
    m=b
else:
    k=b
    m=a
flag=0
for i in range(0,n//k):
    if((n-i*k)%m==0):
        flag=1
        print('Yes')
        if(k==a):
            print (i,end=" ")
            print ((n-i*k)//m)
        elif(k==b):
            print ((n-i*k)//m,end=" ")
            print(i)
        break
if(flag==0):
    print ("No")

import math
def ixgcd(a, b):
    """ gcd(a, b) = a * x + b * y
     the extended euclidean gcd algo, iteration """
    x0, x1, y0, y1 = 1, 0, 0, 1
    while b:
        q, a, b = a // b, b, a % b
        x0, x1 = x1, x0 - q * x1
        y0, y1 = y1, y0 - q * y1
    return  a, x0, y0

c = int(input())
a = int(input())
b = int(input())
d, x0, y0 = ixgcd(a,b)
# print(d, x0, y0)
if c%d == 0  and min(a,b)<=c:
    x0 *= c//d
    y0 *= c//d
    # print(x0,y0)
    if x0 >= 0 and y0 >= 0:
        print("YES")
        print(x0, y0)

    elif x0 < 0 and y0 < 0:
        print("NO")
    else:
        if x0 < 0:
            k = (d*x0)/b
            # x1 = (x0 - k * b//d)
        elif y0 < 0:
            k = (-1*d*y0)/a
            # print("test")
            # y1 = (y0 + k * a//d)
        # print("before {}".format(k))
        if k < 0:
            k = math.floor(k)
            # print(k)
        elif k > 0:
            k = math.ceil(k)
            # print(k)
        x1 = x0 - (k*b)//d
        y1 = y0 + (k*a)//d
        print("YES")
        print(x1, y1)
else:
    print("NO")

n=input()
a=input()
b=input()
from fractions import gcd
if n%gcd(a,b)!=0:
  print "NO"
else:

  g=gcd(a,b)
  n=n/g
  a=a/g
  b=b/g
  for i in range(0,n+1):
    if (n-a*i)%b==0:
      print "YES"
      print i,(n-a*i)/b
      break
  print "NO"

def solution (a, b, n):

    # traverse for all possible values
    i = 0
    _atual = i * a
    while _atual <= n:
        _atual = i * a

        # check if it is satisfying
        # the equation
        _res = n - (_atual)
        if _res % b == 0:
            print "YES"
            print i, int(_res / b)
            return 0
        i = i + 1
    print "NO"

n = int(raw_input())
a = int(raw_input())
b = int(raw_input())
solution(a,b,n)

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
for i in range(toolong):
	while(x%y != 0 and toolong > 0 and (x > 0 or x > y)):
		x -= z
		bar += 1
		toolong -= z
	if(x % y == 0):
		cola = x // y
		break
	if(x % z == 0):
		bar = x // z
		break
	else:
		print("NO")
		quit()
print("YES")
print(cola, bar)

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
for i in range(toolong):
	if(x % y == 0):
		cola = x // y
		break
	if(x % z == 0):
		bar = x // z
		break
	elif((y == z and x % y != 0) or (z + y > x) or (x <= 0) or (toolong <= 0)):
		print("NO")
		quit()
	while(x%y != 0 and toolong > 0 and x > 0):
		x -= z
		bar += 1
		toolong -= z
print("YES")
print(cola, bar)

from fractions import gcd

n = int(input())
a = int(input())
b = int(input())

p = gcd(a,b)

if n % p == 0:
	a1 = n//a
	b1 = n//b
	if n%a == 0 or n%b == 0:
		print("YES")
		if n%a == 0:
			print(a1, 0)
		else:
			print(0, b1)
	else:
		b1 = 0
		while (a1*a) + (b1 * b) != n:
			a1-=1
			v = n - (a1 * a)
			b1 = v//b
		print("YES")
		print(a1, b1)
else:
	print("NO")

n=int(input())
a=int(input())
b=int(input())

bigger = max(a,b)
smaller = min(a,b)

if (a==b) and (n%a != 0):
	print('NO')
	exit()

for i in range(n//bigger+1):
	if (n-bigger*i)%smaller==0:
		print('YES')
		Ber_Cola=i
		Bars_bar=(n-bigger*i)//smaller
		print(Bars_bar, Ber_Cola)
		exit()
print('NO')

n=input()
a=input()
b=input()
from fractions import gcd
if n%gcd(a,b)!=0:
  print "NO"
else:
  print "YES"
  g=gcd(a,b)
  n=n/g
  a=a/g
  b=b/g
  for i in range(0,n+1):
    if (n-a*i)%b==0:
      print i,(n-a*i)/b
      break

import sys
import math
import itertools
import functools
import collections
import operator
import fileinput
import copy

ORDA = 97  # a
def ii(): return int(input())
def mi(): return map(int, input().split())
def li(): return [int(i) for i in input().split()]
def lcm(a, b): return abs(a * b) // math.gcd(a, b)
def revn(n): return str(n)[::-1]
def dd(): return collections.defaultdict(int)
def ddl(): return collections.defaultdict(list)
def sieve(n):
    if n < 2: return list()
    prime = [True for _ in range(n + 1)]
    p = 3
    while p * p <= n:
        if prime[p]:
            for i in range(p * 2, n + 1, p):
                prime[i] = False
        p += 2
    r = [2]
    for p in range(3, n + 1, 2):
        if prime[p]:
            r.append(p)
    return r
def divs(n, start=2):
    r = []
    for i in range(start, int(math.sqrt(n) + 1)):
        if (n % i == 0):
            if (n / i == i):
                r.append(i)
            else:
                r.extend([i, n // i])
    return r
def divn(n, primes):
    divs_number = 1
    for i in primes:
        if n == 1:
            return divs_number
        t = 1
        while n % i == 0:
            t += 1
            n //= i
        divs_number *= t
def prime(n):
    if n == 2: return True
    if n % 2 == 0 or n <= 1: return False
    sqr = int(math.sqrt(n)) + 1
    for d in range(3, sqr, 2):
        if n % d == 0: return False
    return True
def convn(number, base):
    new_number = 0
    while number > 0:
        new_number += number % base
        number //= base
    return new_number
def cdiv(n, k): return n // k + (n % k != 0)
def ispal(s): # Palindrome
    for i in range(len(s) // 2 + 1):
        if s[i] != s[-i - 1]:
            return False
    return True
# a = [1,2,3,4,5] -----> print(*a) ----> list print krne ka new way

def main():
	n = ii()
	a = ii()
	b = ii()
	if n % math.gcd(a,b) != 0:
		print('NO')

	for i in range(100000):
		if (n-b*i)%a == 0:
			print('YES')
			print((n-b*i)//a, i)
			exit()

main()

def gcd(a,b):
    if(a==0):
        return b
    return gcd(b%a,a)

n = int(input())
a = int(input())
b = int(input())
g = gcd(a,b)
if(n%g!=0):
    print("NO")
else:
    if(n%a==0):
        print("YES")
        print(n//a,0)
    elif(n%b==0):
        print("YES")
        print(0,n//b)
    else:
        f=-1
        ans = 0
        while(n>1):
            n-=b
            ans+=1
            if(n%a==0):
                f=1
                print("YES")
                print(n//a,ans)
                break
        if(f==-1):
            print("NO")

def getHCF(a, b):
    c = min(a, b)
    d = max(a, b)

    if (d%c == 0):
        return c

    return getHCF(d%c, c)

n = int(input())
a = int(input())
b = int(input())

hcfAB = getHCF(a, b)

printed = False

if (n%hcfAB != 0):
    pass

else:
    n /= hcfAB
    a /= hcfAB
    b /= hcfAB

    for y in range(int(n/b)):
        if ((n - b*y)%a == 0):
            print("YES")
            print(int((n - b*y)/a), ' ', int(y))
            printed = True
            break

if (not(printed)):
    print("NO")

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
for i in range(toolong):
	if((x <= 0) or (toolong <= 0)):
		print("NO")
		quit()
	if(x % y == 0):
		cola = x // y
		break
	while(x%y != 0 and toolong > 0 and x > 0):
		x -= z
		bar += 1
		toolong -= z
print("YES")
print(cola, bar)

n=int(input())
a=int(input())
b=int(input())
if(n//a<n//b):
    k=a
    m=b
else:
    k=b
    m=a
flag=0
for i in range(0,n//k):
    if((n-i*k)%m==0):
        flag=1
        print('Yes')
        if(k==a):
            print (i,end=" ")
            print ((n-i*k)//m)
        elif(k==b):
            print ((n-i*k)//m,end=" ")
            print(i)
        break
if(flag==0):
    print ("No")

import math

def solve():
    n = int(input())
    a = int(input())
    b = int(input())
    if n % 2 != 0 and a % 2 == 0 and b % 2 == 0:
        print("NO")
        return

    else:
        for x in range(n):
            k = n - a * x
            if k >= 0 and k % b == 0:
                print("YES")
                print(x, k // b)
                return
            if k < 0:
                print("NO")
                return

    print("NO")
    return

#t = int(input())
for _ in range(1):
    solve()

n=int(input())
a=int(input())
b=int(input())
if a==b and n%a!=0:
  print('NO')
if n%a==0:
    print('YES')
    print(n//a,end=' ')
    print(0)
elif n%b==0:
    print('YES')
    print('0',end=' ')
    print(n//b)

elif n%2==1 and a%2==0 and b%2==0:
  print('NO')
elif max(a,b)%min(a,b)==0 and n%a!=0 and n%b!=0:
  print('NO')
elif a+b>n:
  print('NO')
else:
    i=0

    if a>b:
      while (n-a*i)%b!=0:
        i=i+1
      if i>n//a:
        print('NO')
      else:
        print('YES')
        print(i,end=' ')
        print((n-a*i)//b)
    else:
      while (n-b*i)%a!=0:
        i=i+1
      if i>n//b:
        print('NO')
      else:
        print('YES')
        print((n-b*i)//a,end=' ')
        print(i)

from math import sqrt
n = int(input())
a = int(input())
b = int(input())
for i in range(n // 2):
    if (n - (i * b)) % a == 0:
        print("YES")
        print((n - i * b) // a, i)
        exit()
print("NO")

x = int(input()) #monies
y = int(input()) #cost of cola
z = int(input()) #cost of bar
cola = 0
bar = 0
toolong=2+(x%1000)+(y*z)
for i in range(x):
	if((y==z and x % y != 0) or (x <= 0) or (toolong <= 0) or ((x<z) and (x<y))):
		print("NO")
		break
	if(y>=z):
		if(x%z==0):
			 bar = x // z
			 print("YES")
			 print(cola, bar)
			 break
		while(x%z != 0 and toolong > 0 and x > 0):
			x -= y
			cola += 1
			toolong -= y
	if(z>y):
		if(x%y==0):
			 cola = x // y
			 print("YES")
			 print(cola, bar)
			 break
		while(x%y != 0 and toolong > 0 and x > 0):
			x -= z
			bar += 1
			toolong -= y

import sys
import math
import itertools
import functools
import collections
import operator
import fileinput
import copy

ORDA = 97  # a
def ii(): return int(input())
def mi(): return map(int, input().split())
def li(): return [int(i) for i in input().split()]
def lcm(a, b): return abs(a * b) // math.gcd(a, b)
def revn(n): return str(n)[::-1]
def dd(): return collections.defaultdict(int)
def ddl(): return collections.defaultdict(list)
def sieve(n):
    if n < 2: return list()
    prime = [True for _ in range(n + 1)]
    p = 3
    while p * p <= n:
        if prime[p]:
            for i in range(p * 2, n + 1, p):
                prime[i] = False
        p += 2
    r = [2]
    for p in range(3, n + 1, 2):
        if prime[p]:
            r.append(p)
    return r
def divs(n, start=2):
    r = []
    for i in range(start, int(math.sqrt(n) + 1)):
        if (n % i == 0):
            if (n / i == i):
                r.append(i)
            else:
                r.extend([i, n // i])
    return r
def divn(n, primes):
    divs_number = 1
    for i in primes:
        if n == 1:
            return divs_number
        t = 1
        while n % i == 0:
            t += 1
            n //= i
        divs_number *= t
def prime(n):
    if n == 2: return True
    if n % 2 == 0 or n <= 1: return False
    sqr = int(math.sqrt(n)) + 1
    for d in range(3, sqr, 2):
        if n % d == 0: return False
    return True
def convn(number, base):
    new_number = 0
    while number > 0:
        new_number += number % base
        number //= base
    return new_number
def cdiv(n, k): return n // k + (n % k != 0)
def ispal(s): # Palindrome
    for i in range(len(s) // 2 + 1):
        if s[i] != s[-i - 1]:
            return False
    return True
# a = [1,2,3,4,5] -----> print(*a) ----> list print krne ka new way

def main():
	n = ii()
	a = ii()
	b = ii()
	if n % math.gcd(a,b) != 0:
		print('NO')
		exit()

	#for i in range(n//2+1):
#		if (n-b*i)%a == 0:
#			if (n-b*i)//a >= 0:
#				print('YES')
#				print((n-b*i)//a, i)
#				break
#	else:
#		print('NO')

	for i in range(n//a):
		if ((n-b*i)%a == 0):
			if (n-b*i)//a >= 0:
				print('YES')
				print((n-b*i)//a,i)
				break
	else:
		print('NO')

main()

n = int(input())
a = int(input())
b = int(input())
x = 0
while True:
    y = (n-x*a)/b
    if y < 0:
        print('No')
        break
    if int(y) == y:
        print("YES")
        print(x,int(y))
        break
    else:
        x += 1

n=int(input())
a=int(input())
b=int(input())
if(n%a==0 or n%b==0):
  print('YES')
  if n%a==0:
    print(str(int(n/a))+' 0')
  else:
    print('0 '+str(int(n/b)))
else:
  p=n%(a+b)
  if p==0:
    print('YES')
    print(str(int(n/a+b))+' '+str(int(n/a+b)))
  else:
    p=int(n/(a+b))
    n=n%(a+b)
    if(n%a==0 or n%b==0):
      print('YES')
      if n%a==0:
          print(str(int((n/a)+p))+' '+str(p))
      else:
          print(str(p)+' '+str(int((n/b)+p)))
    else:
      print('NO')

def gcd(a,b):
    if(a==0):
        return b
    return gcd(b%a,a)

n = int(input())
a = int(input())
b = int(input())
g = gcd(a,b)
if(n%g!=0):
    print("NO")
else:
    print("YES")
    if(n%(2*a)==0):
        print(n//a,0)
    elif(n%(2*b)==0):
        print(0,n//b)
    else:
        ans = 0
        while(n>1):
            n-=b
            ans+=1
            if(n%a==0):
                print(n//a,ans)
                break

'''
INPUT SHORTCUTS
N, K = map(int,input().split())
N ,A,B = map(int,input().split())
string = str(input())
arr = list(map(int,input().split()))
N = int(input())
'''

def main():
	N = int(input())
	a = int(input())
	b = int(input())
	for i in range(0,N//a):
		for j in range(0,N//b):
			if i*a + b*j ==N:
				print("YES")
				print(i,j)
				return
	print("NO")

main()

def bezout(a, b):
    x, xx, y, yy = 1, 0, 0, 1
    while b:
        q = a // b
        a, b = b, a % b
        x, xx = xx, x - xx*q
        y, yy = yy, y - yy*q
    return (x, y, a)

n = int(input())
a = int(input())
b = int(input())
x, y, c = bezout(a, b)
if n % c != 0:
    print("NO")
else:
    print("YES")
    x = x * n // c
    y = y * n // c
    while x < 0:
        x += b // c
        y -= a // c
    while y < 0:
        y += a // c
        x -= b // c
    print(x, y)

from math import sqrt
n = int(input())
a = int(input())
b = int(input())
for i in range(int(n / 2 + 0.5)):
    if (n - (i * b)) % a == 0:
        print("YES")
        print((n - i * b) // a, i)
        exit()
print("NO")

n=int(input())
a=int(input())
b=int(input())

bigger = max(a,b)
smaller = min(a,b)

if (a==b) and (n%a != 0):
	print('NO')
	exit()

for i in range(n//bigger+1):
	if (n-bigger*i)%smaller==0:
		print('YES')
		Ber_Cola=i
		Bars_bar=(n-bigger*i)//smaller
		print(Bars_bar, Ber_Cola)
		exit()
print('NO')

n=int(input())
a=int(input())
b=int(input())
if a==b and n%a!=0:
  print('NO')

elif n%2==1 and a%2==0 and b%2==0:
  print('NO')
elif max(a,b)%min(a,b)==0 and n%a!=0:
  print('NO')
else:
  i=0
  if n%a==0:
    print('YES')
    print(n//a,end=' ')
    print(0)
  elif n%b==0:
    print('YES')
    print('0',end=' ')
    print(n//b)
  else:
    if a>b:
      while (n-a*i)%b!=0:
        i=i+1
      if i>n//a:
        print('NO')
      else:
        print('YES')
        print(i,end=' ')
        print((n-a*i)//b)
    else:
      while (n-b*i)%a!=0:
        i=i+1
      if i>n//b:
        print('NO')
      else:
        print('YES')
        print((n-b*i)//a,end=' ')
        print(i)

x = int(input())
y = int(input())
z = int(input())
cola = bar = 0
toolong=1+y*z
for i in range(toolong):
	if(x % y == 0):
		cola = x // y
		break
	if(x % z == 0):
		bar = x // z
		break
	if((y == z and x % y != 0) or (z + y > x) or (x <= 0) or (toolong <= 0)):
		print("NO")
		quit()
	while(x%y != 0 and toolong > 0 and x > 0):
		x -= z
		bar += 1
		toolong -= z
print("YES")
print(cola, bar)