跳转至

cqlib tutorial

1. 量子计算机操作基础

目前支持两种平台进行量子计算机操作:

在使用前,请先在对应的平台注册账号,并获取对应的密钥。

在开始此教程前,请确保已经成功安装cqlib package。如果未安装,请运行一下命令:

!pip install cqlib -i https://pypi.tuna.tsinghua.edu.cn/simple

设置登录信息,选择量子计算机或仿真器。

from cqlib import TianYanPlatform  # 导出量子计算机SDK的支持包

login_key = "your_login_key"

# 使用 TianYanPlatform 类来创建一个平台实例,并设置你的 SDK 密钥和选择的量子计算机。
# 用户使用时,请务必用自己的密钥更新上述内容,否则上述密钥会被定时更新而示例程序不可以。
platform = TianYanPlatform(login_key=login_key)

# 查询和选择量子计算机, 可用于后期解析量子计算机工作状态。而调用量子计算机的名称,可在网页中查看。
computer_list_data = platform.query_quantum_computer_list()
for computer_data in computer_list_data:
    print(computer_data)

# 此为示例,实际使用时请选择正确的量子计算机,或者仿真器。
platform.set_machine("xuanyuanone")
1
2
3
4
5
6
['3', 'free', 'running', 'zdxlz_simulator']
['4', 'free', 'running', 'stabilizer']
['7', 'free', 'running', 'tensor_network']
['8', 'free', 'running', 'tensor_network_noise']
['9', 'free', 'running', 'single_amplitude']
['1764555284795101186', 'free', 'running', 'xuanyuanone']

也可以在创建实例时直接指定量子计算机,下面的指令与上述等价

platform = TianYanPlatform(login_key=login_key, machine_name="xuanyuanone")

首先查询了当前云平台包含的量子计算机的列表,根据需求设置使用哪种量子计算机。接下来介绍量子电路编写和提交

2.编写量子线路

2.1 量子门

Cqlib 支持的量子门种类丰富,包括许多单量子比特门和多量子比特门

  • 单量子比特门:

    • Hadamard 门: H
    • Pauli 门: X, Y, Z
    • 旋转门: RX, RY, RZ
    • 根 Pauli 门: X2P, X2M, Y2P, Y2M
    • 相位门: S, SD, T, TD
  • 多量子比特门:

    • 受控门: CX, CCX, CRX, CRY, CRZ, CZ
    • 交换门: SWAP
    • XY 门: XY, XY2P, XY2M

这些门是构建量子电路的基础,可以组合使用来执行复杂的量子计算任务。

2.2 量子程序的编写

下面介绍第一个量子程序:Bell 态制备。
贝尔态是量子力学中的一种重要纠缠态,涉及两个量子比特。贝尔态在量子信息和量子计算中具有重要的应用。
贝尔态的制备过程是:用了量子门操作(Hadamard门和CZ门)来生成一个 Bell 态,并对量子比特进行测量(M)。

from cqlib.circuits import Circuit, Parameter

circuit = Circuit(qubits=[0, 6])

circuit.h(0)
circuit.x(6)
# cx门被分解过h和cz门
circuit.h(6)
circuit.cz(0, 6)
circuit.h(6)
circuit.measure_all()

print(circuit.qcis)
1
2
3
4
5
6
7
H Q0
X Q6
H Q6
CZ Q0 Q6
H Q6
M Q0
M Q6

参数化量子线路是一种在量子计算中常用的技术,允许在量子电路中引入参数以增加灵活性和可调节性。这在量子机器学习、优化算法和量子化学等领域中非常有用。

theta = Parameter('theta')
circuit_para = Circuit(qubits=[0], parameters=[theta])
circuit_para.rx(0, theta)
print(f"带参数的线路: {circuit_para.qcis}")

circuit_para.set_parameter_value({'theta': 0.12})
print(f"赋值后的线路: {circuit_para.qcis}")
1
2
带参数的线路: RX Q0 theta
赋值后的线路: RX Q0 0.12

量子计算的参数支持,基础的加减乘除运算。

from cqlib.circuits import Circuit, Parameter

theta = Parameter('theta')
phi = Parameter('phi')

print(f'theta: {theta}')
print(f'phi: {phi}')
print(f"theta + phi: {theta + phi}")
print(f"theta - phi: {theta - phi}")
print(f"theta * phi: {theta * phi}")
print(f"theta / phi: {theta / phi}")

# 组合运算
print(f"theta * phi - phi: {theta * phi - phi}")
1
2
3
4
5
6
7
theta: theta
phi: phi
theta + phi: phi + theta
theta - phi: -phi + theta
theta * phi: phi*theta
theta / phi: theta/phi
theta * phi - phi: phi*theta - phi

circuit.qcis 可以导出 QCIS 线路。Circuit.load 可以导入QCIS线路来创建一个量子线路。

qcis = """
H Q0
X Q6
H Q6
CZ Q0 Q6
H Q6
M Q0
M Q6
"""

c1 = Circuit.load(qcis)
print(c1)
1
<cqlib.circuits.circuit.Circuit object at 0x000001A9D2E62F50>

