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)