Note
Gaussian Boson Sampling¶
The term Gaussian Boson Sampling (GBS) essentially refers to photon number detection in Gaussian states. The most prominent case is the particle-resolved GBS, where the concrete particle numbers are observed during the measurement via a particle number-resolving photon detector. There is theoretical evidence that it is intractable to simulate this sampling problem on a classical computer, making it a promising quantum advantage scheme with several experimental demonstrations in recent years. Through the hafnian, GBS is connected to certain graph-theoretical problems.
For a Gaussian input state \(\rho\) without displacement (i.e., \(\mu \equiv 0\)), the probability of an detecting a sample \(T = (T_1, \dots, T_d)\) during particle number resolved photon detection is given by [1]
In this formula, \(\operatorname{br}_{T}\) is the block reduction according to Definition~:nbsphinx-math:ref{def:block_reduction} from Appendix~:nbsphinx-math:ref{app:red} and
where \(W\) is the coordinate transformation from between the ladder and quadrature operators:
where the operators are collected in a vector as
Furthermore, the hafnian of a matrix is defined by
where \(\operatorname{PMP}(n)\) is the set of perfect matching permutations of \(n\) even elements, such that \(\sigma(2i-1)<\sigma(2i)\) and \(\sigma(2i-1)<\sigma(2i+1)\), where \(\sigma\) is a permutation.
For displaced Gaussian states, one needs to use a different formula accounting for the non-zero displacement vector:
where \(\operatorname{vid}\) (vector in diagonal) denotes putting the second (vector) argument in the diagonal of the first (matrix) argument, \(\mathbf{\alpha} = W \mu\) and \(\mathbf{\gamma}^T = \mathbf{\alpha}^\dagger \Sigma^{-1}\). The loop hafnian \(\operatorname{lhaf}\) is defined similarly as the hafnian, but the concept of single pair matchings (SPM) is used instead of perfect matching permutations:
Here, the definition of single-pair matchings is almost the same as the definition of perfect matching permutations, the difference is that when enumerating single-pair matchings, single vertices are also allowed to be paired up with themselves.
Although particle-resolved GBS is the most typical variant, it is often difficult to realize experimentally due to detector inefficiencies [2]. One can easily specialize towards a coarser detection scheme by using threshold detectors instead, which do not resolve exactly how many particles are detected, and only signals detection or no detection. In particular, this variant of GBS, called threshold GBS, was used in several quantum advantage experiments in recent years [3] [4].
More specifically, let output \(1\) correspond to “click”, and \(0\) correspond to “no click”. In the case of threshold measurement of a non-displaced (\(\mu \equiv 0\)) Gaussian state, the probability of an output \(T = (T_1, \dots, T_d) \in {\{0, 1 \}}^d\) during detection is given by [5]
where \(A\) is defined as
and the torontonian \(\operatorname{tor}\) of a matrix \(M \in \mathbb{C}^{2n \times 2n}\) is
When the Gaussian state is displaced with complex displacement vector \(\mathbf{\alpha}\), the probability distribution is modified as [6]
where $:nbsphinx-math:mathbf{gamma} = \overline{(\Sigma^{-1} \mathbf{\alpha})} $ and \(\operatorname{ltor}\) is the loop torontonian defined by
Particle-resolved Gaussian Boson Sampling can be performed using Piquasso as shown by the following example:
[17]:
import piquasso as pq
import numpy as np
from scipy.stats import unitary_group
shots = 1000
squeezings = np.concatenate([0.25 * np.ones(5), np.zeros(5)])
d = len(squeezings)
unitary = unitary_group.rvs(d)
with pq.Program() as program:
for i in range(d):
pq.Q(i) | pq.Squeezing(squeezings[i])
pq.Q() | pq.Interferometer(unitary)
pq.Q() | pq.ParticleNumberMeasurement()
simulator = pq.GaussianSimulator(d=d)
result = simulator.execute(program, shots=shots)
print(result.samples)
[[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
...
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]]
Graph adjacency matrices can also be embedded:
[ ]:
A = np.array(
[
[0, 1, 0, 1, 1],
[1, 0, 0, 0, 1],
[0, 0, 0, 1, 0],
[1, 0, 1, 0, 1],
[1, 1, 0, 1, 0],
]
)
with pq.Program() as program:
pq.Q(all) | pq.Graph(A, mean_photon_number=1.0)
pq.Q(all) | pq.ParticleNumberMeasurement()
simulator = pq.GaussianSimulator(d=len(A))
result = simulator.execute(program, shots=shots)
print("Samples:", result.samples)
Samples: [[1 0 0 2 3]
[1 1 0 1 1]
[2 0 0 2 2]
...
[0 0 0 0 0]
[3 1 0 1 1]
[0 0 0 0 0]]
The generated samples could be used to acquire some denser subgraphs of the generated graph with
[20]:
print("Subgraphs:", result.to_subgraph_nodes())
Subgraphs: [[0, 3, 3, 4, 4, 4], [0, 1, 3, 4], [0, 0, 3, 3, 4, 4], [0, 0, 0, 1, 3, 4, 4, 4], [], [0, 2, 2, 3, 3, 3], [0, 0, 0, 3, 4, 4], [0, 4], [3, 4], [0, 3, 3, 4], [0, 3, 4, 4], [0, 1, 3, 3, 4, 4], [], [2, 3], [], [0, 0, 1, 4, 4, 4], [], [0, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4], [0, 4], [], [0, 0, 0, 1, 1, 1, 3, 4], [0, 0, 0, 3, 3, 4], [0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4], [2, 3], [0, 0, 0, 0, 1, 1, 3, 4, 4, 4], [], [], [3, 4], [0, 0, 0, 0, 1, 2, 3, 3, 3, 4], [0, 0, 1, 1, 1, 1, 4, 4, 4, 4], [0, 0, 0, 2, 3, 3, 3, 4], [], [], [], [0, 3, 4, 4], [0, 3, 3, 4, 4, 4], [0, 1], [0, 0, 0, 1, 1, 1, 1, 3, 3, 4, 4, 4], [0, 0, 0, 1, 2, 3, 3, 3, 3, 4], [], [2, 3], [], [0, 0, 0, 1, 1, 2, 3, 3, 3, 3, 4, 4, 4, 4], [0, 4], [], [], [0, 1], [], [], [0, 2, 3, 3, 3, 4], [0, 0, 0, 0, 1, 1, 1, 3, 4, 4, 4, 4], [1, 4], [], [2, 3], [0, 2, 3, 4], [], [0, 0, 0, 1, 3, 4], [0, 0, 0, 3, 3, 4, 4, 4], [0, 0, 0, 0, 1, 1, 1, 1, 3, 4], [], [0, 0, 0, 3, 4, 4], [0, 0, 0, 0, 1, 3, 3, 3, 3, 4, 4, 4], [3, 4], [0, 1, 3, 4], [3, 4], [0, 3], [0, 0, 0, 0, 1, 3, 3, 4, 4, 4], [0, 3], [0, 3], [0, 0, 0, 1, 1, 3, 4, 4, 4, 4], [0, 1, 3, 4], [0, 0, 0, 0, 1, 1, 2, 3, 3, 3, 3, 4], [], [0, 0, 0, 1, 1, 4], [], [1, 1, 2, 3, 3, 4, 4, 4], [0, 2, 3, 3], [], [0, 0, 0, 1, 1, 2, 3, 3, 3, 3, 4, 4], [0, 0, 0, 1, 1, 1, 3, 4, 4, 4], [0, 0, 0, 0, 1, 1, 1, 2, 3, 4], [0, 0, 0, 3, 3, 4], [0, 0, 0, 1, 1, 2, 3, 3, 3, 3, 4, 4, 4, 4], [], [0, 0, 0, 2, 2, 3, 3, 3, 3, 4, 4, 4], [0, 0, 3, 4], [0, 0, 1, 3, 3, 4, 4, 4], [0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4], [], [], [0, 0, 0, 3, 3, 4, 4, 4], [], [], [0, 1], [0, 0, 0, 1, 1, 3, 3, 4, 4, 4], [0, 0, 0, 2, 3, 3, 4, 4, 4, 4], [], [0, 4], [0, 0, 0, 0, 1, 1, 1, 3, 3, 3, 4, 4, 4, 4], [0, 1, 3, 4], [0, 3, 4, 4], [0, 0, 0, 1, 1, 1, 1, 3, 4, 4, 4, 4], [], [0, 0, 3, 4, 4, 4], [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3], [], [0, 3, 3, 4, 4, 4], [], [], [], [0, 1, 1, 3, 4, 4], [0, 0, 1, 2, 3, 3, 4, 4], [], [0, 1, 3, 4], [0, 0, 1, 3, 3, 4, 4, 4], [], [1, 4], [], [], [3, 3, 4, 4], [0, 0, 0, 1, 3, 3, 4, 4], [0, 0, 0, 1, 1, 1], [], [3, 4], [0, 1], [], [0, 0, 0, 1, 3, 3, 3, 4], [2, 3], [1, 3, 4, 4], [2, 3], [0, 0, 0, 1, 1, 3, 4, 4], [], [2, 3], [0, 0, 1, 3, 4, 4], [], [], [], [], [0, 0, 2, 2, 2, 3, 3, 3, 3, 4], [1, 2, 3, 4], [0, 1], [1, 1, 4, 4], [3, 4], [0, 0, 1, 4], [], [2, 3], [0, 2, 2, 3, 3, 3], [0, 0, 2, 3, 3, 3], [0, 0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4], [0, 0, 1, 3], [], [0, 0, 0, 1, 2, 3, 3, 3, 3, 4], [0, 2, 2, 3, 3, 3, 3, 4], [2, 2, 3, 3, 3, 4], [0, 1, 3, 4], [], [], [0, 1, 3, 4, 4, 4], [0, 4], [], [0, 0, 0, 1, 3, 3, 4, 4], [0, 0, 1, 3, 3, 4], [0, 2, 3, 4], [0, 0, 1, 2, 3, 3, 4, 4, 4, 4], [1, 2, 3, 4], [], [0, 0, 1, 3, 3, 4], [0, 4], [2, 3], [], [0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4], [], [], [0, 1], [2, 3], [0, 0, 1, 1, 2, 3, 3, 4], [3, 4], [], [0, 0, 3, 4], [], [], [0, 0, 2, 3, 3, 3], [0, 3], [0, 3], [0, 2, 3, 3], [3, 4], [0, 4], [0, 0, 0, 2, 2, 3, 3, 3, 4, 4], [2, 3], [0, 3], [0, 1, 1, 3, 3, 4, 4, 4], [1, 4], [0, 4], [0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 4, 4], [0, 1, 2, 3], [0, 0, 0, 0, 1, 2, 3, 3, 3, 4, 4, 4], [0, 0, 0, 0, 1, 3, 3, 3, 4, 4, 4, 4], [0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4], [3, 3, 4, 4], [1, 2, 3, 3, 4, 4], [0, 0, 0, 3, 3, 4], [0, 0, 0, 0, 1, 1, 1, 3, 3, 3, 4, 4, 4, 4], [], [], [], [0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 4, 4], [0, 0, 0, 0, 1, 1, 3, 3, 3, 4, 4, 4], [], [0, 0, 0, 3, 3, 4, 4, 4], [0, 0, 3, 4], [0, 1], [], [0, 0, 1, 3, 3, 3, 3, 4, 4, 4], [0, 0, 0, 1, 1, 3, 4, 4], [], [], [], [3, 4], [0, 0, 1, 3], [0, 1, 1, 2, 3, 3, 3, 3, 4, 4, 4, 4], [0, 0, 1, 1, 3, 4], [], [1, 3, 4, 4], [0, 0, 0, 1, 2, 3, 3, 3, 4, 4], [0, 0, 1, 4, 4, 4], [0, 3, 3, 4], [0, 4], [], [0, 2, 3, 3, 4, 4], [0, 0, 1, 3], [0, 0, 0, 3, 3, 3, 4, 4], [0, 0, 1, 1, 4, 4], [0, 0, 1, 1, 1, 2, 3, 3, 3, 4, 4, 4], [1, 2, 3, 4], [0, 2, 3, 3], [], [], [0, 0, 0, 2, 2, 3, 3, 3, 3, 4, 4, 4], [0, 0, 1, 3], [0, 4], [0, 4], [0, 0, 4, 4], [0, 0, 0, 1, 1, 4, 4, 4], [0, 4], [0, 3, 3, 3, 4, 4], [0, 0, 0, 0, 1, 1, 2, 3, 3, 3, 4, 4], [0, 0, 3, 4], [0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, 4, 4, 4], [0, 0, 1, 1, 3, 3, 4, 4], [2, 3, 3, 4], [], [0, 0, 1, 2, 3, 4], [], [0, 0, 1, 3], [0, 0, 0, 0, 1, 3, 4, 4], [], [0, 0, 3, 4, 4, 4], [3, 3, 4, 4], [], [0, 2, 3, 3, 3, 4, 4, 4], [2, 3], [0, 0, 4, 4], [], [1, 4], [], [0, 1], [0, 0, 1, 1, 2, 3, 3, 3, 3, 4, 4, 4], [], [3, 4], [], [], [0, 0, 0, 1, 3, 3, 3, 4, 4, 4], [], [], [0, 0, 3, 4], [], [0, 0, 1, 3, 4, 4], [0, 0, 1, 4], [], [], [0, 0, 0, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4], [0, 0, 1, 2, 2, 3, 3, 3, 4, 4], [0, 1, 1, 3, 4, 4, 4, 4], [], [1, 4], [2, 2, 2, 3, 3, 3], [0, 1, 1, 4], [0, 1, 2, 3, 3, 3, 4, 4], [0, 3], [2, 3], [3, 4], [0, 0, 1, 1, 1, 4, 4, 4], [0, 1, 4, 4], [1, 3, 4, 4], [0, 0, 1, 1, 3, 4, 4, 4], [0, 0, 1, 1], [0, 2, 3, 3], [0, 1], [0, 2, 2, 2, 3, 3, 3, 3], [0, 0, 2, 3, 3, 3, 4, 4], [0, 3], [], [0, 3], [0, 1, 3, 4, 4, 4], [], [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4], [0, 0, 0, 1, 1, 1, 4, 4], [0, 0, 3, 3, 3, 4], [0, 0, 1, 4, 4, 4], [0, 0, 0, 0, 1, 1, 1, 3, 3, 3, 4, 4, 4, 4], [0, 3], [3, 4], [], [], [], [], [0, 1, 4, 4], [3, 4], [0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, 4, 4, 4], [0, 1, 2, 2, 3, 3, 3, 4], [], [], [], [0, 4], [0, 1], [], [], [3, 4], [0, 0, 0, 0, 1, 1, 3, 3, 4, 4], [], [0, 3], [0, 0, 0, 3, 4, 4], [], [0, 0, 1, 1, 2, 3, 3, 4], [2, 3, 3, 4], [0, 3], [0, 3], [0, 0, 0, 1, 1, 1, 4, 4], [], [0, 0, 0, 1, 1, 1, 2, 3, 3, 3, 4, 4, 4, 4], [], [0, 4], [0, 0, 0, 1, 3, 3, 3, 4, 4, 4], [2, 3, 3, 4], [0, 1], [0, 4], [1, 4], [], [0, 0, 0, 1, 2, 3, 3, 3, 4, 4], [], [], [0, 0, 1, 3, 3, 4, 4, 4], [3, 4], [], [0, 1, 2, 3, 3, 4], [2, 3], [], [], [1, 4], [0, 0, 1, 1], [], [], [0, 4], [3, 4], [0, 0, 1, 3], [0, 2, 3, 3, 4, 4], [0, 4], [0, 0, 0, 1, 1, 3, 4, 4], [], [0, 0, 0, 0, 1, 3, 3, 3, 4, 4, 4, 4], [], [3, 3, 4, 4], [], [0, 0, 1, 1, 3, 3, 3, 3, 4, 4, 4, 4], [0, 0, 2, 3, 4, 4], [], [0, 0, 0, 1, 3, 3], [0, 0, 0, 2, 3, 3, 3, 4, 4, 4], [], [], [0, 0, 0, 1, 3, 3, 3, 3, 4, 4], [1, 1, 4, 4], [], [], [0, 2, 2, 2, 3, 3, 3, 3], [0, 1, 1, 3, 4, 4], [0, 2, 3, 3], [0, 0, 3, 4], [0, 0, 1, 3, 3, 4], [0, 0, 0, 1, 1, 1, 3, 3, 4, 4, 4, 4], [], [0, 1, 3, 4], [0, 1, 3, 4], [], [], [3, 4], [], [1, 4], [2, 3, 3, 4], [0, 0, 1, 1, 2, 2, 3, 3, 3, 4], [0, 4], [], [0, 0, 1, 4], [0, 0, 0, 1, 4, 4], [], [0, 3], [0, 0, 0, 0, 1, 1, 1, 3], [], [2, 3], [0, 0, 1, 1, 3, 4], [0, 0, 1, 1, 3, 3, 4, 4], [0, 0, 1, 4], [], [0, 2, 3, 4], [0, 1, 3, 4], [0, 0, 2, 2, 2, 3, 3, 3, 3, 4], [], [], [], [2, 3], [3, 3, 4, 4], [0, 4], [2, 2, 3, 3], [0, 2, 3, 3], [3, 4], [0, 3], [1, 2, 2, 3, 3, 3, 3, 4, 4, 4], [], [0, 0, 1, 1, 3, 4], [0, 0, 3, 3, 4, 4], [], [0, 0, 1, 1, 1, 3, 3, 3, 4, 4, 4, 4], [], [], [0, 1, 1, 1, 1, 3, 4, 4, 4, 4], [0, 0, 0, 1, 3, 4], [0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 4, 4, 4, 4], [], [2, 3], [3, 4], [0, 0, 0, 0, 1, 1, 2, 3, 3, 3, 3, 4, 4, 4], [0, 0, 1, 3, 4, 4], [], [0, 0, 0, 1, 3, 4, 4, 4], [0, 1], [0, 0, 3, 3, 3, 4, 4, 4], [1, 1, 3, 3, 4, 4, 4, 4], [0, 4], [0, 1], [], [2, 3], [], [], [0, 3], [], [], [], [], [0, 0, 1, 2, 2, 3, 3, 3, 3, 4], [], [], [], [0, 0, 3, 4], [], [2, 3], [2, 3], [0, 1, 1, 3, 4, 4], [2, 3], [0, 4], [], [0, 1, 4, 4], [], [0, 0, 0, 0, 1, 1, 3, 3, 3, 4, 4, 4], [0, 0, 0, 0, 1, 3, 3, 3, 4, 4], [0, 4], [2, 2, 3, 3], [], [], [0, 0, 0, 1, 1, 3, 3, 3, 4, 4, 4, 4], [], [1, 1, 4, 4], [], [], [0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4], [0, 0, 1, 3, 3, 4, 4, 4], [2, 3, 3, 4], [0, 1, 3, 4], [0, 0, 0, 1, 3, 3, 4, 4], [], [0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4], [], [3, 4], [0, 0, 0, 1, 3, 3], [0, 1, 1, 4], [], [0, 1, 3, 3, 3, 4, 4, 4], [0, 0, 1, 1, 1, 2, 3, 3, 4, 4, 4, 4], [0, 0, 3, 4], [2, 3, 3, 4], [0, 0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4], [3, 3, 4, 4], [0, 0, 0, 1, 2, 3, 3, 3, 3, 4, 4, 4], [0, 0, 0, 1, 3, 3], [0, 0, 0, 0, 1, 1, 3, 3, 3, 3, 4, 4, 4, 4], [], [], [], [], [3, 3, 4, 4], [], [], [], [0, 4], [], [0, 0, 1, 1, 1, 3, 4, 4], [0, 0, 0, 0, 1, 1, 1, 1, 3, 4], [0, 0, 3, 3], [0, 0, 0, 0, 1, 1, 1, 3, 3, 4], [0, 0, 3, 4, 4, 4], [1, 4], [], [2, 3], [], [0, 0, 0, 1, 2, 3, 3, 3, 4, 4, 4, 4], [0, 1, 4, 4], [], [1, 3, 3, 4, 4, 4], [0, 1, 2, 2, 3, 3, 3, 4], [], [0, 0, 0, 1, 1, 3, 4, 4], [2, 3, 3, 3, 3, 4, 4, 4], [2, 3, 3, 4], [], [0, 3, 4, 4], [], [], [0, 0, 0, 0, 1, 1, 3, 3, 3, 4, 4, 4], [0, 0, 0, 3, 3, 4], [], [1, 4], [0, 4], [0, 0, 0, 1, 3, 3, 3, 4, 4, 4], [0, 0, 2, 3, 3, 4], [0, 0, 3, 3, 4, 4], [], [], [0, 0, 1, 1, 1, 1, 4, 4], [], [0, 0, 1, 2, 3, 3, 3, 3, 4, 4, 4, 4], [2, 3], [], [1, 4], [0, 3, 3, 4, 4, 4], [], [], [0, 0, 0, 0, 1, 1, 1, 1, 3, 4], [0, 3, 4, 4], [], [0, 1, 4, 4], [0, 1, 1, 4], [0, 0, 1, 1, 3, 3, 4, 4, 4, 4], [0, 3], [2, 2, 2, 3, 3, 3], [], [1, 1, 4, 4], [0, 3, 4, 4], [0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, 3, 4, 4, 4, 4], [0, 3, 4, 4], [], [], [], [], [0, 1], [0, 0, 0, 1, 2, 3, 3, 4, 4, 4], [2, 3], [], [0, 0, 0, 2, 3, 3, 4, 4], [], [], [0, 1, 3, 4], [0, 3], [1, 2, 3, 3, 4, 4], [], [0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 4, 4], [], [], [2, 3], [], [0, 4], [], [0, 0, 1, 3, 3, 4, 4, 4], [3, 4], [0, 0, 0, 1, 3, 3, 3, 3, 4, 4, 4, 4], [3, 4], [], [], [3, 4], [0, 0, 0, 0, 1, 2, 3, 3, 3, 4, 4, 4], [], [], [0, 1], [], [0, 0, 0, 1, 1, 1, 3, 3, 3, 4, 4, 4], [], [0, 4], [], [0, 0, 0, 0, 2, 3, 3, 3, 4, 4, 4, 4], [0, 3, 4, 4], [3, 4], [2, 3], [0, 1], [], [0, 1, 1, 2, 3, 4], [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3, 3, 4, 4], [0, 1, 3, 4], [0, 0, 0, 1, 1, 1, 1, 3, 3, 4, 4, 4], [], [0, 0, 0, 1, 1, 3], [], [0, 1, 3, 4, 4, 4], [0, 0, 0, 1, 3, 3, 4, 4], [], [0, 0, 0, 1, 2, 3, 3, 3, 4, 4], [1, 4], [1, 4], [], [2, 3], [0, 0, 1, 2, 3, 3, 4, 4], [1, 4], [0, 1, 1, 2, 3, 3, 3, 4, 4, 4], [], [], [], [0, 3], [], [0, 1, 3, 4], [], [0, 0, 0, 0, 1, 3, 3, 4], [0, 0, 1, 1], [0, 1], [], [], [0, 4], [1, 3, 4, 4], [], [2, 3], [0, 0, 1, 3, 4, 4, 4, 4], [0, 4], [0, 2, 3, 3, 3, 4], [1, 2, 3, 4], [0, 0, 3, 3, 4, 4], [], [0, 4], [0, 1, 1, 3, 4, 4], [], [], [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3, 4, 4, 4], [], [0, 0, 1, 3, 4, 4], [], [0, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4], [], [0, 0, 1, 1, 3, 4], [0, 0, 0, 1, 1, 1, 4, 4], [0, 1], [0, 3, 3, 4], [3, 4], [0, 1, 3, 4], [], [1, 4], [1, 4], [], [0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 4, 4], [], [0, 0, 0, 1, 1, 1, 1, 3, 3, 4, 4, 4], [], [0, 0, 0, 1, 3, 4, 4, 4], [], [3, 3, 4, 4], [1, 4], [0, 0, 1, 1, 1, 3, 4, 4, 4, 4], [0, 0, 0, 1, 1, 3, 4, 4], [3, 4], [0, 0, 1, 1], [0, 1, 3, 4], [0, 3], [], [], [], [], [], [0, 3, 4, 4], [0, 3, 4, 4], [0, 0, 0, 4, 4, 4], [0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 4], [0, 4], [], [0, 0, 0, 0, 1, 1, 2, 3, 3, 3], [0, 0, 1, 2, 3, 3, 3, 4, 4, 4], [], [0, 0, 1, 3, 4, 4], [], [0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, 4, 4, 4, 4], [2, 2, 3, 3], [0, 1, 4, 4], [0, 0, 0, 1, 1, 1, 2, 3, 3, 4], [0, 0, 0, 1, 1, 1, 3, 4, 4, 4], [0, 0, 0, 1, 1, 1, 3, 4, 4, 4], [0, 3], [0, 0, 0, 1, 3, 4, 4, 4], [1, 3, 4, 4], [0, 3], [], [], [], [1, 3, 3, 3, 4, 4, 4, 4], [0, 1], [0, 0, 4, 4], [], [], [2, 3], [0, 3], [0, 1], [2, 3], [], [], [1, 3, 4, 4], [0, 1, 2, 2, 2, 3, 3, 3, 3, 4], [3, 4], [], [0, 1, 3, 4], [0, 0, 0, 0, 1, 3, 3, 4, 4, 4], [0, 0, 1, 1, 1, 2, 3, 3, 4, 4], [], [], [0, 0, 0, 2, 3, 3, 4, 4], [0, 0, 0, 0, 1, 1, 1, 3, 4, 4], [], [], [1, 4], [], [0, 4], [0, 1, 2, 3, 3, 4], [], [0, 1], [], [0, 0, 0, 0, 1, 1, 3, 4], [0, 0, 1, 3, 3, 4], [0, 0, 1, 4], [2, 3], [0, 3], [0, 0, 1, 4], [2, 3], [0, 1, 2, 3, 3, 3, 4, 4], [], [], [0, 1], [0, 0, 1, 1, 3, 4], [], [0, 4], [], [], [0, 2, 2, 3, 3, 3], [], [0, 1, 3, 4, 4, 4], [2, 3], [2, 2, 3, 3], [], [3, 4], [1, 4], [], [0, 4], [1, 4], [], [1, 4], [0, 1, 1, 4, 4, 4], [], [0, 1, 3, 3, 4, 4], [3, 4], [0, 4], [0, 3, 3, 4], [0, 3], [0, 0, 0, 0, 1, 3, 3, 4], [0, 1, 3, 4], [0, 0, 0, 0, 3, 3, 3, 3, 4, 4], [0, 2, 3, 3, 3, 3, 4, 4], [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3, 4, 4, 4], [2, 2, 3, 3], [0, 0, 0, 0, 1, 1, 1, 3, 4, 4], [0, 1, 2, 3, 3, 3, 4, 4], [1, 4], [0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 4], [], [0, 1], [], [], [0, 1], [], [], [], [0, 3], [2, 3], [], [], [0, 4], [], [0, 1, 2, 3, 3, 4, 4, 4], [0, 1, 2, 3], [0, 0, 1, 4], [0, 1, 1, 4], [0, 3], [], [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4], [0, 0, 0, 0, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4], [0, 0, 1, 3, 3, 4, 4, 4], [0, 1, 1, 3, 4, 4], [0, 2, 3, 4], [2, 3], [0, 1, 3, 3, 4, 4], [0, 1, 3, 3, 3, 3, 4, 4, 4, 4], [], [], [], [0, 0, 3, 3, 3, 4, 4, 4], [0, 0, 0, 1, 1, 3, 3, 4, 4, 4], [], [0, 0, 1, 1], [0, 4], [0, 0, 3, 4], [0, 0, 0, 0, 3, 4, 4, 4], [], [0, 1], [0, 0, 1, 2, 3, 3], [0, 0, 4, 4], [0, 0, 0, 1, 1, 4], [0, 4], [3, 4], [], [2, 3], [0, 3], [0, 1], [0, 0, 0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 4], [0, 0, 0, 1, 3, 3, 4, 4], [0, 4], [0, 3], [0, 0, 1, 3], [3, 3, 4, 4], [0, 0, 3, 4], [0, 0, 0, 1, 1, 3, 4, 4], [0, 0, 0, 0, 3, 3, 4, 4], [0, 1, 4, 4], [0, 0, 0, 2, 3, 3, 3, 3, 4, 4], [0, 1, 1, 2, 3, 4], [0, 0, 0, 0, 1, 3, 3, 3, 4, 4, 4, 4], [], [0, 1], [0, 0, 1, 2, 3, 4], [2, 3, 3, 3, 4, 4], [1, 2, 3, 4], [0, 0, 0, 1, 3, 3], [0, 0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4], [0, 0, 0, 0, 2, 2, 3, 3, 3, 3, 4, 4], [0, 0, 0, 0, 1, 1, 3, 4], [2, 2, 3, 3], [], [], [0, 0, 1, 1, 3, 4, 4, 4], [2, 2, 3, 3], [2, 3], [0, 0, 0, 3, 3, 4], [0, 0, 0, 2, 3, 3, 4, 4], [], [0, 0, 1, 1, 4, 4], [0, 0, 0, 1, 3, 3, 4, 4], [0, 1, 3, 3, 4, 4], [1, 3, 4, 4], [0, 4], [], [], [0, 0, 0, 1, 2, 3, 3, 4, 4, 4], [], [0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4], [0, 0, 0, 0, 1, 1, 1, 4, 4, 4], [0, 3], [], [0, 1, 3, 4, 4, 4], [0, 0, 2, 2, 3, 3, 3, 3], [], [], [], [2, 3], [], [1, 4], [0, 4], [0, 0, 1, 1], [0, 3, 4, 4], [0, 1, 3, 3, 4, 4], [1, 4], [0, 0, 1, 1, 3, 3, 3, 4, 4, 4], [], [0, 0, 1, 3, 3, 4, 4, 4], [2, 3, 3, 4], [0, 0, 0, 1, 1, 1, 3, 3, 4, 4, 4, 4], [], [1, 4], [1, 4], [], [0, 0, 1, 3], [0, 0, 0, 1, 1, 1, 3, 4, 4, 4], [], [], [0, 0, 3, 3], [3, 4], [0, 0, 0, 0, 1, 3, 4, 4, 4, 4], [], [0, 0, 0, 1, 3, 3, 3, 4], [0, 0, 0, 1, 1, 3, 3, 3, 4, 4, 4, 4], [0, 0, 1, 3, 3, 4], [], [], [0, 0, 0, 0, 1, 1, 1, 3, 4, 4], [2, 3], [0, 1, 2, 2, 3, 3], [0, 1], [], [0, 0, 0, 2, 3, 3, 3, 3, 4, 4], [], [0, 3], [0, 0, 3, 3, 4, 4], [0, 0, 0, 1, 3, 4, 4, 4], [], [0, 2, 2, 3, 3, 3, 3, 4], [2, 3], [], [0, 0, 0, 0, 1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 4, 4], [0, 0, 1, 3, 4, 4], [], [], [2, 3, 3, 4], [3, 4], [], [0, 3], [0, 1], [1, 4], [], [], [0, 1, 1, 3, 4, 4], [], [], [0, 3, 4, 4], [0, 1, 1, 2, 3, 3, 4, 4], [], [], [0, 0, 0, 1, 2, 3, 3, 4], [0, 1, 3, 4], [0, 0, 1, 1, 1, 3, 4, 4], [0, 2, 3, 3], [0, 0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 4], [0, 0, 1, 2, 3, 3], [2, 3, 3, 4], [], [0, 1, 3, 3, 4, 4], [], [0, 4], [], [0, 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4], [1, 4], [3, 4], [0, 3], [0, 0, 0, 0, 1, 3, 3, 4, 4, 4], [0, 0, 1, 1, 3, 3, 4, 4], [1, 4], [0, 0, 1, 1, 3, 4], [3, 4], [0, 3], [1, 4], [0, 1], [], [3, 4], [0, 0, 0, 0, 1, 1, 3, 3, 4, 4], [], [0, 4], [0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3, 4], [], [], [0, 1, 3, 4], [0, 1, 3, 4], [0, 3, 3, 4], [3, 4], [0, 3, 3, 4], [], [], [0, 3, 4, 4], [0, 1], [2, 3], [0, 0, 1, 1, 4, 4], [0, 0, 0, 1, 1, 1, 3, 3, 3, 4, 4, 4], [], [0, 0, 0, 1, 3, 4], []]
One can also implement threshold GBS with ThresholdMeasurement:
[21]:
with pq.Program() as program:
for i in range(d):
pq.Q(i) | pq.Squeezing(squeezings[i])
pq.Q() | pq.Interferometer(unitary)
pq.Q() | pq.ThresholdMeasurement()
simulator = pq.GaussianSimulator(d=d)
result = simulator.execute(program, shots=shots)
print(result.samples)
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 1, 1, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 1, 1, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 1, 0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 1, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 0, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]