3. 量子计算提交

3.1 量子实验集创建

量子实验集合可以帮助将相似的实验组织在一起,方便管理和分类。
如不创建实验集合也可以(后期不传递 lab_id 参数即可),快速提交运行的程序将放在默认实验集合内。

from datetime import datetime
# create_lab 方法创建了一个实验集,并返回了该实验集的唯一标识 lab_id
lab_id = platform.create_lab(name=f'lab.{datetime.now().strftime("%Y%m%d%H%M%S")}', remark='test_collection')

print(lab_id)
1
1821717668390039553

3.2 量子实验运行提交

有两种方式提交量子电路实验 + 先保存实验,再提交运行。 + 直接提交并运行实验。

下面分别进行介绍

3.2.1 保存实验,再提交

在量子计算中,通常先定义一个量子电路(如之前定义的 circuit.qcis),然后将它保存为一个实验,并提交运行。这里使用了 save_experiment 方法保存实验,然后使用 run_experiment 方法提交运行,并指定运行的次数(5000次)。
该方式的优势是存储一个线路,可以多次运行,而不用从新创建实验。

exp_id = platform.save_experiment(lab_id=lab_id, circuit=circuit.qcis, name=f'exp.{datetime.now().strftime("%Y%m%d%H%M%S")}')
query_id_single = platform.run_experiment(exp_id=exp_id, num_shots=5000)
print(f'query_id: {query_id_single}')
1
query_id: 1821717691366436865

exp_id 是保存的实验的唯一标识,query_id_single 是提交运行后返回的查询标识,可以用于后续的状态查询。

3.2.2 直接提交并运行实验

如果不需要先保存实验,也可以直接提交并运行实验。使用 submit_experiment 方法可以一步到位,将量子电路直接提交到指定的实验集中并运行。

query_id_single = platform.submit_job(
    circuit=circuit.qcis,
    exp_name=f'exp.{datetime.now().strftime("%Y%m%d%H%M%S")}',
    lab_id=lab_id,
    num_shots=5000,
    )
print(f'query_id: {query_id_single}')
1
query_id: ['1821717701848002561']

3.2.3 批量提交并运行实验

如果有多个量子电路需要运行,可以将它们作为列表传递给 submit_experiment 方法,以批量方式提交并运行。 该批量提交实验,主要针对用户线路基本相同,尤其是测量比特相同,只有具备带入参数不同的情况下可以进行。

circuit_list = [circuit.qcis] * 10 
#用户个根据实际需求,重组该列表,但要注意测量比特及测量顺序必须相同。
#关于批量运行实验的其他限制,详见函数说明。
from cqlib import QuantumLanguage
query_id_list = platform.submit_experiment(
    circuit=circuit_list,
    language=QuantumLanguage.QCIS,
    lab_id=lab_id,
    num_shots=5000,
)
print(f'提交多个电路query_id: {query_id_list}')
1
提交多个电路query_id: ['1821717710509240322', '1821717710815424513', '1821717711348101122', '1821717712199544833', '1821717712522506241', '1821717712883216386', '1821717713206177793', '1821717713751437313', '1821717714057621505', '1821717714363805698']

4. 查询实验结果及处理

4.1 查询原始数据

一旦实验提交完成并且量子计算平台处理完毕,你可以使用返回的 query_id_list 查询每个实验的结果。下面是一个示例代码,用于查询单个实验的结果:

exp_result = platform.query_experiment(query_id=query_id_single, max_wait_time=120, sleep_time=5)
#返回值为list,包含若干字典形式,
    #key:"resultStatus"为线路执行的原始数据,共计1+num_shots个数据,第一个数据为测量的比特编号和顺序,如本例中[0, 6],其余为每shot对应的结果,每shot结果按照比特顺序排列。
    #key:"probability"为线路测量结果的概率统计,经过实时的读取修正后的统计结果。
    #key:"experimentTaskId"为本次实验的查询id,主要用于批量实验时的结果对应确认。
    #当测量比特大于15个时,结果统计对服务器要求较高,传递数据率也较大,故"probability"返回为空,请用户根据原始数据,配合当时量子计算机的读出保真度自行做修正。相关修正函数在高阶教程中有示例。用户也可以自己完善修正函数。

for res_name, res_data in exp_result[0].items():
    print(f"{res_name} : {res_data}")
1
2
3
resultStatus : [[0, 6], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [1, 1], [1, 0], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [0, 0], [1, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [1, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0]]
probability : None
experimentTaskId : 1821717701848002561

对于多个提交的量子电路,或者单个量子电路测量比特大于等于15个量子比特时,云平台只会返回原始测量结果。

同样也可以批量查询量子电路结果。

exp_result = platform.query_experiment(query_id=query_id_list, max_wait_time=120, sleep_time=5)
print(f'输入的查询Id个数为: {len(query_id_list)},查询到的实验结果个数为: {len(exp_result)}')
print('第一个量子电路实验结果为:')
for res_name, res_data in exp_result[0].items():
    print(f"{res_name} : {res_data}")
1
2
3
4
5
输入的查询Id个数为: 10,查询到的实验结果个数为: 10
第一个量子电路实验结果为:
resultStatus : [[0, 6], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 0], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 0], [1, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [0, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 1], [1, 1], [0, 0], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 1], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 0], [0, 0], [0, 1], [0, 1], [1, 1], [1, 1], [0, 0], [1, 1], [1, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1]]
probability : None
experimentTaskId : 1821717710509240322

