Cqlib 入门教程
1. 量子计算机操作基础
在使用“天衍”量子计算云平台进行量子计算操作之前,用户需要注册账号并获取相应的密钥。

为了与量子计算机交互,请确保已经成功安装 cqlib
package 来与 TianYanPlatform
进行交互。安装命令如下:
!pip install cqlib -i https://pypi.tuna.tsinghua.edu.cn/simple
设置登录信息,选择量子计算机或仿真器。
量子计算机包括已经上线的天衍-176和即将上线的天衍-504。天衍-176性能卓越,具有66个量子比特,110个纠缠比特,平均相干时间T1为34.2微秒,T2为3.09微秒。其读出错误率为5.98%,单比特门错误率为0.18%,双比特门错误率为1.92%。
在量子电路模拟中,选择合适的模拟后端至关重要。不同量子电路模拟器适用于以下场景:
全振幅量子仿真机:能够同时模拟并存储量子态的所有振幅,适合精确模拟小规模量子系统。
单振幅量子仿真机:能高效模拟大规模量子比特电路,计算性能不随比特数增加呈指数增长,但随电路深度增加性能急剧下降,且难以处理多控制门。适用于高比特、低深度电路的快速仿真,常用于获取单个量子态的振幅。
张量网络量子仿真机:与单振幅类似,能够高效处理多控制门,且在深度较高的电路模拟中性能更优,适合模拟复杂电路。
稳定子仿真机:利用稳定子方法高效模拟量子纠错和少量纠缠的系统,适合大规模稳定子态的仿真。
带噪声量子仿真机:模拟真实量子计算机中因物理特性导致的计算误差,适用于研究量子噪声环境下的量子计算行为。
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("tianyan176")
['3', 'free', 'running', 'tianyan_sw']
['4', 'free', 'running', 'tianyan_s']
['7', 'free', 'running', 'tianyan_tn']
['8', 'free', 'running', 'tianyan_tnn']
['9', 'free', 'running', 'tianyan_sa']
['1764555284795101186', 'free', 'running', 'tianyan176']
其中 tianyan_sw 为 全振幅量子仿真机,tianyan_sa 为单振幅量子仿真机,tianyan_s 为稳定子仿真机,tianyan_tn 为张量网络量子仿真机,tianyan_tnn 为带噪声量子仿真机。
也可以在创建实例时直接指定量子计算机,下面的指令与上述等价
platform = TianYanPlatform(login_key=login_key, machine_name="tianyan176")
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)
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}")
带参数的线路: 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}")
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)
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)
1845757508127354882
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}')
query_id: 1845757520961925122
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}')
query_id: ['1845757527127552001']
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}')
提交多个电路query_id: ['1845757536740896770', '1845757537034498049',
'1845757537311322113', '1845757537613312001', '1845757537948856321',
'1845757538527670273', '1845757538817077250', '1845757539114872833',
'1845757539387502593', '1845757539739824130']
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}")
resultStatus : [[0, 6], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 0], [0, 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], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [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, 0], [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, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 1], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [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], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 1], [1, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 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], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 1], [0, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 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], [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, 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], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [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], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [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, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [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], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [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, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [0, 0], [1, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 1], [0, 0], [0, 1], [0, 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], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 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], [0, 1], [0, 1], [0, 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], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 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], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [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], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [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, 1], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 1], [0, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [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, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 0], [1, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 0], [0, 1], [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, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 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], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [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, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 0], [0, 0], [1, 1], [1, 0], [0, 1], [0, 0], [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, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 1], [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], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 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, 1], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [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], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [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], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [1, 1], [1, 1], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [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, 0], [0, 1], [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], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [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, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 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], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 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], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [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], [1, 1], [1, 1], [1, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 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, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [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], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 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], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 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], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 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], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [1, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [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, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 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, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [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], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 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], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 1], [0, 1], [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], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [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, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [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], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 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], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 1], [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], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 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], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [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, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [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, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [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], [0, 1], [1, 0], [0, 1], [1, 0], [0, 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], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 1], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [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], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [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], [1, 0], [0, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [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], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [1, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [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], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [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], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [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, 0], [0, 1], [0, 0], [1, 0], [1, 1], [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, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [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, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [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, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [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], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 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], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 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], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [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, 0], [1, 0], [0, 1], [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, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 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, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [1, 0], [1, 1], [1, 1], [0, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 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], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 0], [1, 0], [0, 0], [1, 1], [1, 1], [1, 1], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 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], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 1], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [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], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 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], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [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, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [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, 0], [1, 0], [0, 1], [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], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 1], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 1], [1, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [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, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [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], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [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], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [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, 0], [0, 1], [0, 0], [0, 1], [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], [1, 0], [0, 1], [1, 0], [1, 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], [1, 0], [1, 0], [0, 1], [0, 0], [0, 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], [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], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [1, 1], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [1, 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, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [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], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 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, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [0, 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], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [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, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [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], [1, 0], [1, 0], [1, 0], [0, 0], [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], [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], [0, 1], [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], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 0]]
probability : {"00":0.03021520918834522,"01":0.44360370944234684,"10":0.48396961974140024,"11":0.04221146162790759}
experimentTaskId : 1845757527127552001
对于多个提交的量子电路,或者单个量子电路测量比特大于等于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}")
输入的查询Id个数为: 10,查询到的实验结果个数为: 10
第一个量子电路实验结果为:
resultStatus : [[0, 6], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [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, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 1], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 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], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [1, 1], [0, 0], [0, 0], [1, 1], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 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], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 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], [0, 1], [1, 0], [1, 0], [0, 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, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [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], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [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, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [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], [0, 1], [0, 1], [0, 1], [0, 1], [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, 0], [1, 0], [0, 1], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 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, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [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], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 1], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 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, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 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, 0], [1, 1], [1, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [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], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [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, 0], [0, 1], [1, 1], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 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], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 1], [1, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [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], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [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], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 1], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [1, 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], [0, 1], [0, 0], [1, 0], [1, 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], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [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, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 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], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 1], [1, 0], [0, 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], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [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], [0, 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], [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], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 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, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 1], [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], [0, 1], [1, 0], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [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, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [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], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [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, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [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], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [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], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 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, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [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], [0, 0], [1, 0], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 1], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 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], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 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], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 1], [0, 0], [1, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 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], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 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], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 1], [1, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 0], [1, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [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], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 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], [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, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [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, 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, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 1], [1, 1], [0, 0], [0, 0], [1, 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], [0, 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], [0, 1], [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, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [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], [1, 0], [0, 1], [0, 1], [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, 1], [0, 1], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [0, 0], [0, 0], [1, 1], [0, 1], [0, 1], [0, 0], [1, 0], [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], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 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], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [1, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [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, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [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], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [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, 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], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [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], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [1, 1], [0, 0], [0, 1], [1, 1], [1, 1], [0, 1], [1, 1], [0, 0], [1, 0], [1, 0], [0, 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], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 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], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [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], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 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, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 1], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 0], [1, 1], [0, 1], [0, 0], [0, 0], [0, 0], [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], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [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], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [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, 0], [1, 0], [0, 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], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [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], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [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, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [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], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [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, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [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], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [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, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [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, 1], [1, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [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], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [0, 1], [1, 1], [0, 0], [0, 0], [0, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [1, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [1, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 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], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 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], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [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], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 0], [1, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [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, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [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], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [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], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 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], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 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, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [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], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 0], [0, 0], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [0, 0], [1, 1], [0, 1], [1, 0], [1, 0], [0, 1], [0, 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], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 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], [1, 0], [1, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 0], [1, 0], [1, 0], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 0], [0, 0], [1, 1], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 0], [1, 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], [0, 1], [1, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 1], [1, 0], [1, 1], [0, 1], [0, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [1, 1], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [1, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 1], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 1], [1, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [1, 1], [0, 1], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [0, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0], [0, 1], [0, 0], [0, 1], [0, 1], [0, 1], [0, 0], [1, 0], [0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [0, 0], [1, 0], [1, 0], [0, 1], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 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, 0], [0, 0], [0, 1], [0, 1], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [1, 0], [0, 0], [1, 0], [0, 1], [0, 0], [0, 1], [1, 1], [0, 1], [1, 0], [0, 1], [1, 0], [1, 0], [0, 1], [0, 1], [1, 0], [0, 1], [1, 0], [0, 1], [0, 1], [1, 0], [1, 0], [1, 0], [1, 0]]
probability : {"00":0.1478,"11":0.0304,"01":0.4646,"10":0.3572}
experimentTaskId : 1845757536740896770
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}')
结果的全部空间统计: {'00': 0.1478, '01': 0.3572, '10': 0.4646, '11': 0.0304}
结果的部分空间统计: {'01': 0.3572, '10': 0.4646, '11': 0.0304, '00': 0.1478}
4.3 读取修正和归一化处理(仿真器不需要)
可以根据读取到的实验结果进行概率校准和概率修正。
single_circuit_result = exp_result[0]
calibration_result = lu.probability_calibration(result=exp_result[0], laboratory=platform)
corrected_result = lu.probability_correction(probabilities=calibration_result)
print(f'修正后的概率结果为: {corrected_result}')
修正后的概率结果为: {'00': 0.04689352297728411, '01': 0.429271561804629,
'10': 0.4918864599765695, '11': 0.03194845524151728}
4.4 量子计算机信息保存(仿真器不需要)
如果需要保存此时量子计算的参数作为后期参考,可以运行以下指令:
config_save = platform.download_config()
for key, value in config_save.items():
print(key, value)
calibrationTime 2024-10-14 17:00:53
computerId QubitPrime
disabledCouplers G41,G10,G64,G30,G20,G54,G81,G86,G75,G42,G32,G76,G21,G29,G25,G19,G5,G65,G31,G87,G40,G28,G53
disabledQubits Q47,Q22,Q35,Q5,Q17
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': 34.78, 'T2': 3.05, 'cz_error': 1.96, '1q_gate_error': 0.18, 'readout_error': 5.5}
qubit {'frequency': {'f01': {'param_list': [4.8317, 4.9039, 4.8018, 4.5564, 4.8389, 4.9179, 4.7474, 4.5959, 4.9007, 4.6362, 4.5771, 5.0139, 4.7692, 4.7416, 4.8168, 4.7621, 4.7186, 4.8244, 4.8516, 4.9295, 4.5558, 4.8853, 4.719, 4.5479, 4.8411, 4.6835, 4.6496, 4.7263, 4.5617, 4.6013, 4.6411, 4.7491, 4.8943, 4.9094, 4.7663, 4.6829, 4.5535, 4.6729, 4.7315, 4.7541, 4.6891, 4.9483, 4.6247, 4.6891, 4.8586, 4.7832, 4.7811, 4.7619, 4.8364, 4.6531, 4.8024, 4.6381, 4.8567, 4.5807, 4.7071, 4.6914, 4.6951, 4.6598, 4.6609, 4.5684, 4.7361], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q18', 'Q19', 'Q20', 'Q21', '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-10-14 02:03:07'}}, 'relatime': {'T1': {'param_list': [20.3033, 21.3871, 34.1035, 44.8856, 34.0997, 39.7599, 32.1656, 33.6312, 41.5111, 26.2386, 13.0488, 14.7597, 21.918, 14.1455, 9.4322, 23.4989, 46.9189, 38.46, 36.9787, 28.3188, 39.6914, 31.4596, 32.7441, 59.5121, 47.8344, 45.7506, 50.0249, 41.1937, 43.1097, 46.0143, 48.8078, 23.6261, 28.5971, 30.692, 42.2805, 47.0956, 36.8813, 46.1439, 8.8733, 19.8822, 38.6667, 17.0, 40.8307, 33.5798, 28.6667, 24.2687, 45.6186, 50.8761, 41.5577, 35.7095, 17.822, 45.1173, 27.4332, 27.9838, 40.2451, 41.9225, 39.1922, 36.7925, 38.0572, 53.647, 50.9573], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q18', 'Q19', 'Q20', 'Q21', '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-09-24 17:51:58'}, 'T2': {'param_list': [3.6578, 2.938, 2.8117, 1.4838, 2.0786, 2.1473, 3.0447, 2.2026, 3.7167, 3.8184, 3.3165, 3.4039, 2.7414, 1.798, 4.5546, 1.6095, 2.5025, 3.1005, 4.4932, 0.7601, 1.9632, 3.0883, 2.6976, 1.7179, 2.8475, 4.0273, 3.6013, 3.1302, 2.8147, 3.1931, 2.7129, 3.4209, 2.6208, 3.0928, 1.8101, 3.0717, 2.9331, 5.4444, 2.6398, 4.6038, 2.2866, 3.9617, 3.7336, 2.0524, 4.4269, 2.5647, 4.2153, 2.7754, 2.8756, 2.8058, 2.5724, 4.1106, 2.7971, 2.7524, 4.7365, 3.4337, 3.8202, 2.314, 2.9783, 2.2193, 5.0761], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q18', 'Q19', 'Q20', 'Q21', '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-09-23 10:19:25'}}, 'singleQubit': {'gate error': {'param_list': [0.27, 0.17, 0.12, 0.16, 0.16, 0.18, 0.14, 0.13, 0.11, 0.1, 0.15, 0.25, 0.14, 0.22, 0.23, 0.16, 0.27, 0.29, 0.17, 0.27, 0.14, 0.4, 0.11, 0.24, 0.15, 0.61, 0.13, 0.12, 0.09, 0.18, 0.13, 0.12, 0.43, 0.43, 0.12, 0.14, 0.11, 0.12, 0.22, 0.13, 0.13, 0.18, 0.08, 0.12, 0.15, 0.14, 0.1, 0.13, 0.08, 0.25, 0.17, 0.24, 0.13, 0.15, 0.11, 0.32, 0.2, 0.13, 0.11, 0.12, 0.17], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q18', 'Q19', 'Q20', 'Q21', '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-10-14 02:15:22'}, 'X/2 amplitude': {'param_list': [0.2711, 0.2272, 0.114, 0.3502, 0.1858, 0.3105, 0.2908, 0.3106, 0.1237, 0.2719, 0.1636, 0.2314, 0.4155, 0.2572, 0.2616, 0.1686, 0.3014, 0.2038, 0.3204, 0.2429, 0.2487, 0.2323, 0.2736, 0.3223, 0.249, 0.3571, 0.2033, 0.2845, 0.486, 0.2062, 0.237, 0.2273, 0.3133, 0.2105, 0.2021, 0.1641, 0.3458, 0.1931, 0.3031, 0.1384, 0.3087, 0.2066, 0.2474, 0.3162, 0.2536, 0.1951, 0.2917, 0.243, 0.1572, 0.302, 0.1961, 0.1344, 0.113, 0.2443, 0.2263, 0.1141, 0.2458, 0.2424, 0.2451, 0.18, 0.213], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q18', 'Q19', 'Q20', 'Q21', '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-10-14 02:06:33'}, 'X/2 length': {'param_list': [30, 20, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 20, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 20, 30, 30, 30, 30, 30, 25, 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', 'Q18', 'Q19', 'Q20', 'Q21', '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-09-23 10:19:22'}}}
readout {'readoutArray': {'Readout Error': {'param_list': [8.94, 3.71, 7.15, 9.02, 5.18, 3.12, 4.13, 7.85, 3.94, 8.78, 10.72, 7.44, 7.48, 5.58, 5.36, 4.74, 4.28, 8.09, 7.34, 3.55, 8.86, 6.92, 5.72, 7.11, 4.24, 3.89, 6.38, 3.93, 3.56, 5.63, 5.72, 9.25, 3.2, 4.26, 3.83, 6.05, 5.62, 3.48, 2.86, 4.84, 4.98, 1.55, 6.36, 10.75, 4.5, 4.62, 2.67, 2.87, 3.49, 3.77, 3.42, 4.3, 2.75, 12.18, 9.78, 6.0, 4.92, 3.53, 3.2, 6.35, 1.69], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q18', 'Q19', 'Q20', 'Q21', '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-10-14 16:59:14'}, '|0> readout fidelity': {'param_list': [0.9912, 0.9887, 0.9769, 0.9652, 0.9835, 0.9962, 0.9925, 0.9515, 0.9847, 0.9429, 0.9484, 0.974, 0.9802, 0.9868, 0.9926, 0.9851, 0.9979, 0.9883, 0.9886, 0.9929, 0.9713, 0.9837, 0.9841, 0.9821, 0.992, 0.9905, 0.9908, 0.9923, 0.9887, 0.9781, 0.9658, 0.9582, 0.9945, 0.9922, 0.9795, 0.9735, 0.9755, 0.9902, 0.9949, 0.9802, 0.9747, 0.9961, 0.9664, 0.9198, 0.9815, 0.9918, 0.9921, 0.9857, 0.9872, 0.9839, 0.988, 0.96, 0.9902, 0.905, 0.9419, 0.9694, 0.9843, 0.9834, 0.9811, 0.9595, 0.9933], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q18', 'Q19', 'Q20', 'Q21', '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-10-14 16:59:14'}, '|1> readout fidelity': {'param_list': [0.8301, 0.9371, 0.8801, 0.8544, 0.9128, 0.9415, 0.9248, 0.8915, 0.9365, 0.8814, 0.8372, 0.8772, 0.8702, 0.9015, 0.9002, 0.9201, 0.9165, 0.8499, 0.8647, 0.936, 0.8514, 0.8779, 0.9016, 0.8757, 0.9232, 0.9318, 0.8816, 0.9292, 0.9401, 0.9094, 0.9199, 0.8567, 0.9415, 0.9226, 0.9438, 0.9054, 0.9121, 0.9403, 0.9479, 0.9229, 0.9257, 0.9728, 0.9064, 0.8652, 0.9286, 0.9158, 0.9545, 0.957, 0.943, 0.9407, 0.9436, 0.954, 0.9547, 0.8515, 0.8625, 0.9106, 0.9173, 0.9459, 0.9549, 0.9135, 0.973], 'qubit_used': ['Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q18', 'Q19', 'Q20', 'Q21', '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-10-14 16:59:14'}}}
status 0
twoQubitGate {'czGate': {'gate error': {'param_list': [1.63, 1.09, 2.06, 1.09, 1.39, 1.33, 1.78, 1.41, 1.37, 2.28, 1.27, 1.41, 1.24, 1.18, 1.45, 2.74, 4.49, 1.18, 1.08, 4.12, 3.24, 1.76, 1.39, 1.39, 6.35, 3.97, 1.5, 2.66, 2.55, 3.13, 1.47, 1.06, 1.13, 0.85, 0.99, 1.22, 1.63, 1.9, 3.67, 2.22, 0.96, 0.74, 0.92, 1.4, 1.91, 1.84, 2.09, 2.41, 2.63, 2.67, 2.45, 0.89, 4.74, 1.28, 3.31, 0.74, 3.4, 1.51, 1.91, 2.06, 1.27, 2.78, 1.47, 2.32, 1.11, 2.41, 0.37, 6.2, 1.07, 1.62, 1.32, 3.36, 1.22, 1.53, 1.67, 3.37, 0.97, 1.56, 0.8, 1.82, 1.26, 2.99, 1.3, 2.27, 2.84, 1.09, 1.22], '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', 'G38', 'G39', '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', 'G82', 'G83', 'G84', 'G85', 'G88', 'G89', 'G90', 'G91', 'G92', 'G93', 'G94', 'G95', 'G96', 'G97', 'G98', 'G99', 'G100', 'G101', 'G102', 'G103', 'G104', 'G105', 'G106', 'G107', 'G108', 'G109'], 'unit': '%', 'update_time': '2024-10-14 10:54:09'}, 'coupling strength': {'param_list': [[-15013793103.4, 4103448275.9], [-17379310344.8, 4296551724.1], [-17862068965.5, 4344827586.2], [-15979310344.8, 4055172413.8], [-24765517241.4, 4827586206.9], [-19068965517.2, 4827586206.9], [-13131034482.8, 3910344827.6], [-14241379310.3, 4200000000.0], [-14724137931.0, 4200000000.0], [-14675862069.0, 3958620689.7], [-20227586206.9, 4537931034.5], [-11296551724.1, 4779310344.8], [-25151724137.9, 4682758620.7], [-20131034482.8, 4103448275.9], [-27324137931.0, 4779310344.8], [-15158620689.7, 4972413793.1], [-20951724137.9, 4972413793.1], [-25006896551.7, 4924137931.0], [-17862068965.5, 4441379310.3], [-17331034482.8, 4200000000.0], [-18441379310.3, 4248275862.1], [-10041379310.3, 3186206896.6], [-18296551724.1, 4489655172.4], [-15206896551.7, 3862068965.5], [-18924137931.0, 4200000000.0], [-15834482758.6, 3862068965.5], [-18489655172.4, 5889655172.4], [-22593103448.3, 7772413793.1], [-15496551724.1, 5165517241.4], [-22786206896.6, 5358620689.7], [-20082758620.7, 4248275862.1], [-28241379310.3, 5213793103.4], [-27903448275.9, 4682758620.7], [-19406896551.7, 4055172413.8], [-23413793103.4, 4586206896.6], [-24862068965.5, 4537931034.5], [-12213793103.4, 3910344827.6], [-11731034482.8, 3572413793.1], [-13034482758.6, 3717241379.3], [-14965517241.4, 3765517241.4], [-25634482758.6, 4875862069.0], [-18875862069.0, 5889655172.4], [-26020689655.2, 5020689655.2], [-16993103448.3, 4055172413.8], [-27758620689.7, 4827586206.9], [-20372413793.1, 5551724137.9], [-21724137931.0, 4779310344.8], [-21289655172.4, 5503448275.9], [-16606896551.7, 3910344827.6], [-15979310344.8, 4103448275.9], [-22255172413.8, 4296551724.1], [-22786206896.6, 4779310344.8], [-19889655172.4, 4344827586.2], [-17186206896.6, 4151724137.9], [-11972413793.1, 3862068965.5], [-15013793103.4, 3910344827.6], [-12937931034.5, 3765517241.4], [-11972413793.1, 4731034482.8], [-16172413793.1, 3765517241.4], [-14386206896.6, 5165517241.4], [-19551724137.9, 4489655172.4], [-27903448275.9, 4634482758.6], [-19165517241.4, 5551724137.9], [-27613793103.4, 4972413793.1], [-24282758620.7, 5889655172.4], [-20468965517.2, 4344827586.2], [-22351724137.9, 4441379310.3], [-18682758620.7, 4344827586.2], [-25296551724.1, 4779310344.8], [-21048275862.1, 4586206896.6], [-15062068965.5, 3958620689.7], [-10765517241.4, 3524137931.0], [-14048275862.1, 4006896551.7], [-13613793103.4, 3862068965.5], [-9944827586.2, 3379310344.8], [-11393103448.3, 3717241379.3], [-10186206896.6, 4634482758.6], [-20324137931.0, 4634482758.6], [-14096551724.1, 4006896551.7], [-16510344827.6, 4006896551.7], [-11779310344.8, 4875862069.0], [-27468965517.2, 4779310344.8], [-16268965517.2, 5117241379.3], [-15544827586.2, 5262068965.5], [-12889655172.4, 5503448275.9], [-27227586206.9, 4586206896.6], [-18875862069.0, 5165517241.4]], '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', 'G38', 'G39', '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', 'G82', 'G83', 'G84', 'G85', 'G88', 'G89', 'G90', 'G91', 'G92', 'G93', 'G94', 'G95', 'G96', 'G97', 'G98', 'G99', 'G100', 'G101', 'G102', 'G103', 'G104', 'G105', 'G106', 'G107', 'G108', 'G109'], 'unit': 'Hz', 'update_time': '2024-09-23 10:19:22'}}}
5. 其他功能
5.1 QCIS和QASM指令相互转换
下面介绍关于cqlib.util
模块中关于指令集相互转换的功能。
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}')
转换后的QASM指令为: OPENQASM 2.0;
include "qelib1.inc";
qreg q[7];
creg c[7];
sx q[6];
rz(0.0) q[0];
rz(0.9272952180016122) q[6];
ry(1.5707963267948966) q[0];
sxdg q[6];
rz(3.1415910000000005) q[0];
rz(0.0) q[6];
ry(-1.5707963267948966) q[6];
cz q[0],q[6];
ry(1.5707963267948966) q[6];
rz(0.0) q[6];
sx q[6];
rz(-0.9272952180016122) q[6];
sxdg q[6];
rz(0.0) q[6];
ry(-1.5707963267948966) q[6];
cz q[0],q[6];
ry(1.5707963267948966) q[6];
ry(-1.5707963267948966) q[0];
rz(0.0) q[6];
rz(-3.1415910000000005) q[0];
sx q[6];
rz(0.9272952180016122) q[6];
sxdg q[6];
rz(0.0) q[6];
measure q[0] -> c[0];
measure q[6] -> c[1];
转换后的QCIS指令为: X2P Q6
RZ Q0 0.0
RZ Q6 0.9272952180016122
X2P Q0
RZ Q0 1.5707963267948966
X2M Q0
X2M Q6
RZ Q0 3.1415910000000005
RZ Q6 0.0
X2P Q6
RZ Q6 -1.5707963267948966
X2M Q6
CZ Q0 Q6
X2P Q6
RZ Q6 1.5707963267948966
X2M Q6
RZ Q6 0.0
X2P Q6
RZ Q6 -0.9272952180016122
X2M Q6
RZ Q6 0.0
X2P Q6
RZ Q6 -1.5707963267948966
X2M Q6
CZ Q0 Q6
X2P Q6
RZ Q6 1.5707963267948966
X2M Q6
X2P Q0
RZ Q0 -1.5707963267948966
X2M 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
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}")
化简前电路行数为: 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}')
映射前,有效检查的结果: 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