Harryxun/stf_run huggingface dataset:
a,b,c=mdata()
print(c,a,b)

### FIXED CODE ###

from bisect import bisect_left as bl, bisect_right as br, insort
import sys
import heapq
from math import *
from collections import defaultdict as dd, deque
def data(): return sys.stdin.readline().strip()
def mdata(): return map(int, data().split())
#def print(x): return sys.stdout.write(str(x)+'\n')
#sys.setrecursionlimit(100000)
mod=int(1e9+7)

a,b,c=mdata()
print(c,a,b)
n=list(input())
for i in range(3):
  if n[i]==1:
    n[i]=9
  else:
    n[i]=1
s=""
for i in range(3):
  s+=n[i]
print(int(s))

### FIXED CODE ###

n=input()
ans=""
for i in range(3):
  if n[i]=="1":
    ans+="9"
  else:
    ans+="1"
print(ans)
a,b,c,k = (map(int, input().split()))

if abs(a-b)>10**18:
  print("Unfair")
elif k%2==0-:
  
  print(a-b)
else:
  print(b-a)

### FIXED CODE ###

a,b,c,k = (map(int, input().split()))

if a-b>10**18:
  print("Unfair")
elif k%2==0:
  print(a-b)
else:
  print(b-a)
a=int(input())
b=[]
bb=list(input())
for i in bb:
  b.append(i.upper())
c=0
for i in range(a):
  if b[i]=='A':
    if b[i]+b[i+1]+b[i+2]=='ABC':
      c+=1
  else:
    pass
print(c)    


### FIXED CODE ###

n=int(input())
s=list(input())
d=0
for i in range(n):
  if n-(i+1)>=2:
    if s[i]=='A' and s[i+1]=='B' and s[i+2]=='C':
      d+=1
  else:
    pass
print(d)
a = int(input())
A = int(a. isupper())
if A = "True":
  print("A")
else:
  print("a")

### FIXED CODE ###

a = str(input())
if a.isupper() == True:
  print("A")
else:
  print("a")
K, X = input().strip().strip()
sougaku = 500*K
if sougaku >= X
    print('Yes')
    else
    print('No')

### FIXED CODE ###


K, X =  map(int, input(). split())
sougaku = 500*K
if sougaku >= X:
    print('Yes')
else:
    print('No')
A, B, K = [int(i) for i in input().split()]

S = set()
for i in range(A, A+K):
    if i > B:
        break
    S.add(i)
for i in range(B-K+1, B+1):
    if i < A:
        break
    S.add(i)
for i in sorted(S):
    print(i)

### FIXED CODE ###

S = input()
if S.count('a') and S.count('b') and S.count('c'):
    print("Yes")
else:
    print("No")
N=int(input())
A=[]
B=[]
C=[]
for i in range(N):
  a,b,c=map(int,input().split())
  A.append(a)
  B.append(b)
  C.append(c)
dp=[[0 for i in range(N)]for j in range(N)]
dp[0][0]=A[0]
dp[0][1]=B[0]
dp[0][2]=C[0]
for i in range(1,N):
  dp[i]=[max(dp[i-1][1]+A[i],dp[i-1][2]+A[i]),max(dp[i-1][0]+B[i],dp[i-1][2]+B[i]),max(dp[i-1][0]+C[i],dp[i-1][1]+C[i])]
print(max(dp[N-1][0],dp[N-1][1],dp[N-1][2]))
  
                  

### FIXED CODE ###

N=int(input())
a,b,c=map(int,input().split())
dp=[[0 for i in range(3)]for j in range(N)]
dp[0]=[a,b,c]
for i in range(1,N):
  A,B,C=map(int,input().split())
  dp[i]=[max(dp[i-1][1]+A,dp[i-1][2]+A),max(dp[i-1][0]+B,dp[i-1][2]+B),max(dp[i-1][0]+C,dp[i-1][1]+C)]