4.2 实验结果统计

对于云平台未返回统计结果的实验,需要手动对实验结果进行统计。需要使用util模块下的 LaboratoryUtils 类 其中: readout_data_to_state_probabilities_whole 方法会统计全部可能的空间,输出概率为0的空间组合。 readout_data_to_state_probabilities_part 仅输出概率超过0的结果,有利于节省内存。

from cqlib.utils import LaboratoryUtils

lu = LaboratoryUtils()
#将结果的全部空间进行统计
probability_whole=lu.readout_data_to_state_probabilities_whole(result=exp_result[0])
print(f'结果的全部空间统计: {probability_whole}')

#只对已有结果进行统计,概率为0的结果将不出现。
probability_part=lu.readout_data_to_state_probabilities_part(result=exp_result[0])
print(f'结果的部分空间统计: {probability_part}')
1
2
结果的全部空间统计: {'00': 0.079, '01': 0.4366, '10': 0.4122, '11': 0.0722}
结果的部分空间统计: {'10': 0.4122, '01': 0.4366, '11': 0.0722, '00': 0.079}

4.3 读取修正和归一化处理(仿真器不需要)

可以根据读取到的实验结果进行概率校准和概率修正。

single_circuit_result = exp_result[0]
calibration_result = lu.probability_calibration(result=exp_result[0], laboratory=platform)
print(f'概率校准结果为: {calibration_result}')

corrected_result = lu.probability_correction(probabilities=calibration_result)
print(f'修正后的概率结果为: {corrected_result}')
1
2
概率校准结果为: {'00': -0.011467657851889829, '01': 0.4883907347749667, '10': 0.44225605839561427, '11': 0.08082086468130877}
修正后的概率结果为: {'00': 0.0, '01': 0.482853535635721, '10': 0.43724191768509746, '11': 0.07990454667918157}

4.4 量子计算机信息保存(仿真器不需要)

如果需要保存此时量子计算的参数作为后期参考,可以运行以下指令:

config_save = platform.download_config()
for key, value in config_save.items():
    print(key, value)
