Chino With C language
题号:NC222161
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

In C language, there are two functions for copying arrays, and . These two C language functions have a same purpose is copying the contents of a certain section of memory to a section of memory in units of .

The difference between these two functions is that does not check whether the source address range and the destination address range in memory have overlapping parts. It follows the logic of copying each sequentially from left to right, so that can cause the data copied is not equal to original data.

When using the function, if the source address range and the destination address range have overlapping part, will do special processing to ensure that the memory of the destination address range is filled with original data.

Now suppose that both the and function calls require three parameters, p_1, p_2, l, which respectively represent the source address, destination address, and the number of bytes copied. For example, given a string , if you call , the result will be , if you call , the result will be It is .
Now give you a string , and three call parameters, p_1, p_2, l. Please tell Chino what the calling results of and respectively are.

输入描述:

The first line of input data  contains only a positive integer  indicates the length of the string. 
The second line of input data contain a string of length includes only lowercase English letters.
The third line of input data contain three integers
And guarantee represents the parameters of calling two functions .

输出描述:

Please output two lines, the first line represents the result of calling the  function, the second line represents the result of calling .
示例1

输入

复制
7
abcdefg
1 3 5

输出

复制
abababa
ababcde