print(max(dp[N-1][0],dp[N-1][1],dp[N-1][2]))
def main():
    n=int(input())
    a=list(map(int,input().split()))
    a.sort()
    max=a[-1]
    check=[0 for i in range(max+10)]
    sum=0
    if len(a)==1:
        print(1)
        exit()
    tmp=a[1]
    for i in range(n):
        if tmp==a[i]:
            continue
        tmp=a[i]
        if check[a[i]]==0:
            sum+=1
            j=1
            x=a[i]*j
            while x<max+1:
                x=a[i]*j
                check[x]=1
                j+=1
        else:
            continue
    print(sum)
        
    
    
if __name__=="__main__":
    main()

### FIXED CODE ###

def main():
    n=int(input())
    a=list(map(int,input().split()))
    a.sort()
    max=a[-1]
    check=[0 for i in range(max+10)]
    sum=0
    #print(a)
    if len(a)==1:
        print(1)
        exit()
    if a[0]==1:
        if a[1]==1:
            print(0)
        else:
            print(1)
        exit()
    for i in range(n):
        if check[a[i]]==0:
            sum+=1
            j=1
            x=a[i]*j
            while x<max+1:
                check[x]=1
                j+=1
                x=a[i]*j
            if i<n-1 and a[i+1]==a[i]:
                sum-=1
        else:
            continue
    print(sum)
        
    
    
if __name__=="__main__":
    main()
def insertionSort(A,n,g):
	cnt = 0
	for i in range(g,n):
		v = A[i]
		j = i - g
		while j >= 0 and A[j] > v:
			A[j+g] = A[j]
			j = j - g
			cnt += 1
		A[j+g] = v

def shellsort(A,n):
	cnt = 0
	h = 0
	while(h <= n / 9): h = 3*h + 1
	G = []
	while h > 0:
		G.append(h)
		h /= 3
	print(len(G))
    print(" ".join(map(int,G)))
	for i in range(len(G)):
		insertionSort(A,n,G[i])
	for i in A:
		print(i)	
n = int(input())
A = []
for _ in range(n):
	A.append(int(input()))
shellsort(A,n)



### FIXED CODE ###

def insertionSort(A,n,g):
    cnt = 0
    for i in range(g,n):
        v = A[i]
        j = i - g
        while j >= 0 and A[j] > v:
            A[j+g] = A[j]
            j = j - g
            cnt += 1
            A[j+g] = v
    return cnt
    
def shellsort(A,n):
    cnt = 0
    h = 1
    G = []
    while h <= n:
        G.append(h)
        h = 3*h + 1
    G.reverse()
    m = len(G)
    print(m)

    print(" ".join(map(str,G)))
    for i in range(m):
        cnt += insertionSort(A,n,G[i])
    print(cnt)
    for i in A:
        print(i)
        
n = int(input())
A = []
for _ in range(n):
    A.append(int(input()))
shellsort(A,n)
N,K=map(int,input().split())
S=input()

q=[0]
for i in range(1,N):
    if S[i]!=S[i-1]:
        q.append(i)

answers=[]

for p in q[:(2*K+1)]:
    if S[p]==1:
        answers.append(q[min(2*K+1,N)]-p+1)
    else:
        answers.append(q[min(2*K,N)]-p+1)

### FIXED CODE ###

N,K=map(int,input().split())
S=input()+'E'

# Initial values
ans=1
l=0
r=0
edge=[]

# 立っているグループのカウント
# 最初の文字が0なら1
if S[l]=='0':
    count=1
else:
    count=0    

# ｒがNまでループ
while(r < N-1):
    r+=1
    #　もし1=>0の境目だと、countを追加
    if ( S[r-1]=='1') & (S[r]=='0'):
        count+=1

    #　countがKを超すとlのループに入る(Break)
    while(count>K):
        l+=1
        # lを更新したとき0=>1の境目だと、l~r間の0グループが減るので、countを減らす
        if (S[l-1]=='0') & (S[l]=='1'):
            count-=1
        #lがrを追い越さないように
        if l==r:
            r+=1
        #print(r,l,count,ans)

    #何事もなく 進んだ場合は答えの更新
    ans=max(ans,r-l+1)
    #print(r,l,count,ans) 

