from math import gcd
import sys
def find_repeat(num,den,is_negative):
remain_map={} #记录当前余数的首次出现位置(索引)
digits = []
res=''#循环节
idx=0#索引
remain=num#剩余分子
#如果是负数,需要借位
if is_negative:
#负数小数部分 1-(num/den)=(den-num)/den
remain =den-num
if remain==0:
#剩余0那就代表循环节为0
return 1,"0"
#长除法,直到remain为0或余数重复(小数相同等同于分子相同)
while remain!=0 and remain not in remain_map:
#记录remain第一次出现的位置
remain_map[remain]=idx
#取出小数第一位
remain *=10
digit = remain//den
#加入digits中
digits.append(str(digit))
#对剩下的分子重复上述操作,除去大于0的部分
remain =remain%den
#索引增加
idx+=1
#若出现了循环
if remain in remain_map:
#找到第一次出现的下标
repeat_start = remain_map[remain]
#因为出现循环小数后就不会再添加到digits中,所以可直接到数组尾巴
res="".join(digits[repeat_start:])
#若res为空
if not res:
res='0'
return len(res),res
return len(res),res
data = list(sys.stdin.read().splitlines())
n,m = map(int,data[0].split())
a_cyc=int(data[1])
b_cyc=int(data[2])
#1.计算a,b的初始分母
#因为a,b都是循环小数,转换为分数后分母为,99....
den_a=(10**n)-1
den_b=(10**m)-1
#2.通分计算a-b
num= (a_cyc*den_b)-(b_cyc*den_a)
den=den_a*den_b
cyc_len=0
cyc_str=""
#3.判断是否为负数
is_negative = (num<0) and (abs(num)!=0)
#若a==b则循环节为0直接结束
if num==0:
cyc_len=1
cyc_str="0"
else:
#传入一定要是正的分子分母
cyc_len,cyc_str=find_repeat(abs(num),den,is_negative)
print(cyc_len)
print(cyc_str)