1
2
3
4
5
6
7
8
9
calibrationTime 2024-08-08 21:31:50
computerId QubitPrime
disabledCouplers G10,G103,G29,G38,G19,G5,G42,G28,G64,G32,G75,G76,G53,G25,G54,G21,G86,G31,G40,G30,G65,G104,G20,G87
disabledQubits Q47,Q35,Q5
overview {'name': '', 'type': '', 'qubits': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q35', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q47', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'couplers': ['G0', 'G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8', 'G9', 'G10', 'G11', 'G12', 'G13', 'G14', 'G15', 'G16', 'G17', 'G18', 'G19', 'G20', 'G21', 'G22', 'G23', 'G24', 'G25', 'G26', 'G27', 'G28', 'G29', 'G30', 'G31', 'G32', 'G33', 'G34', 'G35', 'G36', 'G37', 'G38', 'G39', 'G40', 'G41', 'G42', 'G43', 'G44', 'G45', 'G46', 'G47', 'G48', 'G49', 'G50', 'G51', 'G52', 'G53', 'G54', 'G55', 'G56', 'G57', 'G58', 'G59', 'G60', 'G61', 'G62', 'G63', 'G64', 'G65', 'G66', 'G67', 'G68', 'G69', 'G70', 'G71', 'G72', 'G73', 'G74', 'G75', 'G76', 'G77', 'G78', 'G79', 'G80', 'G81', 'G82', 'G83', 'G84', 'G85', 'G86', 'G87', 'G88', 'G89', 'G90', 'G91', 'G92', 'G93', 'G94', 'G95', 'G96', 'G97', 'G98', 'G99', 'G100', 'G101', 'G102', 'G103', 'G104', 'G105', 'G106', 'G107', 'G108', 'G109'], 'readouts': ['R01', 'R02', 'R03', 'R04', 'R05', 'R06', 'R07', 'R08', 'R09', 'R10', 'R11'], 'coupler_map': {'G0': ['Q6', 'Q0'], 'G1': ['Q7', 'Q0'], 'G2': ['Q7', 'Q1'], 'G3': ['Q8', 'Q1'], 'G4': ['Q8', 'Q2'], 'G5': ['Q9', 'Q2'], 'G6': ['Q9', 'Q3'], 'G7': ['Q10', 'Q3'], 'G8': ['Q10', 'Q4'], 'G9': ['Q11', 'Q4'], 'G10': ['Q11', 'Q5'], 'G11': ['Q12', 'Q6'], 'G12': ['Q12', 'Q7'], 'G13': ['Q13', 'Q7'], 'G14': ['Q13', 'Q8'], 'G15': ['Q14', 'Q8'], 'G16': ['Q14', 'Q9'], 'G17': ['Q15', 'Q9'], 'G18': ['Q15', 'Q10'], 'G19': ['Q16', 'Q10'], 'G20': ['Q16', 'Q11'], 'G21': ['Q17', 'Q11'], 'G22': ['Q18', 'Q12'], 'G23': ['Q19', 'Q12'], 'G24': ['Q19', 'Q13'], 'G25': ['Q20', 'Q13'], 'G26': ['Q20', 'Q14'], 'G27': ['Q21', 'Q14'], 'G28': ['Q21', 'Q15'], 'G29': ['Q22', 'Q15'], 'G30': ['Q22', 'Q16'], 'G31': ['Q23', 'Q16'], 'G32': ['Q23', 'Q17'], 'G33': ['Q24', 'Q18'], 'G34': ['Q24', 'Q19'], 'G35': ['Q25', 'Q19'], 'G36': ['Q25', 'Q20'], 'G37': ['Q26', 'Q20'], 'G38': ['Q26', 'Q21'], 'G39': ['Q27', 'Q21'], 'G40': ['Q27', 'Q22'], 'G41': ['Q28', 'Q22'], 'G42': ['Q28', 'Q23'], 'G43': ['Q29', 'Q23'], 'G44': ['Q30', 'Q24'], 'G45': ['Q31', 'Q24'], 'G46': ['Q31', 'Q25'], 'G47': ['Q32', 'Q25'], 'G48': ['Q32', 'Q26'], 'G49': ['Q33', 'Q26'], 'G50': ['Q33', 'Q27'], 'G51': ['Q34', 'Q27'], 'G52': ['Q34', 'Q28'], 'G53': ['Q35', 'Q28'], 'G54': ['Q35', 'Q29'], 'G55': ['Q36', 'Q30'], 'G56': ['Q36', 'Q31'], 'G57': ['Q37', 'Q31'], 'G58': ['Q37', 'Q32'], 'G59': ['Q38', 'Q32'], 'G60': ['Q38', 'Q33'], 'G61': ['Q39', 'Q33'], 'G62': ['Q39', 'Q34'], 'G63': ['Q40', 'Q34'], 'G64': ['Q40', 'Q35'], 'G65': ['Q41', 'Q35'], 'G66': ['Q42', 'Q36'], 'G67': ['Q43', 'Q36'], 'G68': ['Q43', 'Q37'], 'G69': ['Q44', 'Q37'], 'G70': ['Q44', 'Q38'], 'G71': ['Q45', 'Q38'], 'G72': ['Q45', 'Q39'], 'G73': ['Q46', 'Q39'], 'G74': ['Q46', 'Q40'], 'G75': ['Q47', 'Q40'], 'G76': ['Q47', 'Q41'], 'G77': ['Q48', 'Q42'], 'G78': ['Q48', 'Q43'], 'G79': ['Q49', 'Q43'], 'G80': ['Q49', 'Q44'], 'G81': ['Q50', 'Q44'], 'G82': ['Q50', 'Q45'], 'G83': ['Q51', 'Q45'], 'G84': ['Q51', 'Q46'], 'G85': ['Q52', 'Q46'], 'G86': ['Q52', 'Q47'], 'G87': ['Q53', 'Q47'], 'G88': ['Q54', 'Q48'], 'G89': ['Q55', 'Q48'], 'G90': ['Q55', 'Q49'], 'G91': ['Q56', 'Q49'], 'G92': ['Q56', 'Q50'], 'G93': ['Q57', 'Q50'], 'G94': ['Q57', 'Q51'], 'G95': ['Q58', 'Q51'], 'G96': ['Q58', 'Q52'], 'G97': ['Q59', 'Q52'], 'G98': ['Q59', 'Q53'], 'G99': ['Q60', 'Q54'], 'G100': ['Q60', 'Q55'], 'G101': ['Q61', 'Q55'], 'G102': ['Q61', 'Q56'], 'G103': ['Q62', 'Q56'], 'G104': ['Q62', 'Q57'], 'G105': ['Q63', 'Q57'], 'G106': ['Q63', 'Q58'], 'G107': ['Q64', 'Q58'], 'G108': ['Q64', 'Q59'], 'G109': ['Q65', 'Q59']}, 'qubits_length': 66, 'couplers_length': 110, 'readouts_length': 11, 'T1': 33.88, 'T2': 3.07, 'cz_error': 1.95, '1q_gate_error': 0.63, 'readout_error': 5.8}
qubit {'frequency': {'f01': {'param_list': [4.8324, 4.8938, 4.8009, 4.5534, 4.8471, 4.9181, 4.7476, 4.6197, 4.8984, 4.6354, 4.5766, 5.014, 4.7793, 4.7354, 4.8115, 4.7592, 4.6921, 4.7196, 4.8209, 4.8553, 4.929, 4.7923, 4.5555, 4.8881, 4.7144, 4.5223, 4.8424, 4.6854, 4.6491, 4.7262, 4.5657, 4.597, 4.6419, 4.7488, 4.8926, 4.9018, 4.7643, 4.6821, 4.5529, 4.6739, 4.7315, 4.7362, 4.6938, 4.9484, 4.6206, 4.6911, 4.8593, 4.7811, 4.7778, 4.7587, 4.8326, 4.6516, 4.8062, 4.6369, 4.8504, 4.5777, 4.7046, 4.7017, 4.6992, 4.6929, 4.6595, 4.5748, 4.7975], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': 'GHz', 'update_time': '2024-08-07 06:35:59'}}, 'relatime': {'T1': {'param_list': [32.0834, 15.3496, 41.7426, 18.8109, 39.4095, 34.1569, 27.2226, 41.4021, 45.1429, 27.3363, 34.0723, 20.9809, 27.1586, 23.2489, 29.316, 28.044, 32.6449, 42.8331, 34.51, 33.292, 11.1108, 19.7031, 36.9693, 28.1199, 25.7801, 33.3957, 42.7922, 44.52, 46.2545, 47.3339, 39.2116, 34.2867, 45.8843, 11.2483, 36.9933, 20.2838, 26.7274, 53.2455, 42.761, 46.6116, 9.2206, 32.0589, 32.6543, 15.9043, 48.8296, 34.7081, 22.8442, 28.4607, 39.6676, 46.495, 42.8035, 38.1672, 31.5051, 39.0114, 29.9296, 41.2292, 39.4186, 35.1132, 32.0341, 37.5697, 41.0691, 41.8796, 51.9372], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': 'us', 'update_time': '2024-08-07 06:42:30'}, 'T2': {'param_list': [3.2126, 2.6164, 2.8801, 2.0339, 2.8415, 2.1791, 2.9795, 2.1216, 4.5112, 3.7053, 2.533, 3.7859, 2.087, 3.3545, 3.8793, 0.8117, 1.6724, 2.3948, 2.6482, 3.0503, 3.1277, 5.2144, 1.4348, 3.8899, 2.3304, 2.3066, 2.6675, 3.569, 3.4687, 4.1659, 2.6226, 3.1679, 2.3717, 3.3037, 4.4307, 3.4005, 2.525, 3.0077, 2.791, 4.9467, 2.6968, 3.6065, 2.0135, 4.4647, 2.1206, 1.9042, 3.9622, 2.2406, 3.7145, 2.6143, 2.7025, 2.7191, 4.4254, 3.6573, 4.3126, 2.1808, 4.7646, 3.0689, 3.0618, 2.4693, 3.017, 1.9217, 5.6671], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': 'us', 'update_time': '2024-08-02 15:28:42'}}, 'singleQubit': {'gate error': {'param_list': [0.18, 0.23, 0.11, 0.19, 0.14, 0.21, 0.16, 0.17, 0.1, 0.11, 0.13, 0.22, 0.14, 0.12, 0.25, 0.17, 0.43, 0.22, 0.22, 0.11, 0.15, 0.16, 0.17, 0.36, 0.12, 2.07, 0.11, 0.12, 0.15, 0.15, 0.15, 0.12, 0.12, 0.55, 0.55, 0.43, 0.14, 0.29, 0.15, 0.15, 0.22, 0.36, 0.15, 0.18, 0.1, 0.15, 0.13, 0.13, 0.1, 0.15, 0.11, 0.35, 0.1, 0.16, 0.11, 0.25, 0.1, 0.45, 0.22, 25.8, 0.14, 0.26, 0.1], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '%', 'update_time': '2024-08-07 06:52:39'}, 'X/2 amplitude': {'param_list': [0.2843, 0.1516, 0.1162, 0.3667, 0.1932, 0.3206, 0.2995, 0.2799, 0.1236, 0.2737, 0.1642, 0.2303, 0.2602, 0.2674, 0.2599, 0.1679, 0.259, 0.3028, 0.2076, 0.3307, 0.2425, 0.3832, 0.2509, 0.2333, 0.2652, 0.3073, 0.2495, 0.3561, 0.2052, 0.2842, 0.4796, 0.2051, 0.2385, 0.2281, 0.3228, 0.1389, 0.2066, 0.1653, 0.3508, 0.1948, 0.3053, 0.1078, 0.305, 0.208, 0.2535, 0.316, 0.2561, 0.1966, 0.3037, 0.2433, 0.1549, 0.307, 0.1953, 0.1359, 0.1125, 0.2494, 0.2251, 0.1185, 0.2481, 0.2985, 0.2485, 0.172, 0.1773], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '', 'update_time': '2024-08-07 06:41:16'}, 'X/2 length': {'param_list': [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '', 'update_time': '2024-08-02 15:28:38'}}}
readout {'readoutArray': {'Readout Error': {'param_list': [5.86, 5.58, 7.91, 7.25, 6.31, 4.5, 7.03, 8.04, 4.02, 8.33, 10.52, 5.59, 7.5, 6.3, 4.0, 8.05, 5.34, 4.76, 4.05, 2.02, 5.74, 4.06, 9.38, 4.63, 4.89, 8.3, 3.44, 1.92, 4.48, 3.48, 5.49, 4.96, 4.01, 4.97, 3.57, 3.74, 3.42, 9.45, 5.31, 4.97, 3.12, 7.73, 4.93, 2.38, 6.05, 9.9, 2.7, 3.37, 4.32, 3.73, 3.59, 4.09, 3.63, 4.23, 2.87, 10.34, 16.86, 5.47, 4.39, 21.05, 3.36, 6.97, 6.96], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '%', 'update_time': '2024-08-07 10:20:12'}, '|0> readout fidelity': {'param_list': [0.9937, 0.9913, 0.9651, 0.9731, 0.9859, 0.9916, 0.9783, 0.9735, 0.986, 0.957, 0.9421, 0.9862, 0.9481, 0.9781, 0.9879, 0.988, 0.9714, 0.9939, 0.9902, 0.985, 0.9911, 0.9898, 0.9798, 0.9913, 0.9841, 0.9881, 0.9893, 0.9927, 0.978, 0.9887, 0.987, 0.9787, 0.9842, 0.9813, 0.9934, 0.9928, 0.9883, 0.9756, 0.9637, 0.9892, 0.9925, 0.9704, 0.9713, 0.9883, 0.9548, 0.8856, 0.9922, 0.9885, 0.9881, 0.9829, 0.9823, 0.9669, 0.9765, 0.9793, 0.9919, 0.9031, 0.8332, 0.9697, 0.9674, 0.942, 0.9838, 0.9382, 0.9172], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '', 'update_time': '2024-08-07 10:20:12'}, '|1> readout fidelity': {'param_list': [0.8891, 0.897, 0.8768, 0.8819, 0.888, 0.9184, 0.8812, 0.8656, 0.9336, 0.8764, 0.8474, 0.902, 0.9018, 0.896, 0.932, 0.8511, 0.9218, 0.9108, 0.9288, 0.9745, 0.8941, 0.929, 0.8325, 0.916, 0.9181, 0.846, 0.9419, 0.9689, 0.9325, 0.9417, 0.9033, 0.9221, 0.9357, 0.9193, 0.9351, 0.9323, 0.9433, 0.8354, 0.9301, 0.9114, 0.9452, 0.875, 0.9301, 0.9642, 0.9241, 0.9164, 0.9539, 0.944, 0.9255, 0.9425, 0.946, 0.9514, 0.951, 0.936, 0.9508, 0.8902, 0.8296, 0.9209, 0.9447, 0.637, 0.9489, 0.9224, 0.9436], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17', 'Q18', 'Q19', 'Q20', 'Q21', 'Q22', 'Q23', 'Q24', 'Q25', 'Q26', 'Q27', 'Q28', 'Q29', 'Q30', 'Q31', 'Q32', 'Q33', 'Q34', 'Q36', 'Q37', 'Q38', 'Q39', 'Q40', 'Q41', 'Q42', 'Q43', 'Q44', 'Q45', 'Q46', 'Q48', 'Q49', 'Q50', 'Q51', 'Q52', 'Q53', 'Q54', 'Q55', 'Q56', 'Q57', 'Q58', 'Q59', 'Q60', 'Q61', 'Q62', 'Q63', 'Q64', 'Q65'], 'unit': '', 'update_time': '2024-08-07 10:20:12'}}}
status 0
twoQubitGate {'czGate': {'gate error': {'param_list': [1.24, 1.91, 1.16, 0.91, 1.03, 1.05, 1.35, 1.22, 0.99, 1.54, 1.06, 1.76, 1.6, 1.54, 0.87, 2.34, 1.1, 1.68, 2.26, 2.47, 3.54, 1.54, 1.35, 2.32, 4.78, 0.98, 1.72, 1.89, 2.45, 1.15, 1.2, 1.05, 1.34, 0.94, 1.75, 0.5, 2.06, 1.81, 1.73, 2.35, 1.77, 1.83, 0.85, 1.56, 1.72, 1.57, 1.56, 1.22, 1.9, 3.92, 3.64, 0.61, 2.75, 1.41, 1.44, 3.86, 1.67, 1.71, 4.12, 6.25, 1.11, 4.92, 1.76, 1.25, 1.73, 1.46, 1.38, 1.48, 2.03, 2.41, 1.09, 4.4, 2.2, 2.7, 2.69, 1.03, 2.87, 1.01, 3.93, 1.4, 2.94, 1.37, 2.0, 3.1, 1.35, 3.46], 'qubit_used': ['G0', 'G1', 'G2', 'G3', 'G4', 'G6', 'G7', 'G8', 'G9', 'G11', 'G12', 'G13', 'G14', 'G15', 'G16', 'G17', 'G18', 'G22', 'G23', 'G24', 'G26', 'G27', 'G33', 'G34', 'G35', 'G36', 'G37', 'G39', 'G41', 'G43', 'G44', 'G45', 'G46', 'G47', 'G48', 'G49', 'G50', 'G51', 'G52', 'G55', 'G56', 'G57', 'G58', 'G59', 'G60', 'G61', 'G62', 'G63', 'G66', 'G67', 'G68', 'G69', 'G70', 'G71', 'G72', 'G73', 'G74', 'G77', 'G78', 'G79', 'G80', 'G81', 'G82', 'G83', 'G84', 'G85', 'G88', 'G89', 'G90', 'G91', 'G92', 'G93', 'G94', 'G95', 'G96', 'G97', 'G98', 'G99', 'G100', 'G101', 'G102', 'G105', 'G106', 'G107', 'G108', 'G109'], 'unit': '%', 'update_time': '2024-08-07 09:19:49'}, 'coupling strength': {'param_list': [[-14863822326.1, 3949970777.3], [-17075102279.4, 4042139099.9], [-17072472238.5, 4093045002.9], [-22007890122.7, 4523144360.0], [-33348334307.4, 5120631209.8], [-21082758620.7, 4917241379.3], [-12974050263.0, 3729398012.9], [-16024956166.0, 4388836937.5], [-15924897720.6, 4344067796.6], [-17346580946.8, 4025832846.3], [-21167270602.0, 4667212156.6], [-13944827586.2, 5075862069.0], [-23646522501.5, 4429339567.5], [-35874108708.4, 4967270602.0], [-17090531852.7, 5557744009.4], [-45104324956.2, 5019812974.9], [-35756867329.0, 4753477498.5], [-28306078316.8, 5024956166.0], [-17881998831.1, 4283518410.3], [-18283635301.0, 4074985388.7], [-20348334307.4, 4299941554.6], [-31985330216.2, 4980187025.1], [-18084511981.3, 4267212156.6], [-15493161893.6, 3962010520.2], [-28950087668.0, 4594739918.2], [-18880245470.5, 4264582115.7], [-42919871420.2, 5445645821.2], [-40569783752.2, 4768147282.3], [-25770660432.5, 5746580946.8], [-27394739918.2, 5715604909.4], [-22584570426.7, 4360257159.6], [-34543191116.3, 5118877849.2], [-39081122150.8, 4843015780.2], [-21184570426.7, 4187843366.5], [-27838866160.1, 4492168322.6], [-25098305084.7, 4460315604.9], [-12505961426.1, 3921624780.8], [-12505961426.1, 3859555815.3], [-13653419053.2, 3822443015.8], [-27175920514.3, 4630976037.4], [-29656925774.4, 5067212156.6], [-53419053185.3, 5532670952.7], [-22150087668.0, 4277498538.9], [-26064699006.4, 4487025131.5], [-18634482758.6, 5620689655.2], [-31390473407.4, 5954354178.8], [-18500818235.0, 5333664523.7], [-27881881940.4, 5745704266.5], [-23134541204.0, 4396493278.8], [-16543191116.3, 4187843366.5], [-20283752191.7, 4330040911.7], [-20800993571.0, 4281765049.7], [-21617299824.7, 4396493278.8], [-23196610169.5, 4637872589.1], [-18538807714.8, 4578433664.5], [-15650789012.3, 4031969608.4], [-15341320865.0, 4051782583.3], [-14332787843.4, 5074108708.4], [-20213793103.4, 4234482758.6], [-30351841028.6, 4689538281.7], [-19492285213.3, 4376680303.9], [-27981063705.4, 4549970777.3], [-28499181765.0, 4459438924.6], [-50315488018.7, 5105201636.5], [-20534424313.3, 5962127410.9], [-59055172413.8, 5165517241.4], [-23196610169.5, 4396493278.8], [-21767387492.7, 4232612507.3], [-21181063705.4, 4543074225.6], [-34907831677.4, 5168030391.6], [-20133664523.7, 4204266510.8], [-14656925774.4, 3853419053.2], [-10639625949.7, 3677615429.6], [-15377556984.2, 3967270602.0], [-14767270602.0, 3770660432.5], [-11701694915.3, 3677615429.6], [-13427586206.9, 3903448275.9], [-19010403272.9, 4168907071.9], [-18360374050.3, 4315488018.7], [-17588836937.5, 4218059614.3], [-22762127410.9, 4617182934.0], [-59081881940.4, 5359497370.0], [-17537054354.2, 5428462887.2], [-44520631209.8, 5024196376.4], [-33274108708.4, 4815546464.1], [-20659438924.6, 5526767971.9]], 'qubit_used': ['G0', 'G1', 'G2', 'G3', 'G4', 'G6', 'G7', 'G8', 'G9', 'G11', 'G12', 'G13', 'G14', 'G15', 'G16', 'G17', 'G18', 'G22', 'G23', 'G24', 'G26', 'G27', 'G33', 'G34', 'G35', 'G36', 'G37', 'G39', 'G41', 'G43', 'G44', 'G45', 'G46', 'G47', 'G48', 'G49', 'G50', 'G51', 'G52', 'G55', 'G56', 'G57', 'G58', 'G59', 'G60', 'G61', 'G62', 'G63', 'G66', 'G67', 'G68', 'G69', 'G70', 'G71', 'G72', 'G73', 'G74', 'G77', 'G78', 'G79', 'G80', 'G81', 'G82', 'G83', 'G84', 'G85', 'G88', 'G89', 'G90', 'G91', 'G92', 'G93', 'G94', 'G95', 'G96', 'G97', 'G98', 'G99', 'G100', 'G101', 'G102', 'G105', 'G106', 'G107', 'G108', 'G109'], 'unit': 'Hz', 'update_time': '2024-08-02 15:28:38'}}}

5. 其他功能

5.1 QCIS和QASM指令相互转换

下面介绍关于cqlib.util模块中关于指令集相互转换的功能。

QCIS 指令和 QASM 指令都是用来进行量子电路编程的指令集。详细信息请点击下面的链接查看。

QCIS

QASM

Cqlib 中定义了函数可以实现指令集命令的相互转换。

# 从QCIS电路转换为QASM
from cqlib.utils import QcisToQasm

qasm_str = QcisToQasm.convert_qcis_to_qasm(circuit.qcis)
print(f'转换后的QASM指令为: {qasm_str}')

# 将QASM转换为QCIS
from cqlib.utils import QasmToQcis
qcis_str = QasmToQcis().convert_to_qcis(qasm_str)
print(f'转换后的QCIS指令为: {qcis_str}') 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
转换后的QASM指令为: OPENQASM 2.0;
include "qelib1.inc";
qreg q[7];
creg c[7];
h q[0];
x q[6];
h q[6];
cz q[0],q[6];
h q[6];
measure q[0] -> c[0];
measure q[6] -> c[1];

转换后的QCIS指令为: Y2M Q0
RZ Q0 3.141593
X2P Q6
X2P Q6
RZ Q6 3.141593
Y2P Q6
CZ Q0 Q6
Y2M Q6
RZ Q6 3.141593
M Q0
M Q6

5.2 QCIS指令化简

Cqlib 同时支持对QCIS指令进行简化,简化后的指令会以 QCIS 指令的形式返回。 下面的例子中会将3个 QCIS 指令简化为2个 QCIS 指令。

from cqlib.utils import QCIS_Simplify

qcis = """
Y2M Q1
X2P Q1
X2P Q1
"""
new_qcis = QCIS_Simplify().simplify(qcis)

origin_line = qcis.count('\n') - 1 
new_line = new_qcis.count('\n') - 1
print(f"化简前电路行数为: {origin_line}")
print(f"化简后电路行数为: {new_line}")
print(f"\n化简后电路为: {new_qcis}")
1
2
3
4
5
6
化简前电路行数为: 3
化简后电路行数为: 2

化简后电路为: 
Y2P Q1
RZ Q1 3.141592653589793

5.3 虚拟线路映射

SDK 提供了基于Monte Carlo Tree Search (MCTS) 的虚拟线路映射算法,可以基于选择的量子计算机的拓扑图和输入的虚拟量子线路,输出映射到真实物理机拓扑结构的线路。

from cqlib.mapping import transpile_qcis
from cqlib.circuits import Circuit, Parameter

c2 = Circuit(qubits=[0, 1])
c2.rz(0, 0.0)
c2.x2p(1)
c2.y2p(0)
c2.rz(1, 0.9272952180016122)
c2.rz(0, 3.1415910000000005)
c2.x2m(1)
c2.rz(1, 0.0)

c2.y2m(1)
c2.cz(0, 1)
c2.y2p(1)
c2.rz(1, 0.0)
c2.x2p(1)
c2.rz(1, -0.9272952180016122)
c2.x2m(1)

c2.rz(1, 0.0)
c2.y2m(1)
c2.cz(0, 1)
c2.y2p(1)
c2.y2m(0)
c2.rz(1, 0.0)
c2.rz(0, -3.1415910000000005)
c2.x2p(1)

c2.rz(1, 0.9272952180016122)
c2.x2m(1)
c2.rz(1, 0.0)
c2.measure(0)
c2.measure(1)

qcis_virtual_circuit = c2.qcis

# 检查 qcis电路映射后是否有效
before_mapping_check_res = platform.qcis_check_regular(qcis_virtual_circuit)
print(f'映射前,有效检查的结果: {before_mapping_check_res}')
# 建立虚拟电路与真实电路的映射
circuit, initial_layout, swap_mapping, mapping_virtual_to_final = transpile_qcis(qcis_virtual_circuit, platform)
qcis_after_mapping = circuit.qcis.upper()
print(f'qcis 映射后的结果:{qcis_after_mapping}')
# 检查 qcis电路映射后是否有效
after_mapping_check_res = platform.qcis_check_regular(qcis_after_mapping)
print(f'映射后,有效检查的结果: {after_mapping_check_res}')
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
映射前,有效检查的结果: False
qcis 映射后的结果:X2P Q6
RZ Q0 0.0
RZ Q6 0.9272952180016122
Y2P Q0
X2M Q6
RZ Q0 3.1415910000000005
RZ Q6 0.0
Y2M Q6
CZ Q0 Q6
Y2P Q6
RZ Q6 0.0
X2P Q6
RZ Q6 -0.9272952180016122
X2M Q6
RZ Q6 0.0
Y2M Q6
CZ Q0 Q6
Y2P Q6
Y2M Q0
RZ Q6 0.0
RZ Q0 -3.1415910000000005
X2P Q6
RZ Q6 0.9272952180016122
X2M Q6
RZ Q6 0.0
M Q0
M Q6
映射后,有效检查的结果: True