print(ans)
N = int(input())
L = list(map(int, input().split()))

res = 1
for i in range(N-1):
  if L[i+1] != L[i]:
    res += 1
    
print(res)

### FIXED CODE ###

N = int(input())
L = input()

res = 1
for i in range(N-1):
  if L[i+1] != L[i]:
    res += 1
    
print(res)
S = input()
Q = int(input())

jun = True

for _ in range(Q):
    T = input().split()
    if T[0] == "1":
        jun = not jun
    
    else:

        if (T[1] == "1" and jun) or (T[1] == "2" and not jun):
            S = T[2] + S
            continue

        else:
            (T[1] == "2" and jun) or (T[1] == "1" and not jun):
            S = S + T[2]

if jun:
    print(S)
else:
    print(S[::-1])

### FIXED CODE ###

S = input()
Q = int(input())

jun = True
head = ""

for _ in range(Q):
    T = input().split()
    if T[0] == "1":
        jun = not jun
    
    else:

        if (T[1] == "1" and jun) or (T[1] == "2" and not jun):
            head += T[2]
            continue

        else:
            S += T[2]

if jun:
    print(head[::-1] + S)
else:
    print(S[::-1] + head)
import math
a, b, c, d = map(int, input().split())
e = (c*d)/math.gcd(c,d)
bb = b-(int(b/c) + int(b/d)- int(b/e))
aa = a-1-(int((a-1)/c)+int((a-1)/d)-int((a-1)/e))
z = bb-aa
print(z)

### FIXED CODE ###

from fractions import gcd
a, b, c, d = map(int, input().split())

e = (c*d)//gcd(c,d)

def calc(x):
    return x - (x//c)-(x//d)+(x//e)

print(calc(b)-calc(a-1))
s=str(input())
if(s[3]==s[4] and s[5]==s[6]):
  print("Yes")
else:
  print("No")
  

### FIXED CODE ###

s=str(input())
if(len(s)<6):
  print("No")
else:
  if(s[3]==s[2] and s[4]==s[5]):
    print("Yes")
  else:
    print("No")
import math
H=int(input())+1
print(2**(math.celi(math.log(H,2)))-1)
"""import math
print(2**(math.ceil(math.log(float(input())+1,2)))-1)"""

### FIXED CODE ###

import math
print(2**(math.ceil(math.log2(float(input())+1)))-1)
Line = [int(s) for s in input().split()]

print(Liine[0]*Line[1])

### FIXED CODE ###

Line = [int(s) for s in input().split()]

print(Line[0]*Line[1])
n=int(input())
ns=map(int,input().split())
print(min(ns),max(ns),sum(ns))

### FIXED CODE ###

input()
# map returns an iterator rather than a list, 
# and an iterator can traverses the data only once.
# so we need to 'list' here
ns=list(map(int,input().split())) 
print(min(ns),max(ns),sum(ns))
N = int(input())

print(0.5 if N % ==0 else ((N//2)+1)/N)


### FIXED CODE ###

N = int(input())
print(0.5 if N % 2 == 0 else ((N//2)+1)/N)
N=int(input())
A=list(map(int,input().split()))
box=[]

for i in range(N):
    box.insert(A[i],i)
    print(box)

### FIXED CODE ###

N=int(input())
A=tuple(map(int,input().split()))

a=[0]*N

for i in range(N):
    a[A[i]-1]=i+1

print(" ".join(map(str,a)))
from scipy.sparse.csgraph import dijkstra as di
n = int(input())
grid = [list(map(int, input().split())) for i in range(n)]
dgrid = di(grid)

ans = [[0 for i in range(n)] for j in range(n)]
for i in range(n):
    for j in range(n):
        if grid[i][j] != dgrid[i][j]:
            print(-1)
            exit()

ans = 0
for i in range(n):
    for j in range(n):
        for k in range(n):
            if i == j or j == k or k == i:
              continue
            if grid[i][k] + grid[k][j] == grid[i][j]:
                dgrid[i][j] = 0

ans = 0
for i in range(n):
    for j in range(i+1, n):
        ans += dgrid[i][j]
print(int(ans))


### FIXED CODE ###

def warshall(d, n):
    e = copy.deepcopy(d)
    for k in range(n):
        for i in range(n):
            for j in range(n):
                # print(d[i][k], d[k][j], d[i][j])
                if i == k or k == j:
                    continue
                if d[i][k] + d[k][j] < d[i][j]:
                    return []
                if d[i][k] + d[k][j] == d[i][j]:
                    # print(d[i][k], d[k][j], d[i][j], i,j,k)
                    e[i][j] = 0
                    e[j][i] = 0
    return e
    
import copy
n = int(input())
edges = []

graph = [list(map(int, input().split())) for i in range(n)]
e = warshall(graph, n)
if e == []:
    print(-1)
    exit()
# print(e)
edge_list = [[] for _ in range(n)]
ans = 0
for i in range(n):
    for j in range(n):
        if e[i][j] > 0:
            edge_list[i].append((e[i][j], j))
        if j > i and e[i][j]:
            ans += e[i][j]

print(ans)
N=int(input())
s=input()

count=0
i=0
j=N-1

while i<j:
    if s[i]=="E":
        i+=1
        continue
    if s[j]=="W":
        j-=1
        continue
    sub_i=i
    sub_j=j
    j_i=0
    j_j=0
    while s[sub_i]=="W":
        sub_i+=1
        j_i+=1
    while s[sub_j]=="E":
        sub_j-=1
        j_j+=1
    if j_i<j_j:
        i=sub_i
        count+=1
    else:
        j=sub_j
        count+=1
    
print(count)


### FIXED CODE ###

a,b=(int(i) for i in input().split())

c=[]
c.append(a+b)
c.append(a-b)
c.append(a*b)
c.sort()

print(c[-1])
n = int(input())
r = int(input())
 
if n < 10:
  print(n-(100*(10-k)))
else:
  print(n)

### FIXED CODE ###

n,r = map(int,input().split())
 
if n < 10:
  print(r+(100*(10-n)))
else:
  print(r)
def check2(x,y,p,t):
    for i in range(p+1,t+1,1):
        if x % i == 0 and y % i == 0 :
            return i
        if i == t :
          return 1 
A,B = map(int,input().split())
ans = 1
p = 1
t = min(A,B)
while True :
    p = check2(A,B,p,t)
    if p == 1 :
        break
    while True :
        if A % p == 0 and B % p == 0 :
            A = (A//p)
            B = (B//p)
        else :
            break
    ans += 1
print(ans)

### FIXED CODE ###

def gcd(x, y):
    if y == 0 :
        return x
    else:
        return gcd(y,x%y)
def prime(x):
    global  ans
    m = x ** (0.5)
    for i in range(2,int(m+1)):
        if x % i == 0 :
            while True:
                if x % i != 0 :
                    break
                else:
                    x = (x//i)
            ans +=1
    if x != 1 :
        ans += 1
    return ans
A,B = map(int,input().split())
t = gcd(A,B)
ans = 1
print(prime(t))
k = int(input())

if k % 2 == 0 or k % 5 ==0:
  print(-1)
else:
  n = 7
  cnt = 1
  for i in range(k):
    n = (n * 10 +7) % k
    if n % k==0:
      break
      
    cnt +=1
    
print(cnt)    
    
    

### FIXED CODE ###


k = int(input())

if k % 2 == 0 or k % 5 == 0:
    print(-1)
else:
    n = 7
    cnt = 1
    for i in range(k):
        if n % k == 0:
            break
        cnt += 1
        n = (n * 10 + 7) % k
    print(cnt)
n = int(input())
a = list(map(int, input().split()))
a.sort()
dp = [0]*(1000000+1)
cnt = 0
for i in range(len(a)):
  if dp[a[i]]==1:
    continue
  while(a[i]*j<=a[-1]):
    dp[a[i]*j] = 1
    j += 1
  if i!=len(a)-1 and a[i+1]==a[i]:
    dp[a[i]] = 1
    continue
  cnt += 1
  dp[a[i]] = 1
  j = 2
print(cnt)

### FIXED CODE ###

n = int(input())
a = list(map(int, input().split()))
a.sort()
dp = [0]*(1000000+1)
cnt = 0
for i in range(len(a)):
  if dp[a[i]]==1:
    continue
  j = 2
  while(a[i]*j<=a[-1]):
    dp[a[i]*j] = 1
    j += 1
  if i!=len(a)-1 and a[i+1]==a[i]:
    dp[a[i]] = 1
    continue
  cnt += 1
  dp[a[i]] = 1
print(cnt)
#input one int
#a = int(input())

#input some val
#a, b, c = (int(i) for i in input().split())
#val = [[int(i) for i in input().split()] for i in range(N)]

#input matrix
#a = [input().split() for i in range()]

x, y = (int(i for i in input().split()))
print(x+(y/2))

### FIXED CODE ###

#input one int
#a = int(input())

#input some val
#a, b, c = (int(i) for i in input().split())
#val = [[int(i) for i in input().split()] for i in range(N)]

#input matrix
#a = [input().split() for i in range()]

x, y = (int(i) for i in input().split())
res = x + (y/2)
print(int(res))
l = raw_input().split()
s = l[0] * l[1]
y = (l[0] + l[1]) * 2
print s y

### FIXED CODE ###

l = map(int, raw_input().split())
print l[0] * l[1], 2 * (l[0] + l[1])
while True:
    n = int(raw_input())
    if n == 0:
        break
    numbers = [int(raw_input()) for i in range(n)]
    if max(numbers) <= 0:
        return max(numbers)
    ans = 0
    for i in range(n):
        tmp = 0
        for j in range(i,n):
            tmp += numbers[j]
            ans = max(ans,tmp)
    print ans

### FIXED CODE ###

while True:
    n = int(raw_input())
    if n == 0:
        break
    numbers = [int(raw_input()) for i in range(n)]
    if max(numbers) <= 0:
        print max(numbers)
    else:
        ans = 0
        for i in range(n):
            tmp = 0
            for j in range(i,n):
                tmp += numbers[j]
                if(ans<tmp):
                    ans = tmp
        print ans
def demon():
  N = int(input())
  A = list(map(int,input().split()))
  A = sort(A)
  if A[0] == 0:
    print(0)
    return

  X = 1
  for i in A:
    X *= A
    if X > 10 ** 18:
      print("-1")
      return

  print(X)

demon()

### FIXED CODE ###

def demon():
  N = int(input())
  A = list(map(int,input().split()))
  A.sort()
  if A[0] == 0:
    print(0)
    return

  X = 1
  for i in A:
    X *= i
    if X > 10 ** 18:
      print("-1")
      return

  print(X)

demon()
n = int(input())
a = []
for i in range(n):
    _ = list(map(int, input().split()))
    a.append(_)

check = False
    
for i in range(500):
    for j in range(500):
        b = 0
        while b < n:
            if b == 0:
                h = abs(i - a[b][0]) + abs(j - a[b][1]) + a[b][2]
                b +=1
            else:
                de = max(h - abs(i - a[b][0]) - abs(j - a[b][1]),0)
                if de == a[b][2]:
                    b+=1
                else:
                    break
        if b == n:
            ans = str(i) + ' ' + str(j) + ' ' +str(h)
            check = True
        if check:
            break
    if check:
        break
print(ans)


### FIXED CODE ###

n = int(input())
a = []
for i in range(n):
    _ = list(map(int, input().split()))
    a.append(_)
a = sorted(a, key=lambda x:x[2],reverse = True)

check = False
    
for i in range(101):
    for j in range(101):
        b = 0
        while b < n:
            if b == 0:
                h = abs(i - a[b][0]) + abs(j - a[b][1]) + a[b][2]
                b +=1
            else:
                de = max(h - abs(i - a[b][0]) - abs(j - a[b][1]),0)
                if de == a[b][2]:
                    b+=1
                else:
                    break
        if b == n:
            ans = str(i) + ' ' + str(j) + ' ' +str(h)
            check = True
        if check:
            break
    if check:
        break
print(ans)
N = int(input())
d = [int(input()) for k in range(N)]
sum = 0
for i in range(N):
    for j in range range(i-1):
        sum = sum + d[i] * d[j]
print(sum)

### FIXED CODE ###

A, B = map(int, input().split())
if A - 2 * B < 0 or A-2*B == 0:
    print(0)
else:
    print(A - 2 * B)
import numpy as np
 
H, W = map(int, input().split())
S = np.array([list(input()) for _ in range(H)]) == '.'

#上下左右方向に塗られるマスの数を格納する配列
up = np.zeros((H, W), dtype=int)
down = np.zeros((H, W), dtype=int)
left = np.zeros((H, W), dtype=int)
right = np.zeros((H, W), dtype=int)

for i in range(H):
    up[i] = (up[i-1] + 1) * S[i]
    down[-i-1] = (down[-i] + 1) * S[-i-1]
 
for i in range(W):
    left[:, i] = (left[:, i-1] + 1) * S[:, i]
    right[:, -i-1] = (right[:, -i] + 1) * S[:, -i-1]

print(np.max(up+down+left+right) - 3)

### FIXED CODE ###

import numpy as np
 
H, W = map(int, input().split())
S = np.array([list(input()) for _ in range(H)]) == '.'

#上下左右方向に塗られるマスの数を格納する配列
up = np.zeros((H, W), dtype=int)
down = np.zeros((H, W), dtype=int)
left = np.zeros((H, W), dtype=int)
right = np.zeros((H, W), dtype=int)

for i in range(H):
    up[i] = (up[i-1] + 1) * S[i]
    down[-i-1] = (down[-i] + 1) * S[-i-1]
 
for i in range(W):
    left[:, i] = (left[:, i-1] + 1) * S[:, i]
    right[:, -i-1] = (right[:, -i] + 1) * S[:, -i-1]

print(np.max(up+down+left+right) - 3)
N = int(input())
d = [int(input()) for i in range(N)]
a = 0
b = 0
while b == 0:
for l in range(N):
    if d[l]<d[l+1]:
        a += 1
    else:
        b += 1

print(a)

### FIXED CODE ###

N = int(input())
d = [int(input()) for i in range(N)]
a = 0
b = 0
e = sorted(d)

while b == 0:
    for l in range(N):
        if e[l-1] < e[l]:
            a += 1
        else:
            b += 1

print(a+1)
b=10
d=[]
ans=[]
for i in range(5):
  a=int(input())
  d.append(a)
  if b>a%10 and a%10!=0:
    b=a%10
    k=i
  if a%10==0:
    ans.append(a)
  else:
    ans.append((a//10+1)*10)
ans[k]=d[k]
print(sum(ans))

### FIXED CODE ###

b=10
d=[]
ans=[]
k=-10000
for i in range(5):
  a=int(input())
  d.append(a)
  if b>a%10 and a%10!=0:
    b=a%10
    k=i
  if a%10==0:
    ans.append(a)
  else:
    ans.append((a//10+1)*10)
if k!=-10000:
  ans[k]=d[k]
print(sum(ans))
import sys
input=sys.stdin.readline

def atc(atc):
    result=["1","2","3","4","5","6","7","8","9"][atc//400]
    return result
num=0
L1=[]
n=int(input())
L=list(map(int,input().split()))
for i in L:
    a=atc(i)
    if a=="9":
        num+=1
    else:L1.append(a)
b=len(set(L1))
print(b,b+num)

### FIXED CODE ###

import sys
input=sys.stdin.readline
n = int(input())
A = list(map(int, input().split()))

l = [0] * 9
mn = 0
for i in A:
    t = min(i // 400, 8)
    l[t] += 1
for i in range(8):
    if l[i] != 0:
        mn += 1
if mn == 0:
    mn = 1
    mx = l[8]
else:
    mx = mn + l[8]

print(mn, mx)
n = int(input())
s = input()
r = []
g = []
b = []
for i in range(n):
    if s[i] == 'R':
        r.append(i)
    elif s[i] == 'G':
        g.append(i)
    else:
        b.append(i)
ans = len(r)*len(g)*len(b)
def func(a,b,c):
    ans = 0
    for i in a:
        for k in [num1 for num1 in b if num1 > i+1]:
            if (k + i) // 2 in j:
                    ans -= 1
    return ans
print(ans + func(r,g,b) + func(r,b,g) + func(g,r,b) + func(g,b,r) + func(b,g,r) + func(b,r,g))

### FIXED CODE ###

n = int(input())
s = input()
ans = s.count('R') * s.count('G') * s.count('B')
for i in range(n-2):
    for j in range(i+1, n-1):
        if 2*j - i >= n:
            break
        elif s[i] != s[j] and s[j] != s[(2*j-i)] and s[(2*j-i)] != s[i]:
            ans -= 1
print(ans)
H,W,A,B = map(int,input().split())



if H==1:
    if B>0:
        ans = 'No'
    else:
        ans = "0"*A + "1"*(W-A)
elif W==1:
    if A>0:
        ans = 'No'
    else:
        for i in range(B):
            print(1)
        for i in range(H-B):
            print(0)
        exit()
else:
    s = "1"*A + "0"*(W-A)
    if W%A==0 and A!=0 and H%(W/A) == 0 and H/(W/A)==B:
        for i in range(H):
            print(s)
            s = s[A:] + s[:A]
        exit()
    else:ans = 'No'
print(ans)

### FIXED CODE ###

H,W,A,B = map(int,input().split())

s = "0"*A + "1"*(W-A)
for i in range(B):
    print(s)
s = "1"*A + "0"*(W-A)
for i in range(H-B):
    print(s)
X, Y=map(int, input().split())
i=X+X
MAX=10 ** 18
 
if X%Y== 0 or Y%X ==0:
    print(-1)
else:
    while i<MAX:
        if i%Y != 0:
            print(i)
            break
        i+=X
X, Y=map(int, input().split())
i=X+X
MAX=10 ** 18

if X%Y== 0:
    print(-1)
else:
    while i<MAX:
        if i%Y != 0:
            print(i)
            break
        i+=X


### FIXED CODE ###

X, Y=map(int, input().split())
i=X+X
MAX=10 ** 18

if X%Y== 0:
    print(-1)
else:
    print(X)
import sys
n,m,x=map(int,input().split())
ac=[[0]*(m+1) for i in range(n)]
a=[[0]*m for i in range(0,n)]
c=[0 for i in range(n)]
for i in range(n):
  ac[i]=list(map(int,input().split()))
  c[i]=ac[i][0]
  a[i]=ac[i][1:m+1]#sliceは上限+１を:の右に代入
cheap=[]
ccc=[]
finished=[]
candi=[]
neighbor=[[] for i in range(2**(n+1)-1)]
neighbor[0]=[1,2]
for i in range(2**(n+1)-1):
  if i<=2**n-2 and i>0:
    neighbor[i].append(2*i+1)
    neighbor[i].append(2*i+2)
    if i%2==0:
      neighbor[i].append((i-2)//2)
    else:
      neighbor[i].append((i-1)//2)
  if i>2**n-2:
    if i%2==0:
      neighbor[i].append((i-2)//2)
    else:
      neighbor[i].append((i-1)//2)
#print(neighbor)     
#ある一つの参考書をを買うことを一つのノード、買わないことを一つのノードで表す。
#このネットワークでは木の深さが参考書番号に対応する。
#深さの浅いものを小さく、同じ深さのものを左から小さい順にノード番号を振る
#i->ノード番号(not 参考書番号)
def dfs(i):
  #print(i)
  check=i in finished
  kaukadouka=[]
  cost=0
  rikaido=[0 for i in range(m)]
  if check==0:
    finished.append(i)
    for j in range(len(neighbor[i])):
      y=neighbor[i][j] in finished
      z=neighbor[i][j] in candi
      if y==0 and z==0:
        candi.append(neighbor[i][j])
    if i>2**n-2:
      o=i
      t=n-1
      while o>0:
        kaukadouka.append(o%2)
        p=min(neighbor[o])
        cost+=c[t]*(o%2)
        for h in range(m):
          rikaido[h]+=a[t][h]*(o%2)
        o=p
        t-=1
      if min(rikaido)>=x:
        cheap.append(cost)
      ccc.append(i)
    if len(candi)>0:
      r=candi.pop()
      dfs(r)
  else:
    r=candi.pop()
    dfs(r)
dfs(0)
#print(cheap)
#print(ccc)
if len(cheap)>0:
  print(min(cheap))
else:
  print(-1)

### FIXED CODE ###

import sys
n,m,x=map(int,input().split())
ac=[[0]*(m+1) for i in range(n)]
a=[[0]*m for i in range(0,n)]
c=[0 for i in range(n)]
for i in range(n):
  ac[i]=list(map(int,input().split()))
  c[i]=ac[i][0]
  a[i]=ac[i][1:m+1]#sliceは上限+１を:の右に代入
cheap=[]
kaukadouka=[0 for i in range(n)]

def kau(i):
  global a,x,kaukadouka,cheap,c
  rikaido=[0 for i in range(m)]#初期化
  for j in range(i+1,n):
    kaukadouka[j]=0
  if i>=n:
      sys.exit()
  kaukadouka[i]=1
  for j in range(n):
    for k in range(m):
      rikaido[k]+=kaukadouka[j]*a[j][k]
  value=0
  if min(rikaido)>=x:
    for j in range(n):
      value+=c[j]*kaukadouka[j]
    cheap.append(value)
  if i<n-1:
    kau(i+1)
    kawanai(i+1)
    
def kawanai(i):
  global kaukadouka
  for j in range(i,n):
    kaukadouka[j]=0

  if i>=n:
    sys.exit()
  #print('i=',i,'のとき買わないで')
  #print('->',kaukadouka)

  if i<n-1:
    kau(i+1)
    kawanai(i+1)

kau(0)
kawanai(0)
if len(cheap)>0:
	#print(cheap)
	print(min(cheap))
else:
  print('-1')
def main():
  a = int(input())
  
  i = a % 10
  
  if i == 2 or 4 or 5 or 7 or 9:
    print('hon')
    return
  elif i == 0 or 1 or 6 or 8:
  	print('pon')
    return
  else:
    print('bon')
main()

### FIXED CODE ###

def main():
  a = int(input())
  x = a % 10
  
  if x in (2,4,5,7,9):
    print('hon')
    return
  elif x in (0,6,1,8):
    print('pon')
    return
  else:
    print('bon')
  
main()
s = input()
t = input()
u = inpuy()
print(t, u, s)

### FIXED CODE ###

a,b,c=map(int,input().split())
print(c, a, b)