diff --git a/Yolov5-Deepsort/AIDetector_pytorch.py b/Yolov5-Deepsort/AIDetector_pytorch.py
deleted file mode 100644
index f1818d8dcba71cf0f0bf75065f214bb620c28029..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/AIDetector_pytorch.py
+++ /dev/null
@@ -1,74 +0,0 @@
-import torch
-import numpy as np
-from models.experimental import attempt_load
-from utils.general import non_max_suppression, scale_coords
-from utils.BaseDetector import baseDet
-from utils.torch_utils import select_device
-from utils.datasets import letterbox
-import rich
-
-class Detector(baseDet):
-
- def __init__(self):
- super(Detector, self).__init__()
- self.init_model()
- self.build_config()
-
- def init_model(self):
-
- self.weights = 'weights/yolov5s.pt'
- self.device = '0' if torch.cuda.is_available() else 'cpu'
- self.device = select_device(self.device)
- model = attempt_load(self.weights, map_location=self.device)
- model.to(self.device).eval()
- model.half()
- # torch.save(model, 'test.pt')
- self.m = model
- self.names = model.module.names if hasattr(
- model, 'module') else model.names
-
- def preprocess(self, img):
-
- img0 = img.copy()
- img = letterbox(img, new_shape=self.img_size)[0]
- img = img[:, :, ::-1].transpose(2, 0, 1)
- img = np.ascontiguousarray(img)
- img = torch.from_numpy(img).to(self.device)
- img = img.half() # 半精度
- img /= 255.0 # 图像归一化
- if img.ndimension() == 3:
- img = img.unsqueeze(0)
-
- return img0, img
-
- def detect(self, im):
-
- im0, img = self.preprocess(im)
-
- pred = self.m(img, augment=False)[0]
- #rich.print(pred.shape)
- pred = pred.float()
-
-
- pred = non_max_suppression(pred, self.threshold, 0.4)
- #rich.print((pred))
-
-
- pred_boxes = []
- for det in pred:
-
- if det is not None and len(det):
- det[:, :4] = scale_coords(
- img.shape[2:], det[:, :4], im0.shape).round()
-
- for *x, conf, cls_id in det:
- lbl = self.names[int(cls_id)]
- if not lbl in ['person', 'car', 'truck']:
- continue
- x1, y1 = int(x[0]), int(x[1])
- x2, y2 = int(x[2]), int(x[3])
- pred_boxes.append(
- (x1, y1, x2, y2, lbl, conf))
-
- return im, pred_boxes
-
diff --git a/Yolov5-Deepsort/DDM_DeepSort/.gitattributes b/Yolov5-Deepsort/DDM_DeepSort/.gitattributes
deleted file mode 100644
index a6344aac8c09253b3b630fb776ae94478aa0275b..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/DDM_DeepSort/.gitattributes
+++ /dev/null
@@ -1,35 +0,0 @@
-*.7z filter=lfs diff=lfs merge=lfs -text
-*.arrow filter=lfs diff=lfs merge=lfs -text
-*.bin filter=lfs diff=lfs merge=lfs -text
-*.bz2 filter=lfs diff=lfs merge=lfs -text
-*.ckpt filter=lfs diff=lfs merge=lfs -text
-*.ftz filter=lfs diff=lfs merge=lfs -text
-*.gz filter=lfs diff=lfs merge=lfs -text
-*.h5 filter=lfs diff=lfs merge=lfs -text
-*.joblib filter=lfs diff=lfs merge=lfs -text
-*.lfs.* filter=lfs diff=lfs merge=lfs -text
-*.mlmodel filter=lfs diff=lfs merge=lfs -text
-*.model filter=lfs diff=lfs merge=lfs -text
-*.msgpack filter=lfs diff=lfs merge=lfs -text
-*.npy filter=lfs diff=lfs merge=lfs -text
-*.npz filter=lfs diff=lfs merge=lfs -text
-*.onnx filter=lfs diff=lfs merge=lfs -text
-*.ot filter=lfs diff=lfs merge=lfs -text
-*.parquet filter=lfs diff=lfs merge=lfs -text
-*.pb filter=lfs diff=lfs merge=lfs -text
-*.pickle filter=lfs diff=lfs merge=lfs -text
-*.pkl filter=lfs diff=lfs merge=lfs -text
-*.pt filter=lfs diff=lfs merge=lfs -text
-*.pth filter=lfs diff=lfs merge=lfs -text
-*.rar filter=lfs diff=lfs merge=lfs -text
-*.safetensors filter=lfs diff=lfs merge=lfs -text
-saved_model/**/* filter=lfs diff=lfs merge=lfs -text
-*.tar.* filter=lfs diff=lfs merge=lfs -text
-*.tar filter=lfs diff=lfs merge=lfs -text
-*.tflite filter=lfs diff=lfs merge=lfs -text
-*.tgz filter=lfs diff=lfs merge=lfs -text
-*.wasm filter=lfs diff=lfs merge=lfs -text
-*.xz filter=lfs diff=lfs merge=lfs -text
-*.zip filter=lfs diff=lfs merge=lfs -text
-*.zst filter=lfs diff=lfs merge=lfs -text
-*tfevents* filter=lfs diff=lfs merge=lfs -text
diff --git a/Yolov5-Deepsort/DDM_DeepSort/README.md b/Yolov5-Deepsort/DDM_DeepSort/README.md
deleted file mode 100644
index c183fca4d1c01de7a67e192c36ef9ba7a961fbd7..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/DDM_DeepSort/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: DDM DeepSort
-emoji: 📚
-colorFrom: yellow
-colorTo: gray
-sdk: gradio
-sdk_version: 5.6.0
-app_file: app.py
-pinned: false
-short_description: 将Drift Diffusion Model 应用于 yolov5 + deepsort
----
-
-Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
diff --git a/Yolov5-Deepsort/DDM_DeepSort/app.py b/Yolov5-Deepsort/DDM_DeepSort/app.py
deleted file mode 100644
index cbffdf1ba490e3ae1fb244c10909cccfa7652993..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/DDM_DeepSort/app.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import gradio as gr
-
-def greet(name):
- return "Hello " + name + "!!"
-
-demo = gr.Interface(fn=greet, inputs="text", outputs="text")
-demo.launch()
\ No newline at end of file
diff --git a/Yolov5-Deepsort/LICENSE b/Yolov5-Deepsort/LICENSE
deleted file mode 100644
index 9e419e042146a2ce2e354202d4f7d8e4a3d66f31..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/LICENSE
+++ /dev/null
@@ -1,674 +0,0 @@
-GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
\ No newline at end of file
diff --git a/Yolov5-Deepsort/README.md b/Yolov5-Deepsort/README.md
deleted file mode 100644
index c63236631bd4d84ba1e5c5072ef1c2dd7e3def5b..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/README.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# 本文禁止转载!
-
-
-本文地址:[https://blog.csdn.net/weixin_44936889/article/details/112002152](https://blog.csdn.net/weixin_44936889/article/details/112002152)
-
-# 项目简介:
-使用YOLOv5+Deepsort实现车辆行人追踪和计数,代码封装成一个Detector类,更容易嵌入到自己的项目中。
-
-代码地址(欢迎star):
-
-[https://github.com/Sharpiless/yolov5-deepsort/](https://github.com/Sharpiless/yolov5-deepsort/)
-
-最终效果:
-
-# YOLOv5检测器:
-
-```python
-class Detector(baseDet):
-
- def __init__(self):
- super(Detector, self).__init__()
- self.init_model()
- self.build_config()
-
- def init_model(self):
-
- self.weights = 'weights/yolov5m.pt'
- self.device = '0' if torch.cuda.is_available() else 'cpu'
- self.device = select_device(self.device)
- model = attempt_load(self.weights, map_location=self.device)
- model.to(self.device).eval()
- model.half()
- # torch.save(model, 'test.pt')
- self.m = model
- self.names = model.module.names if hasattr(
- model, 'module') else model.names
-
- def preprocess(self, img):
-
- img0 = img.copy()
- img = letterbox(img, new_shape=self.img_size)[0]
- img = img[:, :, ::-1].transpose(2, 0, 1)
- img = np.ascontiguousarray(img)
- img = torch.from_numpy(img).to(self.device)
- img = img.half() # 半精度
- img /= 255.0 # 图像归一化
- if img.ndimension() == 3:
- img = img.unsqueeze(0)
-
- return img0, img
-
- def detect(self, im):
-
- im0, img = self.preprocess(im)
-
- pred = self.m(img, augment=False)[0]
- pred = pred.float()
- pred = non_max_suppression(pred, self.threshold, 0.4)
-
- pred_boxes = []
- for det in pred:
-
- if det is not None and len(det):
- det[:, :4] = scale_coords(
- img.shape[2:], det[:, :4], im0.shape).round()
-
- for *x, conf, cls_id in det:
- lbl = self.names[int(cls_id)]
- if not lbl in ['person', 'car', 'truck']:
- continue
- x1, y1 = int(x[0]), int(x[1])
- x2, y2 = int(x[2]), int(x[3])
- pred_boxes.append(
- (x1, y1, x2, y2, lbl, conf))
-
- return im, pred_boxes
-
-```
-
-调用 self.detect 方法返回图像和预测结果
-
-# DeepSort追踪器:
-
-```python
-deepsort = DeepSort(cfg.DEEPSORT.REID_CKPT,
- max_dist=cfg.DEEPSORT.MAX_DIST, min_confidence=cfg.DEEPSORT.MIN_CONFIDENCE,
- nms_max_overlap=cfg.DEEPSORT.NMS_MAX_OVERLAP, max_iou_distance=cfg.DEEPSORT.MAX_IOU_DISTANCE,
- max_age=cfg.DEEPSORT.MAX_AGE, n_init=cfg.DEEPSORT.N_INIT, nn_budget=cfg.DEEPSORT.NN_BUDGET,
- use_cuda=True)
-```
-
-调用 self.update 方法更新追踪结果
-
-# 运行demo:
-
-```bash
-python demo.py
-```
-
-# 训练自己的模型:
-参考我的另一篇博客:
-
-[【小白CV】手把手教你用YOLOv5训练自己的数据集(从Windows环境配置到模型部署)](https://blog.csdn.net/weixin_44936889/article/details/110661862)
-
-训练好后放到 weights 文件夹下
-
-# 调用接口:
-
-## 创建检测器:
-
-```python
-from AIDetector_pytorch import Detector
-
-det = Detector()
-```
-
-## 调用检测接口:
-
-```python
-result = det.feedCap(im)
-```
-
-其中 im 为 BGR 图像
-
-返回的 result 是字典,result['frame'] 返回可视化后的图像
-
-# 联系作者:
-
-> B站:[https://space.bilibili.com/470550823](https://space.bilibili.com/470550823)
-
-> CSDN:[https://blog.csdn.net/weixin_44936889](https://blog.csdn.net/weixin_44936889)
-
-> AI Studio:[https://aistudio.baidu.com/aistudio/personalcenter/thirdview/67156](https://aistudio.baidu.com/aistudio/personalcenter/thirdview/67156)
-
-> Github:[https://github.com/Sharpiless](https://github.com/Sharpiless)
-
-遵循 GNU General Public License v3.0 协议,标明目标检测部分来源:https://github.com/ultralytics/yolov5/
-
-
diff --git a/Yolov5-Deepsort/__pycache__/AIDetector_pytorch.cpython-37.pyc b/Yolov5-Deepsort/__pycache__/AIDetector_pytorch.cpython-37.pyc
deleted file mode 100644
index f3df550cd00fdac6fc6194a125a0779564e4a21f..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/__pycache__/AIDetector_pytorch.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/__pycache__/tracker.cpython-37.pyc b/Yolov5-Deepsort/__pycache__/tracker.cpython-37.pyc
deleted file mode 100644
index 30b3fa8312b1b89000fd7043669defba41cad800..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/__pycache__/tracker.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/configs/deep_sort.yaml b/Yolov5-Deepsort/deep_sort/configs/deep_sort.yaml
deleted file mode 100644
index 6105f46a8d155c2dc7ba9cebb7178b4e0ed389a3..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/configs/deep_sort.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-DEEPSORT:
- REID_CKPT: "deep_sort/deep_sort/deep/checkpoint/ckpt.t7"
- MAX_DIST: 0.2
- MIN_CONFIDENCE: 0.3
- NMS_MAX_OVERLAP: 0.5
- MAX_IOU_DISTANCE: 0.7
- MAX_AGE: 70
- N_INIT: 3
- NN_BUDGET: 100
-
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/README.md b/Yolov5-Deepsort/deep_sort/deep_sort/README.md
deleted file mode 100644
index e89c9b3ea08691210046fbb9184bf8e44e88f29e..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Deep Sort
-
-This is the implemention of deep sort with pytorch.
\ No newline at end of file
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/__init__.py b/Yolov5-Deepsort/deep_sort/deep_sort/__init__.py
deleted file mode 100644
index 5fe5d0fd796ec4f46dc4141f5e4f9f5092f7d321..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/__init__.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from .deep_sort import DeepSort
-
-
-__all__ = ['DeepSort', 'build_tracker']
-
-
-def build_tracker(cfg, use_cuda):
- return DeepSort(cfg.DEEPSORT.REID_CKPT,
- max_dist=cfg.DEEPSORT.MAX_DIST, min_confidence=cfg.DEEPSORT.MIN_CONFIDENCE,
- nms_max_overlap=cfg.DEEPSORT.NMS_MAX_OVERLAP, max_iou_distance=cfg.DEEPSORT.MAX_IOU_DISTANCE,
- max_age=cfg.DEEPSORT.MAX_AGE, n_init=cfg.DEEPSORT.N_INIT, nn_budget=cfg.DEEPSORT.NN_BUDGET, use_cuda=use_cuda)
-
-
-
-
-
-
-
-
-
-
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/__init__.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/__init__.cpython-36.pyc
deleted file mode 100644
index dff7fa67ddcea8ac5a16ace2ede46d492353e1d4..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/__init__.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/__init__.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index c92d420992773f89b21cac6794ebfcbbfa90b11e..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/deep_sort.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/deep_sort.cpython-36.pyc
deleted file mode 100644
index 63745386d533467bb683118b4a63676efb8d1488..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/deep_sort.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/deep_sort.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/deep_sort.cpython-37.pyc
deleted file mode 100644
index 7d1aefaad1592b8dbfbfd00f9c63686ac0159ddd..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/__pycache__/deep_sort.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__init__.py b/Yolov5-Deepsort/deep_sort/deep_sort/deep/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/__init__.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/__init__.cpython-36.pyc
deleted file mode 100644
index b4828f3eed6acf1d397c430fe01c96be6241247d..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/__init__.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/__init__.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index 0d0759879843a1aec1a37b54b3b00c9f10e355a2..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/feature_extractor.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/feature_extractor.cpython-36.pyc
deleted file mode 100644
index c933b6ea1cb23e47c04b07eccbbff7c6f770826f..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/feature_extractor.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/feature_extractor.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/feature_extractor.cpython-37.pyc
deleted file mode 100644
index e9b7bac5f03c644206c5951ea52fa266e2d4c6ba..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/feature_extractor.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/model.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/model.cpython-36.pyc
deleted file mode 100644
index 05f606cd7d3bca1ecedf98c36bba5a5c2bb544e4..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/model.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/model.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/model.cpython-37.pyc
deleted file mode 100644
index a6111abffcd22ea119d6b601a0614959a5777009..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/deep/__pycache__/model.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/checkpoint/.gitkeep b/Yolov5-Deepsort/deep_sort/deep_sort/deep/checkpoint/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/checkpoint/ckpt.t7 b/Yolov5-Deepsort/deep_sort/deep_sort/deep/checkpoint/ckpt.t7
deleted file mode 100644
index cd7ceebe86bdfaea299f31994844488295f00ca8..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/deep/checkpoint/ckpt.t7
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:df75ddef42c3d1bda67bc94b093e7ce61de7f75a89f36a8f868a428462198316
-size 46034619
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/evaluate.py b/Yolov5-Deepsort/deep_sort/deep_sort/deep/evaluate.py
deleted file mode 100644
index 31c40a46eaea0ad7b6fc50a15e39329b954561ff..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/deep/evaluate.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import torch
-
-features = torch.load("features.pth")
-qf = features["qf"]
-ql = features["ql"]
-gf = features["gf"]
-gl = features["gl"]
-
-scores = qf.mm(gf.t())
-res = scores.topk(5, dim=1)[1][:,0]
-top1correct = gl[res].eq(ql).sum().item()
-
-print("Acc top1:{:.3f}".format(top1correct/ql.size(0)))
-
-
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/feature_extractor.py b/Yolov5-Deepsort/deep_sort/deep_sort/deep/feature_extractor.py
deleted file mode 100644
index 0443e37d94dc743e6c4467fab2dcb29f39bb6435..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/deep/feature_extractor.py
+++ /dev/null
@@ -1,55 +0,0 @@
-import torch
-import torchvision.transforms as transforms
-import numpy as np
-import cv2
-import logging
-
-from .model import Net
-
-class Extractor(object):
- def __init__(self, model_path, use_cuda=True):
- self.net = Net(reid=True)
- self.device = "cuda" if torch.cuda.is_available() and use_cuda else "cpu"
- state_dict = torch.load(model_path, map_location=lambda storage, loc: storage)['net_dict']
- self.net.load_state_dict(state_dict)
- logger = logging.getLogger("root.tracker")
- logger.info("Loading weights from {}... Done!".format(model_path))
- self.net.to(self.device)
- self.size = (64, 128)
- self.norm = transforms.Compose([
- transforms.ToTensor(),
- transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
- ])
-
-
-
- def _preprocess(self, im_crops):
- """
- TODO:
- 1. to float with scale from 0 to 1
- 2. resize to (64, 128) as Market1501 dataset did
- 3. concatenate to a numpy array
- 3. to torch Tensor
- 4. normalize
- """
- def _resize(im, size):
- return cv2.resize(im.astype(np.float32)/255., size)
-
- im_batch = torch.cat([self.norm(_resize(im, self.size)).unsqueeze(0) for im in im_crops], dim=0).float()
- return im_batch
-
-
- def __call__(self, im_crops):
- im_batch = self._preprocess(im_crops)
- with torch.no_grad():
- im_batch = im_batch.to(self.device)
- features = self.net(im_batch)
- return features.cpu().numpy()
-
-
-if __name__ == '__main__':
- img = cv2.imread("demo.jpg")[:,:,(2,1,0)]
- extr = Extractor("checkpoint/ckpt.t7")
- feature = extr(img)
- print(feature.shape)
-
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/model.py b/Yolov5-Deepsort/deep_sort/deep_sort/deep/model.py
deleted file mode 100644
index 97e87547cd8e36b1a65e2dc1ad4cfb310f0f4c23..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/deep/model.py
+++ /dev/null
@@ -1,104 +0,0 @@
-import torch
-import torch.nn as nn
-import torch.nn.functional as F
-
-class BasicBlock(nn.Module):
- def __init__(self, c_in, c_out,is_downsample=False):
- super(BasicBlock,self).__init__()
- self.is_downsample = is_downsample
- if is_downsample:
- self.conv1 = nn.Conv2d(c_in, c_out, 3, stride=2, padding=1, bias=False)
- else:
- self.conv1 = nn.Conv2d(c_in, c_out, 3, stride=1, padding=1, bias=False)
- self.bn1 = nn.BatchNorm2d(c_out)
- self.relu = nn.ReLU(True)
- self.conv2 = nn.Conv2d(c_out,c_out,3,stride=1,padding=1, bias=False)
- self.bn2 = nn.BatchNorm2d(c_out)
- if is_downsample:
- self.downsample = nn.Sequential(
- nn.Conv2d(c_in, c_out, 1, stride=2, bias=False),
- nn.BatchNorm2d(c_out)
- )
- elif c_in != c_out:
- self.downsample = nn.Sequential(
- nn.Conv2d(c_in, c_out, 1, stride=1, bias=False),
- nn.BatchNorm2d(c_out)
- )
- self.is_downsample = True
-
- def forward(self,x):
- y = self.conv1(x)
- y = self.bn1(y)
- y = self.relu(y)
- y = self.conv2(y)
- y = self.bn2(y)
- if self.is_downsample:
- x = self.downsample(x)
- return F.relu(x.add(y),True)
-
-def make_layers(c_in,c_out,repeat_times, is_downsample=False):
- blocks = []
- for i in range(repeat_times):
- if i ==0:
- blocks += [BasicBlock(c_in,c_out, is_downsample=is_downsample),]
- else:
- blocks += [BasicBlock(c_out,c_out),]
- return nn.Sequential(*blocks)
-
-class Net(nn.Module):
- def __init__(self, num_classes=751 ,reid=False):
- super(Net,self).__init__()
- # 3 128 64
- self.conv = nn.Sequential(
- nn.Conv2d(3,64,3,stride=1,padding=1),
- nn.BatchNorm2d(64),
- nn.ReLU(inplace=True),
- # nn.Conv2d(32,32,3,stride=1,padding=1),
- # nn.BatchNorm2d(32),
- # nn.ReLU(inplace=True),
- nn.MaxPool2d(3,2,padding=1),
- )
- # 32 64 32
- self.layer1 = make_layers(64,64,2,False)
- # 32 64 32
- self.layer2 = make_layers(64,128,2,True)
- # 64 32 16
- self.layer3 = make_layers(128,256,2,True)
- # 128 16 8
- self.layer4 = make_layers(256,512,2,True)
- # 256 8 4
- self.avgpool = nn.AvgPool2d((8,4),1)
- # 256 1 1
- self.reid = reid
- self.classifier = nn.Sequential(
- nn.Linear(512, 256),
- nn.BatchNorm1d(256),
- nn.ReLU(inplace=True),
- nn.Dropout(),
- nn.Linear(256, num_classes),
- )
-
- def forward(self, x):
- x = self.conv(x)
- x = self.layer1(x)
- x = self.layer2(x)
- x = self.layer3(x)
- x = self.layer4(x)
- x = self.avgpool(x)
- x = x.view(x.size(0),-1)
- # B x 128
- if self.reid:
- x = x.div(x.norm(p=2,dim=1,keepdim=True))
- return x
- # classifier
- x = self.classifier(x)
- return x
-
-
-if __name__ == '__main__':
- net = Net()
- x = torch.randn(4,3,128,64)
- y = net(x)
- import ipdb; ipdb.set_trace()
-
-
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/original_model.py b/Yolov5-Deepsort/deep_sort/deep_sort/deep/original_model.py
deleted file mode 100644
index 72453a6392b9a360c03034eefee1d6be30f8121b..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/deep/original_model.py
+++ /dev/null
@@ -1,106 +0,0 @@
-import torch
-import torch.nn as nn
-import torch.nn.functional as F
-
-class BasicBlock(nn.Module):
- def __init__(self, c_in, c_out,is_downsample=False):
- super(BasicBlock,self).__init__()
- self.is_downsample = is_downsample
- if is_downsample:
- self.conv1 = nn.Conv2d(c_in, c_out, 3, stride=2, padding=1, bias=False)
- else:
- self.conv1 = nn.Conv2d(c_in, c_out, 3, stride=1, padding=1, bias=False)
- self.bn1 = nn.BatchNorm2d(c_out)
- self.relu = nn.ReLU(True)
- self.conv2 = nn.Conv2d(c_out,c_out,3,stride=1,padding=1, bias=False)
- self.bn2 = nn.BatchNorm2d(c_out)
- if is_downsample:
- self.downsample = nn.Sequential(
- nn.Conv2d(c_in, c_out, 1, stride=2, bias=False),
- nn.BatchNorm2d(c_out)
- )
- elif c_in != c_out:
- self.downsample = nn.Sequential(
- nn.Conv2d(c_in, c_out, 1, stride=1, bias=False),
- nn.BatchNorm2d(c_out)
- )
- self.is_downsample = True
-
- def forward(self,x):
- y = self.conv1(x)
- y = self.bn1(y)
- y = self.relu(y)
- y = self.conv2(y)
- y = self.bn2(y)
- if self.is_downsample:
- x = self.downsample(x)
- return F.relu(x.add(y),True)
-
-def make_layers(c_in,c_out,repeat_times, is_downsample=False):
- blocks = []
- for i in range(repeat_times):
- if i ==0:
- blocks += [BasicBlock(c_in,c_out, is_downsample=is_downsample),]
- else:
- blocks += [BasicBlock(c_out,c_out),]
- return nn.Sequential(*blocks)
-
-class Net(nn.Module):
- def __init__(self, num_classes=625 ,reid=False):
- super(Net,self).__init__()
- # 3 128 64
- self.conv = nn.Sequential(
- nn.Conv2d(3,32,3,stride=1,padding=1),
- nn.BatchNorm2d(32),
- nn.ELU(inplace=True),
- nn.Conv2d(32,32,3,stride=1,padding=1),
- nn.BatchNorm2d(32),
- nn.ELU(inplace=True),
- nn.MaxPool2d(3,2,padding=1),
- )
- # 32 64 32
- self.layer1 = make_layers(32,32,2,False)
- # 32 64 32
- self.layer2 = make_layers(32,64,2,True)
- # 64 32 16
- self.layer3 = make_layers(64,128,2,True)
- # 128 16 8
- self.dense = nn.Sequential(
- nn.Dropout(p=0.6),
- nn.Linear(128*16*8, 128),
- nn.BatchNorm1d(128),
- nn.ELU(inplace=True)
- )
- # 256 1 1
- self.reid = reid
- self.batch_norm = nn.BatchNorm1d(128)
- self.classifier = nn.Sequential(
- nn.Linear(128, num_classes),
- )
-
- def forward(self, x):
- x = self.conv(x)
- x = self.layer1(x)
- x = self.layer2(x)
- x = self.layer3(x)
-
- x = x.view(x.size(0),-1)
- if self.reid:
- x = self.dense[0](x)
- x = self.dense[1](x)
- x = x.div(x.norm(p=2,dim=1,keepdim=True))
- return x
- x = self.dense(x)
- # B x 128
- # classifier
- x = self.classifier(x)
- return x
-
-
-if __name__ == '__main__':
- net = Net(reid=True)
- x = torch.randn(4,3,128,64)
- y = net(x)
- import ipdb; ipdb.set_trace()
-
-
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/test.py b/Yolov5-Deepsort/deep_sort/deep_sort/deep/test.py
deleted file mode 100644
index ebd590336f7b17c44738c4c15458f02f33f08017..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/deep/test.py
+++ /dev/null
@@ -1,77 +0,0 @@
-import torch
-import torch.backends.cudnn as cudnn
-import torchvision
-
-import argparse
-import os
-
-from model import Net
-
-parser = argparse.ArgumentParser(description="Train on market1501")
-parser.add_argument("--data-dir",default='data',type=str)
-parser.add_argument("--no-cuda",action="store_true")
-parser.add_argument("--gpu-id",default=0,type=int)
-args = parser.parse_args()
-
-# device
-device = "cuda:{}".format(args.gpu_id) if torch.cuda.is_available() and not args.no_cuda else "cpu"
-if torch.cuda.is_available() and not args.no_cuda:
- cudnn.benchmark = True
-
-# data loader
-root = args.data_dir
-query_dir = os.path.join(root,"query")
-gallery_dir = os.path.join(root,"gallery")
-transform = torchvision.transforms.Compose([
- torchvision.transforms.Resize((128,64)),
- torchvision.transforms.ToTensor(),
- torchvision.transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
-])
-queryloader = torch.utils.data.DataLoader(
- torchvision.datasets.ImageFolder(query_dir, transform=transform),
- batch_size=64, shuffle=False
-)
-galleryloader = torch.utils.data.DataLoader(
- torchvision.datasets.ImageFolder(gallery_dir, transform=transform),
- batch_size=64, shuffle=False
-)
-
-# net definition
-net = Net(reid=True)
-assert os.path.isfile("./checkpoint/ckpt.t7"), "Error: no checkpoint file found!"
-print('Loading from checkpoint/ckpt.t7')
-checkpoint = torch.load("./checkpoint/ckpt.t7")
-net_dict = checkpoint['net_dict']
-net.load_state_dict(net_dict, strict=False)
-net.eval()
-net.to(device)
-
-# compute features
-query_features = torch.tensor([]).float()
-query_labels = torch.tensor([]).long()
-gallery_features = torch.tensor([]).float()
-gallery_labels = torch.tensor([]).long()
-
-with torch.no_grad():
- for idx,(inputs,labels) in enumerate(queryloader):
- inputs = inputs.to(device)
- features = net(inputs).cpu()
- query_features = torch.cat((query_features, features), dim=0)
- query_labels = torch.cat((query_labels, labels))
-
- for idx,(inputs,labels) in enumerate(galleryloader):
- inputs = inputs.to(device)
- features = net(inputs).cpu()
- gallery_features = torch.cat((gallery_features, features), dim=0)
- gallery_labels = torch.cat((gallery_labels, labels))
-
-gallery_labels -= 2
-
-# save features
-features = {
- "qf": query_features,
- "ql": query_labels,
- "gf": gallery_features,
- "gl": gallery_labels
-}
-torch.save(features,"features.pth")
\ No newline at end of file
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/train.jpg b/Yolov5-Deepsort/deep_sort/deep_sort/deep/train.jpg
deleted file mode 100644
index 3635a614738828b880aa862bc52423848ac8e472..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/deep/train.jpg and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep/train.py b/Yolov5-Deepsort/deep_sort/deep_sort/deep/train.py
deleted file mode 100644
index a931763d155f27743d944ac46da10f57d35a8ddb..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/deep/train.py
+++ /dev/null
@@ -1,189 +0,0 @@
-import argparse
-import os
-import time
-
-import numpy as np
-import matplotlib.pyplot as plt
-import torch
-import torch.backends.cudnn as cudnn
-import torchvision
-
-from model import Net
-
-parser = argparse.ArgumentParser(description="Train on market1501")
-parser.add_argument("--data-dir",default='data',type=str)
-parser.add_argument("--no-cuda",action="store_true")
-parser.add_argument("--gpu-id",default=0,type=int)
-parser.add_argument("--lr",default=0.1, type=float)
-parser.add_argument("--interval",'-i',default=20,type=int)
-parser.add_argument('--resume', '-r',action='store_true')
-args = parser.parse_args()
-
-# device
-device = "cuda:{}".format(args.gpu_id) if torch.cuda.is_available() and not args.no_cuda else "cpu"
-if torch.cuda.is_available() and not args.no_cuda:
- cudnn.benchmark = True
-
-# data loading
-root = args.data_dir
-train_dir = os.path.join(root,"train")
-test_dir = os.path.join(root,"test")
-transform_train = torchvision.transforms.Compose([
- torchvision.transforms.RandomCrop((128,64),padding=4),
- torchvision.transforms.RandomHorizontalFlip(),
- torchvision.transforms.ToTensor(),
- torchvision.transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
-])
-transform_test = torchvision.transforms.Compose([
- torchvision.transforms.Resize((128,64)),
- torchvision.transforms.ToTensor(),
- torchvision.transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
-])
-trainloader = torch.utils.data.DataLoader(
- torchvision.datasets.ImageFolder(train_dir, transform=transform_train),
- batch_size=64,shuffle=True
-)
-testloader = torch.utils.data.DataLoader(
- torchvision.datasets.ImageFolder(test_dir, transform=transform_test),
- batch_size=64,shuffle=True
-)
-num_classes = max(len(trainloader.dataset.classes), len(testloader.dataset.classes))
-
-# net definition
-start_epoch = 0
-net = Net(num_classes=num_classes)
-if args.resume:
- assert os.path.isfile("./checkpoint/ckpt.t7"), "Error: no checkpoint file found!"
- print('Loading from checkpoint/ckpt.t7')
- checkpoint = torch.load("./checkpoint/ckpt.t7")
- # import ipdb; ipdb.set_trace()
- net_dict = checkpoint['net_dict']
- net.load_state_dict(net_dict)
- best_acc = checkpoint['acc']
- start_epoch = checkpoint['epoch']
-net.to(device)
-
-# loss and optimizer
-criterion = torch.nn.CrossEntropyLoss()
-optimizer = torch.optim.SGD(net.parameters(), args.lr, momentum=0.9, weight_decay=5e-4)
-best_acc = 0.
-
-# train function for each epoch
-def train(epoch):
- print("\nEpoch : %d"%(epoch+1))
- net.train()
- training_loss = 0.
- train_loss = 0.
- correct = 0
- total = 0
- interval = args.interval
- start = time.time()
- for idx, (inputs, labels) in enumerate(trainloader):
- # forward
- inputs,labels = inputs.to(device),labels.to(device)
- outputs = net(inputs)
- loss = criterion(outputs, labels)
-
- # backward
- optimizer.zero_grad()
- loss.backward()
- optimizer.step()
-
- # accumurating
- training_loss += loss.item()
- train_loss += loss.item()
- correct += outputs.max(dim=1)[1].eq(labels).sum().item()
- total += labels.size(0)
-
- # print
- if (idx+1)%interval == 0:
- end = time.time()
- print("[progress:{:.1f}%]time:{:.2f}s Loss:{:.5f} Correct:{}/{} Acc:{:.3f}%".format(
- 100.*(idx+1)/len(trainloader), end-start, training_loss/interval, correct, total, 100.*correct/total
- ))
- training_loss = 0.
- start = time.time()
-
- return train_loss/len(trainloader), 1.- correct/total
-
-def test(epoch):
- global best_acc
- net.eval()
- test_loss = 0.
- correct = 0
- total = 0
- start = time.time()
- with torch.no_grad():
- for idx, (inputs, labels) in enumerate(testloader):
- inputs, labels = inputs.to(device), labels.to(device)
- outputs = net(inputs)
- loss = criterion(outputs, labels)
-
- test_loss += loss.item()
- correct += outputs.max(dim=1)[1].eq(labels).sum().item()
- total += labels.size(0)
-
- print("Testing ...")
- end = time.time()
- print("[progress:{:.1f}%]time:{:.2f}s Loss:{:.5f} Correct:{}/{} Acc:{:.3f}%".format(
- 100.*(idx+1)/len(testloader), end-start, test_loss/len(testloader), correct, total, 100.*correct/total
- ))
-
- # saving checkpoint
- acc = 100.*correct/total
- if acc > best_acc:
- best_acc = acc
- print("Saving parameters to checkpoint/ckpt.t7")
- checkpoint = {
- 'net_dict':net.state_dict(),
- 'acc':acc,
- 'epoch':epoch,
- }
- if not os.path.isdir('checkpoint'):
- os.mkdir('checkpoint')
- torch.save(checkpoint, './checkpoint/ckpt.t7')
-
- return test_loss/len(testloader), 1.- correct/total
-
-# plot figure
-x_epoch = []
-record = {'train_loss':[], 'train_err':[], 'test_loss':[], 'test_err':[]}
-fig = plt.figure()
-ax0 = fig.add_subplot(121, title="loss")
-ax1 = fig.add_subplot(122, title="top1err")
-def draw_curve(epoch, train_loss, train_err, test_loss, test_err):
- global record
- record['train_loss'].append(train_loss)
- record['train_err'].append(train_err)
- record['test_loss'].append(test_loss)
- record['test_err'].append(test_err)
-
- x_epoch.append(epoch)
- ax0.plot(x_epoch, record['train_loss'], 'bo-', label='train')
- ax0.plot(x_epoch, record['test_loss'], 'ro-', label='val')
- ax1.plot(x_epoch, record['train_err'], 'bo-', label='train')
- ax1.plot(x_epoch, record['test_err'], 'ro-', label='val')
- if epoch == 0:
- ax0.legend()
- ax1.legend()
- fig.savefig("train.jpg")
-
-# lr decay
-def lr_decay():
- global optimizer
- for params in optimizer.param_groups:
- params['lr'] *= 0.1
- lr = params['lr']
- print("Learning rate adjusted to {}".format(lr))
-
-def main():
- for epoch in range(start_epoch, start_epoch+40):
- train_loss, train_err = train(epoch)
- test_loss, test_err = test(epoch)
- draw_curve(epoch, train_loss, train_err, test_loss, test_err)
- if (epoch+1)%20==0:
- lr_decay()
-
-
-if __name__ == '__main__':
- main()
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/deep_sort.py b/Yolov5-Deepsort/deep_sort/deep_sort/deep_sort.py
deleted file mode 100644
index 44f8746fd299527fd1129027e98435bf9f52f671..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/deep_sort.py
+++ /dev/null
@@ -1,101 +0,0 @@
-import numpy as np
-import torch
-import rich
-from .deep.feature_extractor import Extractor
-from .sort.nn_matching import NearestNeighborDistanceMetric
-from .sort.preprocessing import non_max_suppression
-from .sort.detection import Detection
-from .sort.tracker import Tracker
-
-
-__all__ = ['DeepSort']
-
-
-class DeepSort(object):
- def __init__(self, model_path, max_dist=0.2, min_confidence=0.3, nms_max_overlap=1.0, max_iou_distance=0.7, max_age=70, n_init=3, nn_budget=100, use_cuda=True):
- self.min_confidence = min_confidence
- self.nms_max_overlap = nms_max_overlap
-
- self.extractor = Extractor(model_path, use_cuda=use_cuda)
-
- max_cosine_distance = max_dist
- nn_budget = 100
- metric = NearestNeighborDistanceMetric(
- "cosine", max_cosine_distance, nn_budget)
- self.tracker = Tracker(
- metric, max_iou_distance=max_iou_distance, max_age=max_age, n_init=n_init)
-
- def update(self, bbox_xywh, confidences, clss, ori_img):
- self.height, self.width = ori_img.shape[:2]
- # generate detections
- features = self._get_features(bbox_xywh, ori_img)
- bbox_tlwh = self._xywh_to_tlwh(bbox_xywh)
- detections = [Detection(bbox_tlwh[i], clss[i], conf, features[i]) for i, conf in enumerate(
- confidences) if conf > self.min_confidence]
- # update tracker
- self.tracker.predict()
- self.tracker.update(detections)
-
- # output bbox identities
- outputs = []
- for track in self.tracker.tracks:
- if not track.is_confirmed() or track.time_since_update > 1:
- continue
- #rich.print(track)
- box = track.to_tlwh()
- x1, y1, x2, y2 = self._tlwh_to_xyxy(box)
- outputs.append((x1, y1, x2, y2, track.cls_, track.track_id))
- return outputs
-
- @staticmethod
- def _xywh_to_tlwh(bbox_xywh):
- if isinstance(bbox_xywh, np.ndarray):
- bbox_tlwh = bbox_xywh.copy()
- elif isinstance(bbox_xywh, torch.Tensor):
- bbox_tlwh = bbox_xywh.clone()
- if bbox_tlwh.size(0):
- bbox_tlwh[:, 0] = bbox_xywh[:, 0] - bbox_xywh[:, 2]/2.
- bbox_tlwh[:, 1] = bbox_xywh[:, 1] - bbox_xywh[:, 3]/2.
- return bbox_tlwh
-
- def _xywh_to_xyxy(self, bbox_xywh):
- x, y, w, h = bbox_xywh
- x1 = max(int(x-w/2), 0)
- x2 = min(int(x+w/2), self.width-1)
- y1 = max(int(y-h/2), 0)
- y2 = min(int(y+h/2), self.height-1)
- return x1, y1, x2, y2
-
- def _tlwh_to_xyxy(self, bbox_tlwh):
- """
- TODO:
- Convert bbox from xtl_ytl_w_h to xc_yc_w_h
- Thanks JieChen91@github.com for reporting this bug!
- """
- x, y, w, h = bbox_tlwh
- x1 = max(int(x), 0)
- x2 = min(int(x+w), self.width-1)
- y1 = max(int(y), 0)
- y2 = min(int(y+h), self.height-1)
- return x1, y1, x2, y2
-
- def _xyxy_to_tlwh(self, bbox_xyxy):
- x1, y1, x2, y2 = bbox_xyxy
-
- t = x1
- l = y1
- w = int(x2-x1)
- h = int(y2-y1)
- return t, l, w, h
-
- def _get_features(self, bbox_xywh, ori_img):
- im_crops = []
- for box in bbox_xywh:
- x1, y1, x2, y2 = self._xywh_to_xyxy(box)
- im = ori_img[y1:y2, x1:x2]
- im_crops.append(im)
- if im_crops:
- features = self.extractor(im_crops)
- else:
- features = np.array([])
- return features
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__init__.py b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/__init__.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/__init__.cpython-36.pyc
deleted file mode 100644
index 36e171093f09ddc15d4499eec4a66e20812cff97..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/__init__.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/__init__.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index 4bebfe9ced397e6106504e32996e3038daa8ad54..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/detection.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/detection.cpython-36.pyc
deleted file mode 100644
index 99c3d00c0ecda70d11f85180f2b6e0d032547963..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/detection.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/detection.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/detection.cpython-37.pyc
deleted file mode 100644
index 7204d92b15ceab7d1d0a10a5a1223287c24c79bb..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/detection.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/iou_matching.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/iou_matching.cpython-36.pyc
deleted file mode 100644
index 619fd5ecf730a1797348f490946b0d9c1e24abbc..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/iou_matching.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/iou_matching.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/iou_matching.cpython-37.pyc
deleted file mode 100644
index 8c64c06bee66440330de7652b3de146ce84fb5c3..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/iou_matching.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/kalman_filter.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/kalman_filter.cpython-36.pyc
deleted file mode 100644
index ce24a9dc97fb1bf111839bf23401a82c62e36f43..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/kalman_filter.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/kalman_filter.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/kalman_filter.cpython-37.pyc
deleted file mode 100644
index 9c9da039aa1cefa23a51be4f09af8801cb0a9dca..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/kalman_filter.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/linear_assignment.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/linear_assignment.cpython-36.pyc
deleted file mode 100644
index 576877feebd0c9886c96ce363d1ecea7b3154426..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/linear_assignment.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/linear_assignment.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/linear_assignment.cpython-37.pyc
deleted file mode 100644
index 2eb430b230c02722433b7c0063bcd3a43bcd8e0a..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/linear_assignment.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/nn_matching.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/nn_matching.cpython-36.pyc
deleted file mode 100644
index 5880fd28dfdd4ca064260d0a4d73b137c38a1551..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/nn_matching.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/nn_matching.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/nn_matching.cpython-37.pyc
deleted file mode 100644
index 981d42103f97947af3de456de2def6e79e487af8..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/nn_matching.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/preprocessing.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/preprocessing.cpython-36.pyc
deleted file mode 100644
index 387924cdd65d68679c404bef888996db765bd10f..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/preprocessing.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/preprocessing.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/preprocessing.cpython-37.pyc
deleted file mode 100644
index d4f78cf29fa7904b33710ab07efe4720e6984495..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/preprocessing.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/track.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/track.cpython-36.pyc
deleted file mode 100644
index 4df3d89025edfbd21799654426d98938824d94d6..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/track.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/track.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/track.cpython-37.pyc
deleted file mode 100644
index e64255c58c791c317e4e35c9119743e4b4e7f28f..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/track.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/tracker.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/tracker.cpython-36.pyc
deleted file mode 100644
index a7bbe68869cbdb735e34d29695718d0170ee0b0a..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/tracker.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/tracker.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/tracker.cpython-37.pyc
deleted file mode 100644
index d4b34b661f767b14aef6e01fa8a86f5a037bcdc7..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/deep_sort/sort/__pycache__/tracker.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/detection.py b/Yolov5-Deepsort/deep_sort/deep_sort/sort/detection.py
deleted file mode 100644
index 0c2c1ae42addc84cfd53bcfa3cdcc8885662ec44..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/sort/detection.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# vim: expandtab:ts=4:sw=4
-import numpy as np
-
-
-class Detection(object):
-
- def __init__(self, tlwh, cls_, confidence, feature):
- self.tlwh = np.asarray(tlwh, dtype=np.float)
- self.cls_ = cls_
- self.confidence = float(confidence)
- self.feature = np.asarray(feature, dtype=np.float32)
-
- def to_tlbr(self):
- """Convert bounding box to format `(min x, min y, max x, max y)`, i.e.,
- `(top left, bottom right)`.
- """
- ret = self.tlwh.copy()
- ret[2:] += ret[:2]
- return ret
-
- def to_xyah(self):
- """Convert bounding box to format `(center x, center y, aspect ratio,
- height)`, where the aspect ratio is `width / height`.
- """
- ret = self.tlwh.copy()
- ret[:2] += ret[2:] / 2
- ret[2] /= ret[3]
- return ret
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/iou_matching.py b/Yolov5-Deepsort/deep_sort/deep_sort/sort/iou_matching.py
deleted file mode 100644
index c4dd0b88391d2ac28036c7163d5d4c988d4a9c4c..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/sort/iou_matching.py
+++ /dev/null
@@ -1,81 +0,0 @@
-# vim: expandtab:ts=4:sw=4
-from __future__ import absolute_import
-import numpy as np
-from . import linear_assignment
-
-
-def iou(bbox, candidates):
- """Computer intersection over union.
-
- Parameters
- ----------
- bbox : ndarray
- A bounding box in format `(top left x, top left y, width, height)`.
- candidates : ndarray
- A matrix of candidate bounding boxes (one per row) in the same format
- as `bbox`.
-
- Returns
- -------
- ndarray
- The intersection over union in [0, 1] between the `bbox` and each
- candidate. A higher score means a larger fraction of the `bbox` is
- occluded by the candidate.
-
- """
- bbox_tl, bbox_br = bbox[:2], bbox[:2] + bbox[2:]
- candidates_tl = candidates[:, :2]
- candidates_br = candidates[:, :2] + candidates[:, 2:]
-
- tl = np.c_[np.maximum(bbox_tl[0], candidates_tl[:, 0])[:, np.newaxis],
- np.maximum(bbox_tl[1], candidates_tl[:, 1])[:, np.newaxis]]
- br = np.c_[np.minimum(bbox_br[0], candidates_br[:, 0])[:, np.newaxis],
- np.minimum(bbox_br[1], candidates_br[:, 1])[:, np.newaxis]]
- wh = np.maximum(0., br - tl)
-
- area_intersection = wh.prod(axis=1)
- area_bbox = bbox[2:].prod()
- area_candidates = candidates[:, 2:].prod(axis=1)
- return area_intersection / (area_bbox + area_candidates - area_intersection)
-
-
-def iou_cost(tracks, detections, track_indices=None,
- detection_indices=None):
- """An intersection over union distance metric.
-
- Parameters
- ----------
- tracks : List[deep_sort.track.Track]
- A list of tracks.
- detections : List[deep_sort.detection.Detection]
- A list of detections.
- track_indices : Optional[List[int]]
- A list of indices to tracks that should be matched. Defaults to
- all `tracks`.
- detection_indices : Optional[List[int]]
- A list of indices to detections that should be matched. Defaults
- to all `detections`.
-
- Returns
- -------
- ndarray
- Returns a cost matrix of shape
- len(track_indices), len(detection_indices) where entry (i, j) is
- `1 - iou(tracks[track_indices[i]], detections[detection_indices[j]])`.
-
- """
- if track_indices is None:
- track_indices = np.arange(len(tracks))
- if detection_indices is None:
- detection_indices = np.arange(len(detections))
-
- cost_matrix = np.zeros((len(track_indices), len(detection_indices)))
- for row, track_idx in enumerate(track_indices):
- if tracks[track_idx].time_since_update > 1:
- cost_matrix[row, :] = linear_assignment.INFTY_COST
- continue
-
- bbox = tracks[track_idx].to_tlwh()
- candidates = np.asarray([detections[i].tlwh for i in detection_indices])
- cost_matrix[row, :] = 1. - iou(bbox, candidates)
- return cost_matrix
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/kalman_filter.py b/Yolov5-Deepsort/deep_sort/deep_sort/sort/kalman_filter.py
deleted file mode 100644
index 787a76e6a43870a9538647b51fda6a5254ce2d43..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/sort/kalman_filter.py
+++ /dev/null
@@ -1,229 +0,0 @@
-# vim: expandtab:ts=4:sw=4
-import numpy as np
-import scipy.linalg
-
-
-"""
-Table for the 0.95 quantile of the chi-square distribution with N degrees of
-freedom (contains values for N=1, ..., 9). Taken from MATLAB/Octave's chi2inv
-function and used as Mahalanobis gating threshold.
-"""
-chi2inv95 = {
- 1: 3.8415,
- 2: 5.9915,
- 3: 7.8147,
- 4: 9.4877,
- 5: 11.070,
- 6: 12.592,
- 7: 14.067,
- 8: 15.507,
- 9: 16.919}
-
-
-class KalmanFilter(object):
- """
- A simple Kalman filter for tracking bounding boxes in image space.
-
- The 8-dimensional state space
-
- x, y, a, h, vx, vy, va, vh
-
- contains the bounding box center position (x, y), aspect ratio a, height h,
- and their respective velocities.
-
- Object motion follows a constant velocity model. The bounding box location
- (x, y, a, h) is taken as direct observation of the state space (linear
- observation model).
-
- """
-
- def __init__(self):
- ndim, dt = 4, 1.
-
- # Create Kalman filter model matrices.
- self._motion_mat = np.eye(2 * ndim, 2 * ndim)
- for i in range(ndim):
- self._motion_mat[i, ndim + i] = dt
- self._update_mat = np.eye(ndim, 2 * ndim)
-
- # Motion and observation uncertainty are chosen relative to the current
- # state estimate. These weights control the amount of uncertainty in
- # the model. This is a bit hacky.
- self._std_weight_position = 1. / 20
- self._std_weight_velocity = 1. / 160
-
- def initiate(self, measurement):
- """Create track from unassociated measurement.
-
- Parameters
- ----------
- measurement : ndarray
- Bounding box coordinates (x, y, a, h) with center position (x, y),
- aspect ratio a, and height h.
-
- Returns
- -------
- (ndarray, ndarray)
- Returns the mean vector (8 dimensional) and covariance matrix (8x8
- dimensional) of the new track. Unobserved velocities are initialized
- to 0 mean.
-
- """
- mean_pos = measurement
- mean_vel = np.zeros_like(mean_pos)
- mean = np.r_[mean_pos, mean_vel]
-
- std = [
- 2 * self._std_weight_position * measurement[3],
- 2 * self._std_weight_position * measurement[3],
- 1e-2,
- 2 * self._std_weight_position * measurement[3],
- 10 * self._std_weight_velocity * measurement[3],
- 10 * self._std_weight_velocity * measurement[3],
- 1e-5,
- 10 * self._std_weight_velocity * measurement[3]]
- covariance = np.diag(np.square(std))
- return mean, covariance
-
- def predict(self, mean, covariance):
- """Run Kalman filter prediction step.
-
- Parameters
- ----------
- mean : ndarray
- The 8 dimensional mean vector of the object state at the previous
- time step.
- covariance : ndarray
- The 8x8 dimensional covariance matrix of the object state at the
- previous time step.
-
- Returns
- -------
- (ndarray, ndarray)
- Returns the mean vector and covariance matrix of the predicted
- state. Unobserved velocities are initialized to 0 mean.
-
- """
- std_pos = [
- self._std_weight_position * mean[3],
- self._std_weight_position * mean[3],
- 1e-2,
- self._std_weight_position * mean[3]]
- std_vel = [
- self._std_weight_velocity * mean[3],
- self._std_weight_velocity * mean[3],
- 1e-5,
- self._std_weight_velocity * mean[3]]
- motion_cov = np.diag(np.square(np.r_[std_pos, std_vel]))
-
- mean = np.dot(self._motion_mat, mean)
- covariance = np.linalg.multi_dot((
- self._motion_mat, covariance, self._motion_mat.T)) + motion_cov
-
- return mean, covariance
-
- def project(self, mean, covariance):
- """Project state distribution to measurement space.
-
- Parameters
- ----------
- mean : ndarray
- The state's mean vector (8 dimensional array).
- covariance : ndarray
- The state's covariance matrix (8x8 dimensional).
-
- Returns
- -------
- (ndarray, ndarray)
- Returns the projected mean and covariance matrix of the given state
- estimate.
-
- """
- std = [
- self._std_weight_position * mean[3],
- self._std_weight_position * mean[3],
- 1e-1,
- self._std_weight_position * mean[3]]
- innovation_cov = np.diag(np.square(std))
-
- mean = np.dot(self._update_mat, mean)
- covariance = np.linalg.multi_dot((
- self._update_mat, covariance, self._update_mat.T))
- return mean, covariance + innovation_cov
-
- def update(self, mean, covariance, measurement):
- """Run Kalman filter correction step.
-
- Parameters
- ----------
- mean : ndarray
- The predicted state's mean vector (8 dimensional).
- covariance : ndarray
- The state's covariance matrix (8x8 dimensional).
- measurement : ndarray
- The 4 dimensional measurement vector (x, y, a, h), where (x, y)
- is the center position, a the aspect ratio, and h the height of the
- bounding box.
-
- Returns
- -------
- (ndarray, ndarray)
- Returns the measurement-corrected state distribution.
-
- """
- projected_mean, projected_cov = self.project(mean, covariance)
-
- chol_factor, lower = scipy.linalg.cho_factor(
- projected_cov, lower=True, check_finite=False)
- kalman_gain = scipy.linalg.cho_solve(
- (chol_factor, lower), np.dot(covariance, self._update_mat.T).T,
- check_finite=False).T
- innovation = measurement - projected_mean
-
- new_mean = mean + np.dot(innovation, kalman_gain.T)
- new_covariance = covariance - np.linalg.multi_dot((
- kalman_gain, projected_cov, kalman_gain.T))
- return new_mean, new_covariance
-
- def gating_distance(self, mean, covariance, measurements,
- only_position=False):
- """Compute gating distance between state distribution and measurements.
-
- A suitable distance threshold can be obtained from `chi2inv95`. If
- `only_position` is False, the chi-square distribution has 4 degrees of
- freedom, otherwise 2.
-
- Parameters
- ----------
- mean : ndarray
- Mean vector over the state distribution (8 dimensional).
- covariance : ndarray
- Covariance of the state distribution (8x8 dimensional).
- measurements : ndarray
- An Nx4 dimensional matrix of N measurements, each in
- format (x, y, a, h) where (x, y) is the bounding box center
- position, a the aspect ratio, and h the height.
- only_position : Optional[bool]
- If True, distance computation is done with respect to the bounding
- box center position only.
-
- Returns
- -------
- ndarray
- Returns an array of length N, where the i-th element contains the
- squared Mahalanobis distance between (mean, covariance) and
- `measurements[i]`.
-
- """
- mean, covariance = self.project(mean, covariance)
- if only_position:
- mean, covariance = mean[:2], covariance[:2, :2]
- measurements = measurements[:, :2]
-
- cholesky_factor = np.linalg.cholesky(covariance)
- d = measurements - mean
- z = scipy.linalg.solve_triangular(
- cholesky_factor, d.T, lower=True, check_finite=False,
- overwrite_b=True)
- squared_maha = np.sum(z * z, axis=0)
- return squared_maha
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/linear_assignment.py b/Yolov5-Deepsort/deep_sort/deep_sort/sort/linear_assignment.py
deleted file mode 100644
index 2006230c960fa07b128b39187cb5df2775300544..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/sort/linear_assignment.py
+++ /dev/null
@@ -1,159 +0,0 @@
-# vim: expandtab:ts=4:sw=4
-from __future__ import absolute_import
-import numpy as np
-# from sklearn.utils.linear_assignment_ import linear_assignment
-from scipy.optimize import linear_sum_assignment as linear_assignment
-from . import kalman_filter
-
-
-INFTY_COST = 1e+5
-
-
-def min_cost_matching(
- distance_metric, max_distance, tracks, detections, track_indices=None,
- detection_indices=None):
- if track_indices is None:
- track_indices = np.arange(len(tracks))
- if detection_indices is None:
- detection_indices = np.arange(len(detections))
-
- if len(detection_indices) == 0 or len(track_indices) == 0:
- return [], track_indices, detection_indices # Nothing to match.
-
- cost_matrix = distance_metric(
- tracks, detections, track_indices, detection_indices)
- cost_matrix[cost_matrix > max_distance] = max_distance + 1e-5
-
- row_indices, col_indices = linear_assignment(cost_matrix)
-
- matches, unmatched_tracks, unmatched_detections = [], [], []
- for col, detection_idx in enumerate(detection_indices):
- if col not in col_indices:
- unmatched_detections.append(detection_idx)
- for row, track_idx in enumerate(track_indices):
- if row not in row_indices:
- unmatched_tracks.append(track_idx)
- for row, col in zip(row_indices, col_indices):
- track_idx = track_indices[row]
- detection_idx = detection_indices[col]
- if cost_matrix[row, col] > max_distance:
- unmatched_tracks.append(track_idx)
- unmatched_detections.append(detection_idx)
- else:
- matches.append((track_idx, detection_idx))
- return matches, unmatched_tracks, unmatched_detections
-
-
-def matching_cascade(
- distance_metric, max_distance, cascade_depth, tracks, detections,
- track_indices=None, detection_indices=None):
- """Run matching cascade.
-
- Parameters
- ----------
- distance_metric : Callable[List[Track], List[Detection], List[int], List[int]) -> ndarray
- The distance metric is given a list of tracks and detections as well as
- a list of N track indices and M detection indices. The metric should
- return the NxM dimensional cost matrix, where element (i, j) is the
- association cost between the i-th track in the given track indices and
- the j-th detection in the given detection indices.
- max_distance : float
- Gating threshold. Associations with cost larger than this value are
- disregarded.
- cascade_depth: int
- The cascade depth, should be se to the maximum track age.
- tracks : List[track.Track]
- A list of predicted tracks at the current time step.
- detections : List[detection.Detection]
- A list of detections at the current time step.
- track_indices : Optional[List[int]]
- List of track indices that maps rows in `cost_matrix` to tracks in
- `tracks` (see description above). Defaults to all tracks.
- detection_indices : Optional[List[int]]
- List of detection indices that maps columns in `cost_matrix` to
- detections in `detections` (see description above). Defaults to all
- detections.
-
- Returns
- -------
- (List[(int, int)], List[int], List[int])
- Returns a tuple with the following three entries:
- * A list of matched track and detection indices.
- * A list of unmatched track indices.
- * A list of unmatched detection indices.
-
- """
- if track_indices is None:
- track_indices = list(range(len(tracks)))
- if detection_indices is None:
- detection_indices = list(range(len(detections)))
-
- unmatched_detections = detection_indices
- matches = []
- for level in range(cascade_depth):
- if len(unmatched_detections) == 0: # No detections left
- break
-
- track_indices_l = [
- k for k in track_indices
- if tracks[k].time_since_update == 1 + level
- ]
- if len(track_indices_l) == 0: # Nothing to match at this level
- continue
-
- matches_l, _, unmatched_detections = \
- min_cost_matching(
- distance_metric, max_distance, tracks, detections,
- track_indices_l, unmatched_detections)
- matches += matches_l
- unmatched_tracks = list(set(track_indices) - set(k for k, _ in matches))
- return matches, unmatched_tracks, unmatched_detections
-
-
-def gate_cost_matrix(
- kf, cost_matrix, tracks, detections, track_indices, detection_indices,
- gated_cost=INFTY_COST, only_position=False):
- """Invalidate infeasible entries in cost matrix based on the state
- distributions obtained by Kalman filtering.
-
- Parameters
- ----------
- kf : The Kalman filter.
- cost_matrix : ndarray
- The NxM dimensional cost matrix, where N is the number of track indices
- and M is the number of detection indices, such that entry (i, j) is the
- association cost between `tracks[track_indices[i]]` and
- `detections[detection_indices[j]]`.
- tracks : List[track.Track]
- A list of predicted tracks at the current time step.
- detections : List[detection.Detection]
- A list of detections at the current time step.
- track_indices : List[int]
- List of track indices that maps rows in `cost_matrix` to tracks in
- `tracks` (see description above).
- detection_indices : List[int]
- List of detection indices that maps columns in `cost_matrix` to
- detections in `detections` (see description above).
- gated_cost : Optional[float]
- Entries in the cost matrix corresponding to infeasible associations are
- set this value. Defaults to a very large value.
- only_position : Optional[bool]
- If True, only the x, y position of the state distribution is considered
- during gating. Defaults to False.
-
- Returns
- -------
- ndarray
- Returns the modified cost matrix.
-
- """
- gating_dim = 2 if only_position else 4
- gating_threshold = kalman_filter.chi2inv95[gating_dim]
- measurements = np.asarray(
- [detections[i].to_xyah() for i in detection_indices])
- for row, track_idx in enumerate(track_indices):
- track = tracks[track_idx]
- gating_distance = kf.gating_distance(
- track.mean, track.covariance, measurements, only_position)
- cost_matrix[row, gating_distance > gating_threshold] = gated_cost
- return cost_matrix
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/nn_matching.py b/Yolov5-Deepsort/deep_sort/deep_sort/sort/nn_matching.py
deleted file mode 100644
index 2e7bfea4b87b0c256274937c8323ffc93fa5d61b..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/sort/nn_matching.py
+++ /dev/null
@@ -1,177 +0,0 @@
-# vim: expandtab:ts=4:sw=4
-import numpy as np
-
-
-def _pdist(a, b):
- """Compute pair-wise squared distance between points in `a` and `b`.
-
- Parameters
- ----------
- a : array_like
- An NxM matrix of N samples of dimensionality M.
- b : array_like
- An LxM matrix of L samples of dimensionality M.
-
- Returns
- -------
- ndarray
- Returns a matrix of size len(a), len(b) such that eleement (i, j)
- contains the squared distance between `a[i]` and `b[j]`.
-
- """
- a, b = np.asarray(a), np.asarray(b)
- if len(a) == 0 or len(b) == 0:
- return np.zeros((len(a), len(b)))
- a2, b2 = np.square(a).sum(axis=1), np.square(b).sum(axis=1)
- r2 = -2. * np.dot(a, b.T) + a2[:, None] + b2[None, :]
- r2 = np.clip(r2, 0., float(np.inf))
- return r2
-
-
-def _cosine_distance(a, b, data_is_normalized=False):
- """Compute pair-wise cosine distance between points in `a` and `b`.
-
- Parameters
- ----------
- a : array_like
- An NxM matrix of N samples of dimensionality M.
- b : array_like
- An LxM matrix of L samples of dimensionality M.
- data_is_normalized : Optional[bool]
- If True, assumes rows in a and b are unit length vectors.
- Otherwise, a and b are explicitly normalized to lenght 1.
-
- Returns
- -------
- ndarray
- Returns a matrix of size len(a), len(b) such that eleement (i, j)
- contains the squared distance between `a[i]` and `b[j]`.
-
- """
- if not data_is_normalized:
- a = np.asarray(a) / np.linalg.norm(a, axis=1, keepdims=True)
- b = np.asarray(b) / np.linalg.norm(b, axis=1, keepdims=True)
- return 1. - np.dot(a, b.T)
-
-
-def _nn_euclidean_distance(x, y):
- """ Helper function for nearest neighbor distance metric (Euclidean).
-
- Parameters
- ----------
- x : ndarray
- A matrix of N row-vectors (sample points).
- y : ndarray
- A matrix of M row-vectors (query points).
-
- Returns
- -------
- ndarray
- A vector of length M that contains for each entry in `y` the
- smallest Euclidean distance to a sample in `x`.
-
- """
- distances = _pdist(x, y)
- return np.maximum(0.0, distances.min(axis=0))
-
-
-def _nn_cosine_distance(x, y):
- """ Helper function for nearest neighbor distance metric (cosine).
-
- Parameters
- ----------
- x : ndarray
- A matrix of N row-vectors (sample points).
- y : ndarray
- A matrix of M row-vectors (query points).
-
- Returns
- -------
- ndarray
- A vector of length M that contains for each entry in `y` the
- smallest cosine distance to a sample in `x`.
-
- """
- distances = _cosine_distance(x, y)
- return distances.min(axis=0)
-
-
-class NearestNeighborDistanceMetric(object):
- """
- A nearest neighbor distance metric that, for each target, returns
- the closest distance to any sample that has been observed so far.
-
- Parameters
- ----------
- metric : str
- Either "euclidean" or "cosine".
- matching_threshold: float
- The matching threshold. Samples with larger distance are considered an
- invalid match.
- budget : Optional[int]
- If not None, fix samples per class to at most this number. Removes
- the oldest samples when the budget is reached.
-
- Attributes
- ----------
- samples : Dict[int -> List[ndarray]]
- A dictionary that maps from target identities to the list of samples
- that have been observed so far.
-
- """
-
- def __init__(self, metric, matching_threshold, budget=None):
-
-
- if metric == "euclidean":
- self._metric = _nn_euclidean_distance
- elif metric == "cosine":
- self._metric = _nn_cosine_distance
- else:
- raise ValueError(
- "Invalid metric; must be either 'euclidean' or 'cosine'")
- self.matching_threshold = matching_threshold
- self.budget = budget
- self.samples = {}
-
- def partial_fit(self, features, targets, active_targets):
- """Update the distance metric with new data.
-
- Parameters
- ----------
- features : ndarray
- An NxM matrix of N features of dimensionality M.
- targets : ndarray
- An integer array of associated target identities.
- active_targets : List[int]
- A list of targets that are currently present in the scene.
-
- """
- for feature, target in zip(features, targets):
- self.samples.setdefault(target, []).append(feature)
- if self.budget is not None:
- self.samples[target] = self.samples[target][-self.budget:]
- self.samples = {k: self.samples[k] for k in active_targets}
-
- def distance(self, features, targets):
- """Compute distance between features and targets.
-
- Parameters
- ----------
- features : ndarray
- An NxM matrix of N features of dimensionality M.
- targets : List[int]
- A list of targets to match the given `features` against.
-
- Returns
- -------
- ndarray
- Returns a cost matrix of shape len(targets), len(features), where
- element (i, j) contains the closest squared distance between
- `targets[i]` and `features[j]`.
-
- """
- cost_matrix = np.zeros((len(targets), len(features)))
- for i, target in enumerate(targets):
- cost_matrix[i, :] = self._metric(self.samples[target], features)
- return cost_matrix
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/preprocessing.py b/Yolov5-Deepsort/deep_sort/deep_sort/sort/preprocessing.py
deleted file mode 100644
index 5493b127f602dec398efac4269c00d31a3650ce9..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/sort/preprocessing.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# vim: expandtab:ts=4:sw=4
-import numpy as np
-import cv2
-
-
-def non_max_suppression(boxes, max_bbox_overlap, scores=None):
- """Suppress overlapping detections.
-
- Original code from [1]_ has been adapted to include confidence score.
-
- .. [1] http://www.pyimagesearch.com/2015/02/16/
- faster-non-maximum-suppression-python/
-
- Examples
- --------
-
- >>> boxes = [d.roi for d in detections]
- >>> scores = [d.confidence for d in detections]
- >>> indices = non_max_suppression(boxes, max_bbox_overlap, scores)
- >>> detections = [detections[i] for i in indices]
-
- Parameters
- ----------
- boxes : ndarray
- Array of ROIs (x, y, width, height).
- max_bbox_overlap : float
- ROIs that overlap more than this values are suppressed.
- scores : Optional[array_like]
- Detector confidence score.
-
- Returns
- -------
- List[int]
- Returns indices of detections that have survived non-maxima suppression.
-
- """
- if len(boxes) == 0:
- return []
-
- boxes = boxes.astype(np.float)
- pick = []
-
- x1 = boxes[:, 0]
- y1 = boxes[:, 1]
- x2 = boxes[:, 2] + boxes[:, 0]
- y2 = boxes[:, 3] + boxes[:, 1]
-
- area = (x2 - x1 + 1) * (y2 - y1 + 1)
- if scores is not None:
- idxs = np.argsort(scores)
- else:
- idxs = np.argsort(y2)
-
- while len(idxs) > 0:
- last = len(idxs) - 1
- i = idxs[last]
- pick.append(i)
-
- xx1 = np.maximum(x1[i], x1[idxs[:last]])
- yy1 = np.maximum(y1[i], y1[idxs[:last]])
- xx2 = np.minimum(x2[i], x2[idxs[:last]])
- yy2 = np.minimum(y2[i], y2[idxs[:last]])
-
- w = np.maximum(0, xx2 - xx1 + 1)
- h = np.maximum(0, yy2 - yy1 + 1)
-
- overlap = (w * h) / area[idxs[:last]]
-
- idxs = np.delete(
- idxs, np.concatenate(
- ([last], np.where(overlap > max_bbox_overlap)[0])))
-
- return pick
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/track.py b/Yolov5-Deepsort/deep_sort/deep_sort/sort/track.py
deleted file mode 100644
index e46d391a1bd7667d3e9fe52d88fe8de51c2e70ac..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/sort/track.py
+++ /dev/null
@@ -1,168 +0,0 @@
-# vim: expandtab:ts=4:sw=4
-
-
-class TrackState:
- """
- Enumeration type for the single target track state. Newly created tracks are
- classified as `tentative` until enough evidence has been collected. Then,
- the track state is changed to `confirmed`. Tracks that are no longer alive
- are classified as `deleted` to mark them for removal from the set of active
- tracks.
-
- """
-
- Tentative = 1
- Confirmed = 2
- Deleted = 3
-
-
-class Track:
- """
- A single target track with state space `(x, y, a, h)` and associated
- velocities, where `(x, y)` is the center of the bounding box, `a` is the
- aspect ratio and `h` is the height.
-
- Parameters
- ----------
- mean : ndarray
- Mean vector of the initial state distribution.
- covariance : ndarray
- Covariance matrix of the initial state distribution.
- track_id : int
- A unique track identifier.
- n_init : int
- Number of consecutive detections before the track is confirmed. The
- track state is set to `Deleted` if a miss occurs within the first
- `n_init` frames.
- max_age : int
- The maximum number of consecutive misses before the track state is
- set to `Deleted`.
- feature : Optional[ndarray]
- Feature vector of the detection this track originates from. If not None,
- this feature is added to the `features` cache.
-
- Attributes
- ----------
- mean : ndarray
- Mean vector of the initial state distribution.
- covariance : ndarray
- Covariance matrix of the initial state distribution.
- track_id : int
- A unique track identifier.
- hits : int
- Total number of measurement updates.
- age : int
- Total number of frames since first occurance.
- time_since_update : int
- Total number of frames since last measurement update.
- state : TrackState
- The current track state.
- features : List[ndarray]
- A cache of features. On each measurement update, the associated feature
- vector is added to this list.
-
- """
-
- def __init__(self, mean, cls_, covariance, track_id, n_init, max_age,
- feature=None):
- self.mean = mean
- self.cls_ = cls_
- self.covariance = covariance
- self.track_id = track_id
- self.hits = 1
- self.age = 1
- self.time_since_update = 0
-
- self.state = TrackState.Tentative
- self.features = []
- if feature is not None:
- self.features.append(feature)
-
- self._n_init = n_init
- self._max_age = max_age
-
- def to_tlwh(self):
- """Get current position in bounding box format `(top left x, top left y,
- width, height)`.
-
- Returns
- -------
- ndarray
- The bounding box.
-
- """
- ret = self.mean[:4].copy()
- ret[2] *= ret[3]
- ret[:2] -= ret[2:] / 2
- return ret
-
- def to_tlbr(self):
- """Get current position in bounding box format `(min x, miny, max x,
- max y)`.
-
- Returns
- -------
- ndarray
- The bounding box.
-
- """
- ret = self.to_tlwh()
- ret[2:] = ret[:2] + ret[2:]
- return ret
-
- def predict(self, kf):
- """Propagate the state distribution to the current time step using a
- Kalman filter prediction step.
-
- Parameters
- ----------
- kf : kalman_filter.KalmanFilter
- The Kalman filter.
-
- """
- self.mean, self.covariance = kf.predict(self.mean, self.covariance)
- self.age += 1
- self.time_since_update += 1
-
- def update(self, kf, detection):
- """Perform Kalman filter measurement update step and update the feature
- cache.
-
- Parameters
- ----------
- kf : kalman_filter.KalmanFilter
- The Kalman filter.
- detection : Detection
- The associated detection.
-
- """
- self.mean, self.covariance = kf.update(
- self.mean, self.covariance, detection.to_xyah())
- self.features.append(detection.feature)
- self.cls_ = detection.cls_
-
- self.hits += 1
- self.time_since_update = 0
- if self.state == TrackState.Tentative and self.hits >= self._n_init:
- self.state = TrackState.Confirmed
-
- def mark_missed(self):
- """Mark this track as missed (no association at the current time step).
- """
- if self.state == TrackState.Tentative:
- self.state = TrackState.Deleted
- elif self.time_since_update > self._max_age:
- self.state = TrackState.Deleted
-
- def is_tentative(self):
- """Returns True if this track is tentative (unconfirmed).
- """
- return self.state == TrackState.Tentative
-
- def is_confirmed(self):
- """Returns True if this track is confirmed."""
- return self.state == TrackState.Confirmed
-
- def is_deleted(self):
- """Returns True if this track is dead and should be deleted."""
- return self.state == TrackState.Deleted
diff --git a/Yolov5-Deepsort/deep_sort/deep_sort/sort/tracker.py b/Yolov5-Deepsort/deep_sort/deep_sort/sort/tracker.py
deleted file mode 100644
index d27c9b35d298744f43b2466b45b793677712346b..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/deep_sort/sort/tracker.py
+++ /dev/null
@@ -1,435 +0,0 @@
-# vim: expandtab:ts=4:sw=4
-from __future__ import absolute_import
-import numpy as np
-from . import kalman_filter
-from . import linear_assignment
-from .detection import Detection
-from . import iou_matching
-from .track import Track
-import rich
-
-class Tracker:
-
- def __init__(self, metric, max_iou_distance=0.7, max_age=70, n_init=3, window_size=10):
- self.metric = metric
- self.max_iou_distance = max_iou_distance
- self.max_age = max_age
- self.n_init = n_init
-
- self.kf = kalman_filter.KalmanFilter()
- self.tracks = []
- self._next_id = 1
-
-
- # DDM parameters
- self.match_history = [] # Store match history
- self.evidence_threshold = 3 # Example threshold
- self.window_size = window_size
- self.evidence = {} # Initialize evidence dictionary
- self.DDM = DDM()
-
-
- def predict(self):
- """Propagate track state distributions one time step forward.
-
- This function should be called once every time step, before `update`.
- """
- for track in self.tracks:
- track.predict(self.kf)
-
- def update(self, detections):
- """Perform measurement update and track management.
-
- Parameters
- ----------
- detections : List[deep_sort.detection.Detection]
- A list of detections at the current time step.
-
- """
-
- # matches, unmatched_tracks, unmatched_detections = self._match(detections)
-
- # # Record current matches
- # self.match_history.append(matches)
- # if len(self.match_history) > self.window_size:
- # self.match_history.pop(0)
-
- # # Use evidence accumulation to finalize matches
- # final_matches = self.accumulate_evidence(matches)
-
- # # Update track set with final matches
- # for track_idx, detection_idx in final_matches:
-
- # self.tracks[track_idx].update(self.kf, detections[detection_idx])
- # for track_idx in unmatched_tracks:
- # self.tracks[track_idx].mark_missed()
- # for detection_idx in unmatched_detections:
- # self._initiate_track(detections[detection_idx])
- # self.tracks = [t for t in self.tracks if not t.is_deleted()]
-
- # # Update distance metric
- # active_targets = [t.track_id for t in self.tracks if t.is_confirmed()]
- # features, targets = [], []
- # for track in self.tracks:
- # if not track.is_confirmed():
- # continue
- # features += track.features
- # targets += [track.track_id for _ in track.features]
- # track.features = []
- # self.metric.partial_fit(
- # np.asarray(features), np.asarray(targets), active_targets)
- ####################################################################################
- # Run matching cascade.
- matches, unmatched_tracks, unmatched_detections = \
- self._match(detections)
-
- #开始为DDM积累证据喵
- self.DDM.add_matches(matches)
- self.DDM.add_detections(detections=detections)
- self.DDM.add_tracks(self.tracks)
- self.DDM.remove_old()
- self.DDM.log_info()
- final_matches, new_unmatched_tracks, new_unmatched_detections = self.DDM.final_judge()
- matches = final_matches
- for new_unmatched_track in new_unmatched_tracks:
- unmatched_tracks.append(new_unmatched_track)
- for new_unmatched_detection in new_unmatched_detections:
- unmatched_detections.append(new_unmatched_detection)
- #self.DDM.final_judge()
- #rich.print(matches,unmatched_detections,unmatched_tracks)
-
- # Record current matches
- self.match_history.append(matches)
- if len(self.match_history) > self.window_size:
- self.match_history.pop(0)
-
- # Update track set.
- for track_idx, detection_idx in matches:
- self.tracks[track_idx].update(
- self.kf, detections[detection_idx])
- for track_idx in unmatched_tracks:
- self.tracks[track_idx].mark_missed()
- for detection_idx in unmatched_detections:
- self._initiate_track(detections[detection_idx])
- self.tracks = [t for t in self.tracks if not t.is_deleted()]
-
- # Update distance metric.
- active_targets = [t.track_id for t in self.tracks if t.is_confirmed()]
- features, targets = [], []
- for track in self.tracks:
- if not track.is_confirmed():
- continue
- features += track.features
- targets += [track.track_id for _ in track.features]
- track.features = []
- self.metric.partial_fit(
- np.asarray(features), np.asarray(targets), active_targets)
-
- def _match(self, detections):
-
- def gated_metric(tracks, dets, track_indices, detection_indices):
- features = np.array([dets[i].feature for i in detection_indices])
- targets = np.array([tracks[i].track_id for i in track_indices])
- cost_matrix = self.metric.distance(features, targets)
- cost_matrix = linear_assignment.gate_cost_matrix(
- self.kf, cost_matrix, tracks, dets, track_indices,
- detection_indices)
-
-
-
- return cost_matrix
-
- # Split track set into confirmed and unconfirmed tracks.
- confirmed_tracks = [
- i for i, t in enumerate(self.tracks) if t.is_confirmed()]
- unconfirmed_tracks = [
- i for i, t in enumerate(self.tracks) if not t.is_confirmed()]
-
- # Associate confirmed tracks using appearance features.
- matches_a, unmatched_tracks_a, unmatched_detections = \
- linear_assignment.matching_cascade(
- gated_metric, self.metric.matching_threshold, self.max_age,
- self.tracks, detections, confirmed_tracks)
-
- # Associate remaining tracks together with unconfirmed tracks using IOU.
- iou_track_candidates = unconfirmed_tracks + [
- k for k in unmatched_tracks_a if
- self.tracks[k].time_since_update == 1]
- unmatched_tracks_a = [
- k for k in unmatched_tracks_a if
- self.tracks[k].time_since_update != 1]
- matches_b, unmatched_tracks_b, unmatched_detections = \
- linear_assignment.min_cost_matching(
- iou_matching.iou_cost, self.max_iou_distance, self.tracks,
- detections, iou_track_candidates, unmatched_detections)
- matches = matches_a + matches_b
- unmatched_tracks = list(set(unmatched_tracks_a + unmatched_tracks_b))
-
-
-
- return matches, unmatched_tracks, unmatched_detections
-
- def _initiate_track(self, detection):
- mean, covariance = self.kf.initiate(detection.to_xyah())
- self.tracks.append(Track(
- mean, detection.cls_, covariance, self._next_id, self.n_init, self.max_age,
- detection.feature))
- self._next_id += 1
-
-
-
-
- def accumulate_evidence(self, current_matches):
- rich.print(current_matches)
- return current_matches
- evidence = {}
-
- # 初始化evidence字典,包含所有可能的匹配对,包括不在current_matches中的
- for past_matches in reversed(self.match_history):
- for track_idx, det_idx in past_matches:
- evidence[(track_idx, det_idx)] = evidence.get((track_idx, det_idx), 0)
-
- # 初始化current_matches中的匹配对
- for track_idx, det_idx in current_matches:
- evidence[(track_idx, det_idx)] = 1 # 初始分数为1
-
- # 积累证据
- for past_matches in reversed(self.match_history):
- for track_idx, det_idx in past_matches:
- evidence[(track_idx, det_idx)] += 10 # 如果在过去的匹配中出现过,则增加1分
-
- # 调整证据
- for key in evidence:
- evidence[key] -= 0.2 # 所有匹配对减去0.2分
-
- # 过滤匹配
- final_matches = [
- (track_idx, det_idx) for (track_idx, det_idx), score in evidence.items()
- if score >= self.evidence_threshold
- ]
-
- return final_matches
-
-
-class DDM:
- def __init__(self, history_lenth = 10, threshold = 5, evidence_rate = 1):
- self.history_lenth = history_lenth
- self.threshold = threshold
- self.evidence_rate = evidence_rate
- self.history_detections =[]
- self.history_tracks =[]
- self.history_matches = []
- self.frame_id = 0
-
- def add_detections(self, detections):
- if detections is None:
- detections = []
- self.history_detections.append(detections)
- # self.remove_old()
-
- def add_matches(self, matches):
- if matches is None:
- matches = []
- self.history_matches.append(matches)
- # self.remove_old()
-
- def add_tracks(self, tracks):
- if tracks is None:
- tracks = []
- self.history_tracks.append(tracks)
- # self.remove_old()
-
- def log_info(self):
- # rich.print("DDM当前长度",len(self.history_matches))
- # rich.print("DDM历史匹配:",self.history_matches[-1])
- # rich.print("DDM历史Detecions:",self.history_detections[-1])
- # rich.print("DDM历史Tracks:", self.history_tracks[-1])
- # rich.print("随便一组的tlbr")
- if self.frame_id>5:
- self.total_detection_match()
- rich.print("-------------------------------------------------------------")
- self.total_track_match()
- #self.final_judge()
- self.frame_id = self.frame_id+1
-
-
-
-
- def remove_old(self):
- if len(self.history_detections)!=len(self.history_matches) or len(self.history_detections)!=len(self.history_tracks):
- rich.print("DDM历史长度不匹配,请检查代码捏qaq")
- rich.print("Detection长度", len(self.history_detections))
- rich.print("Matches长度", len(self.history_matches))
- rich.print("Tracks长度", len(self.history_tracks))
-
- while True:
- if len(self.history_matches) > self.history_lenth:
- self.history_matches.pop(0)
- self.history_detections.pop(0)
- self.history_tracks.pop(0)
- else:
- break
-
- def total_detection_match(self):
- #current_detection = self.history_detections[-1]
- output = []
- for current_detection in self.history_detections[-1]:
- detection_result=[]
- for track in self.history_tracks:
- track_matches = []
- for detection in track:
- match = self.iou_match(current_detection, detection)
- track_matches.append(match)
- detection_result.append(track_matches)
- output.append(detection_result)
- #rich.print(output)
- return output
-
- def total_track_match(self):
- output = []
- for current_track in self.history_tracks[-1]:
- detection_result=[]
- for tracks in self.history_tracks:
- track_matches = []
- for track in tracks:
- match = self.iou_match(current_track, track)
- track_matches.append(match)
- detection_result.append(track_matches)
- output.append(detection_result)
- # rich.print(output)
- return output
-
-
-
-
- def final_judge(self):#最终裁决
- if self.frame_id<10:
- return self.history_matches[-1],[],[]
- current_detections = self.history_detections[-1]
- current_tracks = self.history_tracks[-1]
- current_matches = self.history_matches
- iou_detection_history_tracks_result = self.total_detection_match()
- iou_track_history_tracks_result = self.total_track_match()
-
- iou_detection_history_tracks_result = [sublist[::-1] for sublist in iou_detection_history_tracks_result]
- iou_track_history_tracks_result = [sublist[::-1] for sublist in iou_track_history_tracks_result]
- #iou_detection_history_tracks_result.reverse()
- #iou_track_history_tracks_result.reverse()
-
-
- evidence = {}
-
- #证据初始化捏
-
- # final_evidence = 0
-
- for now_detection_id, now_detection_id_detections in enumerate(iou_detection_history_tracks_result):
- for now_track_id, now_track_id_tracks in enumerate(iou_track_history_tracks_result):
- result_matrix = self.logical_and_lists(now_detection_id_detections, now_track_id_tracks)
- true_count = sum(sum(row) for row in result_matrix)
- #rich.print(true_count)
- evidence[(now_track_id,now_detection_id)] = self.evidence_rate*true_count
-
- # rich.print(current_matches[-1])
- # rich.print(evidence)
- # rich.print(iou_detection_history_tracks_result[-1])
- rich.print(len(iou_detection_history_tracks_result))
- new_unmatched_tracks = []
- new_unmatched_detections = []
- for (track,detection) in current_matches[-1]:
- if evidence[(track, detection)] <1:
- #pass
- new_unmatched_tracks.append(track)
- new_unmatched_detections.append(detection)
- #rich.print('niuniu', match)
-
-
-
- fianl_matches = [match for match in current_matches[-1] if evidence[match] >= 1]
- return fianl_matches, new_unmatched_tracks, new_unmatched_detections
-
-
-
-
-
-
- # rich.print(iou_track_history_tracks_result)
- # for i in range(len(iou_detection_history_tracks_result)):
- # for detections_ids,detections in enumerate(iou_detection_history_tracks_result[i]):
- # for tracks_ids, tracks in enumerate(iou_track_history_tracks_result[i]):
- # for match_id, match in enumerate(current_matches):
- # for detection_id, detection in enumerate(detections):
- # for track_id, track in enumerate(tracks):
- # if(track == True) and (detection == True) and (detections_ids == tracks_ids) :
- # final_evidence += self.evidence_rate + final_evidence
-
-
- # if(detection == True) and (track == True):
- # final_evidence +=self.evidence_rate
- #rich.print(detection, track, match, "牛子")
-
- #rich.print("当前得分:", final_evidence)
-
-
-
-
-
-
-
-
- def iou_match(self, detection, track ):#单组的detect与track的iou匹配哦
- ##rich.print(detection.to_tlbr())
- ##rich.print(track.to_tlbr())
- det_tlbr = detection.to_tlbr()
- track_tlbr = track.to_tlbr()
-
- # Calculate the intersection coordinates
- x_left = max(det_tlbr[0], track_tlbr[0])
- y_top = max(det_tlbr[1], track_tlbr[1])
- x_right = min(det_tlbr[2], track_tlbr[2])
- y_bottom = min(det_tlbr[3], track_tlbr[3])
-
- # Calculate the area of intersection
- if x_right < x_left or y_bottom < y_top:
- return False # No overlap
-
- intersection_area = (x_right - x_left) * (y_bottom - y_top)
-
- # Calculate the area of both rectangles
- det_area = (det_tlbr[2] - det_tlbr[0]) * (det_tlbr[3] - det_tlbr[1])
- track_area = (track_tlbr[2] - track_tlbr[0]) * (track_tlbr[3] - track_tlbr[1])
-
- # Calculate the union area
- union_area = det_area + track_area - intersection_area
-
- # Calculate the IoU
- iou = intersection_area / union_area
-
- if iou> 0.1:
- return True
-
-
- return False
-
-
- def logical_and_lists(self, list1, list2):
- if len(list1) != len(list2) or len(list1[0]) != len(list2[0]):
- return "Error: Input lists are not of the same size"
-
- result = [[list1[i][j] and list2[i][j] for j in range(len(list1[i]))] for i in range(len(list1))]
-
- return result
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Yolov5-Deepsort/deep_sort/utils/__init__.py b/Yolov5-Deepsort/deep_sort/utils/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Yolov5-Deepsort/deep_sort/utils/__pycache__/__init__.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/utils/__pycache__/__init__.cpython-36.pyc
deleted file mode 100644
index 8b78a3774e297bfa3a92ff2ae77f138373a30f67..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/utils/__pycache__/__init__.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/utils/__pycache__/__init__.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/utils/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index cab1729ff02daa25ac6cb7308e45fcc703a877be..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/utils/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/utils/__pycache__/parser.cpython-36.pyc b/Yolov5-Deepsort/deep_sort/utils/__pycache__/parser.cpython-36.pyc
deleted file mode 100644
index b5c82da3dbebf17fc41a3c56f9c8f9bdbe0bc8e0..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/utils/__pycache__/parser.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/utils/__pycache__/parser.cpython-37.pyc b/Yolov5-Deepsort/deep_sort/utils/__pycache__/parser.cpython-37.pyc
deleted file mode 100644
index 875847c85eb0f2b8c05dd41a3d4651a69e2e690a..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/deep_sort/utils/__pycache__/parser.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/deep_sort/utils/asserts.py b/Yolov5-Deepsort/deep_sort/utils/asserts.py
deleted file mode 100644
index 59a73cc04025762d6490fcd2945a747d963def32..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/utils/asserts.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from os import environ
-
-
-def assert_in(file, files_to_check):
- if file not in files_to_check:
- raise AssertionError("{} does not exist in the list".format(str(file)))
- return True
-
-
-def assert_in_env(check_list: list):
- for item in check_list:
- assert_in(item, environ.keys())
- return True
diff --git a/Yolov5-Deepsort/deep_sort/utils/draw.py b/Yolov5-Deepsort/deep_sort/utils/draw.py
deleted file mode 100644
index bc7cb537978e86805d5d9789785a8afe67df9030..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/utils/draw.py
+++ /dev/null
@@ -1,36 +0,0 @@
-import numpy as np
-import cv2
-
-palette = (2 ** 11 - 1, 2 ** 15 - 1, 2 ** 20 - 1)
-
-
-def compute_color_for_labels(label):
- """
- Simple function that adds fixed color depending on the class
- """
- color = [int((p * (label ** 2 - label + 1)) % 255) for p in palette]
- return tuple(color)
-
-
-def draw_boxes(img, bbox, identities=None, offset=(0,0)):
- for i,box in enumerate(bbox):
- x1,y1,x2,y2 = [int(i) for i in box]
- x1 += offset[0]
- x2 += offset[0]
- y1 += offset[1]
- y2 += offset[1]
- # box text and bar
- id = int(identities[i]) if identities is not None else 0
- color = compute_color_for_labels(id)
- label = '{}{:d}'.format("", id)
- t_size = cv2.getTextSize(label, cv2.FONT_HERSHEY_PLAIN, 2 , 2)[0]
- cv2.rectangle(img,(x1, y1),(x2,y2),color,3)
- cv2.rectangle(img,(x1, y1),(x1+t_size[0]+3,y1+t_size[1]+4), color,-1)
- cv2.putText(img,label,(x1,y1+t_size[1]+4), cv2.FONT_HERSHEY_PLAIN, 2, [255,255,255], 2)
- return img
-
-
-
-if __name__ == '__main__':
- for i in range(82):
- print(compute_color_for_labels(i))
diff --git a/Yolov5-Deepsort/deep_sort/utils/evaluation.py b/Yolov5-Deepsort/deep_sort/utils/evaluation.py
deleted file mode 100644
index 100179407181933d59809b25400d115cfa789867..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/utils/evaluation.py
+++ /dev/null
@@ -1,103 +0,0 @@
-import os
-import numpy as np
-import copy
-import motmetrics as mm
-mm.lap.default_solver = 'lap'
-from utils.io import read_results, unzip_objs
-
-
-class Evaluator(object):
-
- def __init__(self, data_root, seq_name, data_type):
- self.data_root = data_root
- self.seq_name = seq_name
- self.data_type = data_type
-
- self.load_annotations()
- self.reset_accumulator()
-
- def load_annotations(self):
- assert self.data_type == 'mot'
-
- gt_filename = os.path.join(self.data_root, self.seq_name, 'gt', 'gt.txt')
- self.gt_frame_dict = read_results(gt_filename, self.data_type, is_gt=True)
- self.gt_ignore_frame_dict = read_results(gt_filename, self.data_type, is_ignore=True)
-
- def reset_accumulator(self):
- self.acc = mm.MOTAccumulator(auto_id=True)
-
- def eval_frame(self, frame_id, trk_tlwhs, trk_ids, rtn_events=False):
- # results
- trk_tlwhs = np.copy(trk_tlwhs)
- trk_ids = np.copy(trk_ids)
-
- # gts
- gt_objs = self.gt_frame_dict.get(frame_id, [])
- gt_tlwhs, gt_ids = unzip_objs(gt_objs)[:2]
-
- # ignore boxes
- ignore_objs = self.gt_ignore_frame_dict.get(frame_id, [])
- ignore_tlwhs = unzip_objs(ignore_objs)[0]
-
-
- # remove ignored results
- keep = np.ones(len(trk_tlwhs), dtype=bool)
- iou_distance = mm.distances.iou_matrix(ignore_tlwhs, trk_tlwhs, max_iou=0.5)
- if len(iou_distance) > 0:
- match_is, match_js = mm.lap.linear_sum_assignment(iou_distance)
- match_is, match_js = map(lambda a: np.asarray(a, dtype=int), [match_is, match_js])
- match_ious = iou_distance[match_is, match_js]
-
- match_js = np.asarray(match_js, dtype=int)
- match_js = match_js[np.logical_not(np.isnan(match_ious))]
- keep[match_js] = False
- trk_tlwhs = trk_tlwhs[keep]
- trk_ids = trk_ids[keep]
-
- # get distance matrix
- iou_distance = mm.distances.iou_matrix(gt_tlwhs, trk_tlwhs, max_iou=0.5)
-
- # acc
- self.acc.update(gt_ids, trk_ids, iou_distance)
-
- if rtn_events and iou_distance.size > 0 and hasattr(self.acc, 'last_mot_events'):
- events = self.acc.last_mot_events # only supported by https://github.com/longcw/py-motmetrics
- else:
- events = None
- return events
-
- def eval_file(self, filename):
- self.reset_accumulator()
-
- result_frame_dict = read_results(filename, self.data_type, is_gt=False)
- frames = sorted(list(set(self.gt_frame_dict.keys()) | set(result_frame_dict.keys())))
- for frame_id in frames:
- trk_objs = result_frame_dict.get(frame_id, [])
- trk_tlwhs, trk_ids = unzip_objs(trk_objs)[:2]
- self.eval_frame(frame_id, trk_tlwhs, trk_ids, rtn_events=False)
-
- return self.acc
-
- @staticmethod
- def get_summary(accs, names, metrics=('mota', 'num_switches', 'idp', 'idr', 'idf1', 'precision', 'recall')):
- names = copy.deepcopy(names)
- if metrics is None:
- metrics = mm.metrics.motchallenge_metrics
- metrics = copy.deepcopy(metrics)
-
- mh = mm.metrics.create()
- summary = mh.compute_many(
- accs,
- metrics=metrics,
- names=names,
- generate_overall=True
- )
-
- return summary
-
- @staticmethod
- def save_summary(summary, filename):
- import pandas as pd
- writer = pd.ExcelWriter(filename)
- summary.to_excel(writer)
- writer.save()
diff --git a/Yolov5-Deepsort/deep_sort/utils/io.py b/Yolov5-Deepsort/deep_sort/utils/io.py
deleted file mode 100644
index 2dc9afd24019cd930eef6c21ab9f579313dd3b3a..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/utils/io.py
+++ /dev/null
@@ -1,133 +0,0 @@
-import os
-from typing import Dict
-import numpy as np
-
-# from utils.log import get_logger
-
-
-def write_results(filename, results, data_type):
- if data_type == 'mot':
- save_format = '{frame},{id},{x1},{y1},{w},{h},-1,-1,-1,-1\n'
- elif data_type == 'kitti':
- save_format = '{frame} {id} pedestrian 0 0 -10 {x1} {y1} {x2} {y2} -10 -10 -10 -1000 -1000 -1000 -10\n'
- else:
- raise ValueError(data_type)
-
- with open(filename, 'w') as f:
- for frame_id, tlwhs, track_ids in results:
- if data_type == 'kitti':
- frame_id -= 1
- for tlwh, track_id in zip(tlwhs, track_ids):
- if track_id < 0:
- continue
- x1, y1, w, h = tlwh
- x2, y2 = x1 + w, y1 + h
- line = save_format.format(frame=frame_id, id=track_id, x1=x1, y1=y1, x2=x2, y2=y2, w=w, h=h)
- f.write(line)
-
-
-# def write_results(filename, results_dict: Dict, data_type: str):
-# if not filename:
-# return
-# path = os.path.dirname(filename)
-# if not os.path.exists(path):
-# os.makedirs(path)
-
-# if data_type in ('mot', 'mcmot', 'lab'):
-# save_format = '{frame},{id},{x1},{y1},{w},{h},1,-1,-1,-1\n'
-# elif data_type == 'kitti':
-# save_format = '{frame} {id} pedestrian -1 -1 -10 {x1} {y1} {x2} {y2} -1 -1 -1 -1000 -1000 -1000 -10 {score}\n'
-# else:
-# raise ValueError(data_type)
-
-# with open(filename, 'w') as f:
-# for frame_id, frame_data in results_dict.items():
-# if data_type == 'kitti':
-# frame_id -= 1
-# for tlwh, track_id in frame_data:
-# if track_id < 0:
-# continue
-# x1, y1, w, h = tlwh
-# x2, y2 = x1 + w, y1 + h
-# line = save_format.format(frame=frame_id, id=track_id, x1=x1, y1=y1, x2=x2, y2=y2, w=w, h=h, score=1.0)
-# f.write(line)
-# logger.info('Save results to {}'.format(filename))
-
-
-def read_results(filename, data_type: str, is_gt=False, is_ignore=False):
- if data_type in ('mot', 'lab'):
- read_fun = read_mot_results
- else:
- raise ValueError('Unknown data type: {}'.format(data_type))
-
- return read_fun(filename, is_gt, is_ignore)
-
-
-"""
-labels={'ped', ... % 1
-'person_on_vhcl', ... % 2
-'car', ... % 3
-'bicycle', ... % 4
-'mbike', ... % 5
-'non_mot_vhcl', ... % 6
-'static_person', ... % 7
-'distractor', ... % 8
-'occluder', ... % 9
-'occluder_on_grnd', ... %10
-'occluder_full', ... % 11
-'reflection', ... % 12
-'crowd' ... % 13
-};
-"""
-
-
-def read_mot_results(filename, is_gt, is_ignore):
- valid_labels = {1}
- ignore_labels = {2, 7, 8, 12}
- results_dict = dict()
- if os.path.isfile(filename):
- with open(filename, 'r') as f:
- for line in f.readlines():
- linelist = line.split(',')
- if len(linelist) < 7:
- continue
- fid = int(linelist[0])
- if fid < 1:
- continue
- results_dict.setdefault(fid, list())
-
- if is_gt:
- if 'MOT16-' in filename or 'MOT17-' in filename:
- label = int(float(linelist[7]))
- mark = int(float(linelist[6]))
- if mark == 0 or label not in valid_labels:
- continue
- score = 1
- elif is_ignore:
- if 'MOT16-' in filename or 'MOT17-' in filename:
- label = int(float(linelist[7]))
- vis_ratio = float(linelist[8])
- if label not in ignore_labels and vis_ratio >= 0:
- continue
- else:
- continue
- score = 1
- else:
- score = float(linelist[6])
-
- tlwh = tuple(map(float, linelist[2:6]))
- target_id = int(linelist[1])
-
- results_dict[fid].append((tlwh, target_id, score))
-
- return results_dict
-
-
-def unzip_objs(objs):
- if len(objs) > 0:
- tlwhs, ids, scores = zip(*objs)
- else:
- tlwhs, ids, scores = [], [], []
- tlwhs = np.asarray(tlwhs, dtype=float).reshape(-1, 4)
-
- return tlwhs, ids, scores
\ No newline at end of file
diff --git a/Yolov5-Deepsort/deep_sort/utils/json_logger.py b/Yolov5-Deepsort/deep_sort/utils/json_logger.py
deleted file mode 100644
index 0afd0b45df736866c49473db78286685d77660ac..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/utils/json_logger.py
+++ /dev/null
@@ -1,383 +0,0 @@
-"""
-References:
- https://medium.com/analytics-vidhya/creating-a-custom-logging-mechanism-for-real-time-object-detection-using-tdd-4ca2cfcd0a2f
-"""
-import json
-from os import makedirs
-from os.path import exists, join
-from datetime import datetime
-
-
-class JsonMeta(object):
- HOURS = 3
- MINUTES = 59
- SECONDS = 59
- PATH_TO_SAVE = 'LOGS'
- DEFAULT_FILE_NAME = 'remaining'
-
-
-class BaseJsonLogger(object):
- """
- This is the base class that returns __dict__ of its own
- it also returns the dicts of objects in the attributes that are list instances
-
- """
-
- def dic(self):
- # returns dicts of objects
- out = {}
- for k, v in self.__dict__.items():
- if hasattr(v, 'dic'):
- out[k] = v.dic()
- elif isinstance(v, list):
- out[k] = self.list(v)
- else:
- out[k] = v
- return out
-
- @staticmethod
- def list(values):
- # applies the dic method on items in the list
- return [v.dic() if hasattr(v, 'dic') else v for v in values]
-
-
-class Label(BaseJsonLogger):
- """
- For each bounding box there are various categories with confidences. Label class keeps track of that information.
- """
-
- def __init__(self, category: str, confidence: float):
- self.category = category
- self.confidence = confidence
-
-
-class Bbox(BaseJsonLogger):
- """
- This module stores the information for each frame and use them in JsonParser
- Attributes:
- labels (list): List of label module.
- top (int):
- left (int):
- width (int):
- height (int):
-
- Args:
- bbox_id (float):
- top (int):
- left (int):
- width (int):
- height (int):
-
- References:
- Check Label module for better understanding.
-
-
- """
-
- def __init__(self, bbox_id, top, left, width, height):
- self.labels = []
- self.bbox_id = bbox_id
- self.top = top
- self.left = left
- self.width = width
- self.height = height
-
- def add_label(self, category, confidence):
- # adds category and confidence only if top_k is not exceeded.
- self.labels.append(Label(category, confidence))
-
- def labels_full(self, value):
- return len(self.labels) == value
-
-
-class Frame(BaseJsonLogger):
- """
- This module stores the information for each frame and use them in JsonParser
- Attributes:
- timestamp (float): The elapsed time of captured frame
- frame_id (int): The frame number of the captured video
- bboxes (list of Bbox objects): Stores the list of bbox objects.
-
- References:
- Check Bbox class for better information
-
- Args:
- timestamp (float):
- frame_id (int):
-
- """
-
- def __init__(self, frame_id: int, timestamp: float = None):
- self.frame_id = frame_id
- self.timestamp = timestamp
- self.bboxes = []
-
- def add_bbox(self, bbox_id: int, top: int, left: int, width: int, height: int):
- bboxes_ids = [bbox.bbox_id for bbox in self.bboxes]
- if bbox_id not in bboxes_ids:
- self.bboxes.append(Bbox(bbox_id, top, left, width, height))
- else:
- raise ValueError("Frame with id: {} already has a Bbox with id: {}".format(self.frame_id, bbox_id))
-
- def add_label_to_bbox(self, bbox_id: int, category: str, confidence: float):
- bboxes = {bbox.id: bbox for bbox in self.bboxes}
- if bbox_id in bboxes.keys():
- res = bboxes.get(bbox_id)
- res.add_label(category, confidence)
- else:
- raise ValueError('the bbox with id: {} does not exists!'.format(bbox_id))
-
-
-class BboxToJsonLogger(BaseJsonLogger):
- """
- ُ This module is designed to automate the task of logging jsons. An example json is used
- to show the contents of json file shortly
- Example:
- {
- "video_details": {
- "frame_width": 1920,
- "frame_height": 1080,
- "frame_rate": 20,
- "video_name": "/home/gpu/codes/MSD/pedestrian_2/project/public/camera1.avi"
- },
- "frames": [
- {
- "frame_id": 329,
- "timestamp": 3365.1254
- "bboxes": [
- {
- "labels": [
- {
- "category": "pedestrian",
- "confidence": 0.9
- }
- ],
- "bbox_id": 0,
- "top": 1257,
- "left": 138,
- "width": 68,
- "height": 109
- }
- ]
- }],
-
- Attributes:
- frames (dict): It's a dictionary that maps each frame_id to json attributes.
- video_details (dict): information about video file.
- top_k_labels (int): shows the allowed number of labels
- start_time (datetime object): we use it to automate the json output by time.
-
- Args:
- top_k_labels (int): shows the allowed number of labels
-
- """
-
- def __init__(self, top_k_labels: int = 1):
- self.frames = {}
- self.video_details = self.video_details = dict(frame_width=None, frame_height=None, frame_rate=None,
- video_name=None)
- self.top_k_labels = top_k_labels
- self.start_time = datetime.now()
-
- def set_top_k(self, value):
- self.top_k_labels = value
-
- def frame_exists(self, frame_id: int) -> bool:
- """
- Args:
- frame_id (int):
-
- Returns:
- bool: true if frame_id is recognized
- """
- return frame_id in self.frames.keys()
-
- def add_frame(self, frame_id: int, timestamp: float = None) -> None:
- """
- Args:
- frame_id (int):
- timestamp (float): opencv captured frame time property
-
- Raises:
- ValueError: if frame_id would not exist in class frames attribute
-
- Returns:
- None
-
- """
- if not self.frame_exists(frame_id):
- self.frames[frame_id] = Frame(frame_id, timestamp)
- else:
- raise ValueError("Frame id: {} already exists".format(frame_id))
-
- def bbox_exists(self, frame_id: int, bbox_id: int) -> bool:
- """
- Args:
- frame_id:
- bbox_id:
-
- Returns:
- bool: if bbox exists in frame bboxes list
- """
- bboxes = []
- if self.frame_exists(frame_id=frame_id):
- bboxes = [bbox.bbox_id for bbox in self.frames[frame_id].bboxes]
- return bbox_id in bboxes
-
- def find_bbox(self, frame_id: int, bbox_id: int):
- """
-
- Args:
- frame_id:
- bbox_id:
-
- Returns:
- bbox_id (int):
-
- Raises:
- ValueError: if bbox_id does not exist in the bbox list of specific frame.
- """
- if not self.bbox_exists(frame_id, bbox_id):
- raise ValueError("frame with id: {} does not contain bbox with id: {}".format(frame_id, bbox_id))
- bboxes = {bbox.bbox_id: bbox for bbox in self.frames[frame_id].bboxes}
- return bboxes.get(bbox_id)
-
- def add_bbox_to_frame(self, frame_id: int, bbox_id: int, top: int, left: int, width: int, height: int) -> None:
- """
-
- Args:
- frame_id (int):
- bbox_id (int):
- top (int):
- left (int):
- width (int):
- height (int):
-
- Returns:
- None
-
- Raises:
- ValueError: if bbox_id already exist in frame information with frame_id
- ValueError: if frame_id does not exist in frames attribute
- """
- if self.frame_exists(frame_id):
- frame = self.frames[frame_id]
- if not self.bbox_exists(frame_id, bbox_id):
- frame.add_bbox(bbox_id, top, left, width, height)
- else:
- raise ValueError(
- "frame with frame_id: {} already contains the bbox with id: {} ".format(frame_id, bbox_id))
- else:
- raise ValueError("frame with frame_id: {} does not exist".format(frame_id))
-
- def add_label_to_bbox(self, frame_id: int, bbox_id: int, category: str, confidence: float):
- """
- Args:
- frame_id:
- bbox_id:
- category:
- confidence: the confidence value returned from yolo detection
-
- Returns:
- None
-
- Raises:
- ValueError: if labels quota (top_k_labels) exceeds.
- """
- bbox = self.find_bbox(frame_id, bbox_id)
- if not bbox.labels_full(self.top_k_labels):
- bbox.add_label(category, confidence)
- else:
- raise ValueError("labels in frame_id: {}, bbox_id: {} is fulled".format(frame_id, bbox_id))
-
- def add_video_details(self, frame_width: int = None, frame_height: int = None, frame_rate: int = None,
- video_name: str = None):
- self.video_details['frame_width'] = frame_width
- self.video_details['frame_height'] = frame_height
- self.video_details['frame_rate'] = frame_rate
- self.video_details['video_name'] = video_name
-
- def output(self):
- output = {'video_details': self.video_details}
- result = list(self.frames.values())
- output['frames'] = [item.dic() for item in result]
- return output
-
- def json_output(self, output_name):
- """
- Args:
- output_name:
-
- Returns:
- None
-
- Notes:
- It creates the json output with `output_name` name.
- """
- if not output_name.endswith('.json'):
- output_name += '.json'
- with open(output_name, 'w') as file:
- json.dump(self.output(), file)
- file.close()
-
- def set_start(self):
- self.start_time = datetime.now()
-
- def schedule_output_by_time(self, output_dir=JsonMeta.PATH_TO_SAVE, hours: int = 0, minutes: int = 0,
- seconds: int = 60) -> None:
- """
- Notes:
- Creates folder and then periodically stores the jsons on that address.
-
- Args:
- output_dir (str): the directory where output files will be stored
- hours (int):
- minutes (int):
- seconds (int):
-
- Returns:
- None
-
- """
- end = datetime.now()
- interval = 0
- interval += abs(min([hours, JsonMeta.HOURS]) * 3600)
- interval += abs(min([minutes, JsonMeta.MINUTES]) * 60)
- interval += abs(min([seconds, JsonMeta.SECONDS]))
- diff = (end - self.start_time).seconds
-
- if diff > interval:
- output_name = self.start_time.strftime('%Y-%m-%d %H-%M-%S') + '.json'
- if not exists(output_dir):
- makedirs(output_dir)
- output = join(output_dir, output_name)
- self.json_output(output_name=output)
- self.frames = {}
- self.start_time = datetime.now()
-
- def schedule_output_by_frames(self, frames_quota, frame_counter, output_dir=JsonMeta.PATH_TO_SAVE):
- """
- saves as the number of frames quota increases higher.
- :param frames_quota:
- :param frame_counter:
- :param output_dir:
- :return:
- """
- pass
-
- def flush(self, output_dir):
- """
- Notes:
- We use this function to output jsons whenever possible.
- like the time that we exit the while loop of opencv.
-
- Args:
- output_dir:
-
- Returns:
- None
-
- """
- filename = self.start_time.strftime('%Y-%m-%d %H-%M-%S') + '-remaining.json'
- output = join(output_dir, filename)
- self.json_output(output_name=output)
diff --git a/Yolov5-Deepsort/deep_sort/utils/log.py b/Yolov5-Deepsort/deep_sort/utils/log.py
deleted file mode 100644
index 0d48757dca88f35e9ea2cd1ca16e41bac9976a45..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/utils/log.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import logging
-
-
-def get_logger(name='root'):
- formatter = logging.Formatter(
- # fmt='%(asctime)s [%(levelname)s]: %(filename)s(%(funcName)s:%(lineno)s) >> %(message)s')
- fmt='%(asctime)s [%(levelname)s]: %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
-
- handler = logging.StreamHandler()
- handler.setFormatter(formatter)
-
- logger = logging.getLogger(name)
- logger.setLevel(logging.INFO)
- logger.addHandler(handler)
- return logger
-
-
diff --git a/Yolov5-Deepsort/deep_sort/utils/parser.py b/Yolov5-Deepsort/deep_sort/utils/parser.py
deleted file mode 100644
index c217ecb2c8c2b9a3c8cc10e2be2f149aba326b60..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/utils/parser.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import os
-import yaml
-from easydict import EasyDict as edict
-
-class YamlParser(edict):
- """
- This is yaml parser based on EasyDict.
- """
- def __init__(self, cfg_dict=None, config_file=None):
- if cfg_dict is None:
- cfg_dict = {}
-
- if config_file is not None:
- assert(os.path.isfile(config_file))
- with open(config_file, 'r') as fo:
- cfg_dict.update(yaml.safe_load(fo.read()))
-
- super(YamlParser, self).__init__(cfg_dict)
-
-
- def merge_from_file(self, config_file):
- with open(config_file, 'r') as fo:
- self.update(yaml.safe_load(fo.read()))
-
-
- def merge_from_dict(self, config_dict):
- self.update(config_dict)
-
-
-def get_config(config_file=None):
- return YamlParser(config_file=config_file)
-
-
-if __name__ == "__main__":
- cfg = YamlParser(config_file="../configs/yolov3.yaml")
- cfg.merge_from_file("../configs/deep_sort.yaml")
-
- import ipdb; ipdb.set_trace()
\ No newline at end of file
diff --git a/Yolov5-Deepsort/deep_sort/utils/tools.py b/Yolov5-Deepsort/deep_sort/utils/tools.py
deleted file mode 100644
index 965fb69c2df41510fd740a4ab57d8fc7b81012de..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/deep_sort/utils/tools.py
+++ /dev/null
@@ -1,39 +0,0 @@
-from functools import wraps
-from time import time
-
-
-def is_video(ext: str):
- """
- Returns true if ext exists in
- allowed_exts for video files.
-
- Args:
- ext:
-
- Returns:
-
- """
-
- allowed_exts = ('.mp4', '.webm', '.ogg', '.avi', '.wmv', '.mkv', '.3gp')
- return any((ext.endswith(x) for x in allowed_exts))
-
-
-def tik_tok(func):
- """
- keep track of time for each process.
- Args:
- func:
-
- Returns:
-
- """
- @wraps(func)
- def _time_it(*args, **kwargs):
- start = time()
- try:
- return func(*args, **kwargs)
- finally:
- end_ = time()
- print("time: {:.03f}s, fps: {:.03f}".format(end_ - start, 1 / (end_ - start)))
-
- return _time_it
diff --git a/Yolov5-Deepsort/demo.py b/Yolov5-Deepsort/demo.py
deleted file mode 100644
index 3c68e34a2d00daec71f4eee6ca31263ec1591b8b..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/demo.py
+++ /dev/null
@@ -1,112 +0,0 @@
-from AIDetector_pytorch import Detector
-import imutils
-import rich
-import cv2
-import time
-
-def main():
-
- name = 'demo'
-
- det = Detector()
- cap = cv2.VideoCapture('mot.mp4')
- fps = int(cap.get(5))
- print('fps:', fps)
- t = int(1000/fps)
- frame_count = 0
- total_time = 0
-
- videoWriter = None
-
- while True:
-
- start_time = time.time()
-
- # try:
- _, im = cap.read()
- if im is None:
- break
- #rich.print("im:",im)
- result = det.feedCap(im)
- #rich.print(result)
- result = result['frame']
- result = imutils.resize(result, height=500)
- if videoWriter is None:
- fourcc = cv2.VideoWriter_fourcc(
- 'm', 'p', '4', 'v') # opencv3.0
- videoWriter = cv2.VideoWriter(
- 'result.mp4', fourcc, fps, (result.shape[1], result.shape[0]))
-
- videoWriter.write(result)
- cv2.imshow(name, result)
- cv2.waitKey(t)
-
- end_time = time.time()
- total_time += (end_time - start_time)
- frame_count +=1
-
- if frame_count > 0:
- processing_fps = frame_count / total_time
- rich.print('Processing fps:', processing_fps)
-
-
- if cv2.getWindowProperty(name, cv2.WND_PROP_AUTOSIZE) < 1:
- # 点x退出
- break
- # except Exception as e:
- # print(e)
- # break
-
- cap.release()
- videoWriter.release()
- cv2.destroyAllWindows()
-
-
-def app_main(video):
- name = 'demo'
-
- det = Detector()
- cap = cv2.VideoCapture(video)
- fps = int(cap.get(cv2.CAP_PROP_FPS))
- print('fps:', fps)
- t = int(1000/fps)
- frame_count = 0
- total_time = 0
-
- videoWriter = None
- output_filename = 'result.mp4'
-
- while True:
- start_time = time.time()
-
- ret, im = cap.read()
- if not ret:
- break
-
- result = det.feedCap(im)
- result = result['frame']
- result = imutils.resize(result, height=500)
-
- if videoWriter is None:
- fourcc = cv2.VideoWriter_fourcc(*'mp4v')
- videoWriter = cv2.VideoWriter(
- output_filename, fourcc, fps, (result.shape[1], result.shape[0]))
-
- videoWriter.write(result)
-
- end_time = time.time()
- total_time += (end_time - start_time)
- frame_count += 1
-
- if frame_count > 0:
- processing_fps = frame_count / total_time
- print('Processing fps:', processing_fps)
-
- cap.release()
- videoWriter.release()
-
- return output_filename
-
-if __name__ == '__main__':
-
- main()
\ No newline at end of file
diff --git a/Yolov5-Deepsort/eval.py b/Yolov5-Deepsort/eval.py
deleted file mode 100644
index 52af1ee1aed9cad895e3aa71c4bc8f7e8e6d3bb6..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/eval.py
+++ /dev/null
@@ -1,33 +0,0 @@
-import motmetrics as mm
-import pandas as pd
-
-# 读取ground truth和结果文件
-gt = pd.read_csv('/home/suml/docker/su/Yolov5-Deepsort/gt.txt', header=None)
-res = pd.read_csv('/home/suml/docker/su/Yolov5-Deepsort/gt.txt', header=None)
-
-# 创建一个accumulator对象
-acc = mm.MOTAccumulator(auto_id=True)
-
-# 假设文件格式为:, , , , , , , ,
-for frame in gt[0].unique():
- gt_frame = gt[gt[0] == frame]
- res_frame = res[res[0] == frame]
-
- # 提取ID和位置
- gt_ids = gt_frame[1].values
- gt_positions = gt_frame[[2, 3, 4, 5]].values
-
- res_ids = res_frame[1].values
- res_positions = res_frame[[2, 3, 4, 5]].values
-
- # 更新accumulator
- acc.update(
- gt_ids, res_ids,
- mm.distances.iou_matrix(gt_positions, res_positions, max_iou=0.5)
- )
-
-# 计算指标
-mh = mm.metrics.create()
-summary = mh.compute(acc, metrics=['idf1', 'mota', 'motp'], name='DeepSORT')
-
-print(summary)
diff --git a/Yolov5-Deepsort/gt.txt b/Yolov5-Deepsort/gt.txt
deleted file mode 100644
index f8c1ad7181ccf4b07620a53afd98e7b61045d709..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/gt.txt
+++ /dev/null
@@ -1,18718 +0,0 @@
-1,1,1376,485,37,28,0,11,1
-2,1,1379,486,37,28,0,11,1
-3,1,1382,487,38,29,0,11,1
-4,1,1386,488,38,29,0,11,1
-5,1,1389,490,38,29,0,11,1
-6,1,1393,491,38,30,0,11,1
-7,1,1396,492,39,30,0,11,1
-8,1,1399,494,39,30,0,11,1
-9,1,1403,495,39,30,0,11,1
-10,1,1406,496,40,31,0,11,1
-11,1,1410,498,40,31,0,11,1
-12,1,1413,497,40,31,0,11,1
-13,1,1416,497,40,31,0,11,1
-14,1,1419,497,40,31,0,11,1
-15,1,1422,497,40,31,0,11,1
-16,1,1426,497,39,31,0,11,1
-17,1,1429,496,39,31,0,11,1
-18,1,1432,496,39,31,0,11,1
-19,1,1435,496,39,31,0,11,1
-20,1,1438,496,39,31,0,11,1
-21,1,1442,496,39,31,0,11,1
-22,1,1445,497,39,32,0,11,1
-23,1,1448,499,40,32,0,11,1
-24,1,1451,501,41,32,0,11,1
-25,1,1454,503,41,32,0,11,1
-26,1,1458,505,41,32,0,11,1
-27,1,1461,507,42,32,0,11,1
-28,1,1464,509,42,32,0,11,1
-29,1,1467,511,43,32,0,11,1
-30,1,1470,513,44,32,0,11,1
-31,1,1474,515,44,33,0,11,1
-32,1,1476,518,45,36,0,11,1
-33,1,1476,508,45,36,0,11,1
-34,1,1488,509,46,36,0,11,1
-35,1,1488,509,46,36,0,11,1
-36,1,1492,506,46,35,0,11,1
-37,1,1496,503,47,34,0,11,1
-38,1,1500,500,48,33,0,11,1
-39,1,1505,497,48,33,0,11,1
-40,1,1508,498,48,34,0,11,1
-41,1,1512,499,48,35,0,11,1
-42,1,1516,501,47,35,0,11,1
-43,1,1520,502,47,36,0,11,1
-44,1,1524,504,47,36,0,11,1
-45,1,1528,505,46,37,0,11,1
-46,1,1532,506,46,38,0,11,1
-47,1,1536,508,45,38,0,11,1
-48,1,1540,509,45,39,0,11,1
-49,1,1544,511,45,39,0,11,1
-50,1,1548,510,45,40,0,11,1
-51,1,1552,510,46,40,0,11,1
-52,1,1556,510,47,40,0,11,1
-53,1,1561,510,47,40,0,11,1
-54,1,1565,510,48,41,0,11,1
-55,1,1569,509,49,42,0,11,1
-56,1,1574,509,49,42,0,11,1
-57,1,1578,509,50,42,0,11,1
-58,1,1582,509,51,42,0,11,1
-59,1,1587,509,51,43,0,11,1
-60,1,1589,509,52,44,0,11,1
-61,1,1591,510,53,44,0,11,1
-62,1,1593,510,54,45,0,11,1
-63,1,1595,511,56,45,0,11,1
-64,1,1597,511,57,46,0,11,1
-65,1,1599,512,58,47,0,11,1
-66,1,1601,513,59,47,0,11,1
-67,1,1603,513,61,48,0,11,1
-68,1,1605,514,62,48,0,11,1
-69,1,1607,514,63,49,0,11,1
-70,1,1609,515,64,49,0,11,1
-71,1,1612,516,65,50,0,11,1
-72,1,1614,515,64,50,0,11,1
-73,1,1616,515,64,50,0,11,1
-74,1,1618,514,64,51,0,11,1
-75,1,1620,514,64,51,0,11,1
-76,1,1622,514,63,51,0,11,1
-77,1,1624,513,63,52,0,11,1
-78,1,1626,513,63,52,0,11,1
-79,1,1628,513,63,52,0,11,1
-80,1,1627,513,64,53,0,11,1
-81,1,1627,514,64,53,0,11,1
-82,1,1627,515,65,53,0,11,1
-83,1,1627,515,65,54,0,11,1
-84,1,1626,516,67,54,0,11,1
-85,1,1626,517,67,54,0,11,1
-86,1,1626,517,67,55,0,11,1
-87,1,1626,518,68,55,0,11,1
-88,1,1625,519,69,55,0,11,1
-89,1,1625,519,70,56,0,11,1
-90,1,1625,520,70,56,0,11,1
-91,1,1625,521,71,57,0,11,1
-92,1,1625,521,71,58,0,11,1
-93,1,1625,522,71,58,0,11,1
-94,1,1625,523,71,58,0,11,1
-95,1,1625,524,71,58,0,11,1
-96,1,1625,525,71,59,0,11,1
-97,1,1625,525,71,60,0,11,1
-98,1,1625,526,71,60,0,11,1
-99,1,1625,527,71,60,0,11,1
-100,1,1625,528,71,60,0,11,1
-101,1,1625,529,71,61,0,11,1
-102,1,1624,529,71,61,0,11,1
-103,1,1623,530,71,61,0,11,1
-104,1,1622,531,72,60,0,11,1
-105,1,1621,531,72,61,0,11,1
-106,1,1621,532,72,61,0,11,1
-107,1,1620,533,72,60,0,11,1
-108,1,1619,533,72,61,0,11,1
-109,1,1618,534,73,60,0,11,1
-110,1,1617,535,73,60,0,11,1
-111,1,1617,536,73,60,0,11,1
-112,1,1616,536,73,60,0,11,1
-113,1,1615,536,74,60,0,11,1
-114,1,1614,536,75,60,0,11,1
-115,1,1613,536,75,60,0,11,1
-116,1,1613,536,75,60,0,11,1
-117,1,1612,536,76,60,0,11,1
-118,1,1611,536,76,60,0,11,1
-119,1,1610,536,77,60,0,11,1
-120,1,1609,536,78,60,0,11,1
-121,1,1609,536,78,61,0,11,1
-122,1,1608,536,78,61,0,11,1
-123,1,1607,536,78,62,0,11,1
-124,1,1606,536,79,63,0,11,1
-125,1,1606,536,78,64,0,11,1
-126,1,1605,536,79,65,0,11,1
-127,1,1604,536,79,66,0,11,1
-128,1,1603,536,80,66,0,11,1
-129,1,1603,536,79,67,0,11,1
-130,1,1602,536,80,68,0,11,1
-131,1,1601,536,80,69,0,11,1
-132,1,1600,536,80,70,0,11,1
-133,1,1600,536,80,71,0,11,1
-134,1,1599,536,80,72,0,11,1
-135,1,1598,536,81,72,0,11,1
-136,1,1597,536,81,73,0,11,1
-137,1,1597,536,81,74,0,11,1
-138,1,1596,536,81,75,0,11,1
-139,1,1595,536,82,76,0,11,1
-140,1,1594,536,82,77,0,11,1
-141,1,1594,536,82,78,0,11,1
-142,1,1593,537,83,78,0,11,1
-143,1,1593,538,84,78,0,11,1
-144,1,1593,539,85,78,0,11,1
-145,1,1593,540,86,79,0,11,1
-146,1,1593,541,87,79,0,11,1
-147,1,1593,542,88,79,0,11,1
-148,1,1593,543,89,80,0,11,1
-149,1,1593,544,90,80,0,11,1
-150,1,1593,545,91,80,0,11,1
-151,1,1593,547,92,80,0,11,1
-152,1,1592,546,93,80,0,11,1
-153,1,1592,545,93,81,0,11,1
-154,1,1591,545,94,81,0,11,1
-155,1,1591,544,95,82,0,11,1
-156,1,1591,544,95,82,0,11,1
-157,1,1590,543,96,82,0,11,1
-158,1,1590,542,97,83,0,11,1
-159,1,1589,542,98,83,0,11,1
-160,1,1589,541,98,84,0,11,1
-161,1,1589,541,99,84,0,11,1
-162,1,1590,541,101,85,0,11,1
-163,1,1592,541,103,86,0,11,1
-164,1,1594,541,104,87,0,11,1
-165,1,1596,542,106,88,0,11,1
-166,1,1598,542,107,89,0,11,1
-167,1,1600,542,109,90,0,11,1
-168,1,1602,543,110,91,0,11,1
-169,1,1604,543,112,92,0,11,1
-170,1,1606,543,113,93,0,11,1
-171,1,1608,544,115,94,0,11,1
-172,1,1611,545,116,95,0,11,1
-173,1,1614,546,118,97,0,11,1
-174,1,1617,547,120,99,0,11,1
-175,1,1620,548,122,101,0,11,1
-176,1,1623,549,124,103,0,11,1
-177,1,1626,550,126,104,0,11,1
-178,1,1629,551,128,106,0,11,1
-179,1,1632,552,130,108,0,11,1
-180,1,1635,553,132,110,0,11,1
-181,1,1638,555,134,111,0,11,1
-182,1,1644,555,136,113,0,11,1
-183,1,1650,556,138,114,0,11,1
-184,1,1656,557,140,115,0,11,1
-185,1,1663,557,142,117,0,11,1
-186,1,1669,558,144,118,0,11,1
-187,1,1675,559,146,119,0,11,1
-188,1,1682,559,148,121,0,11,1
-189,1,1688,560,150,122,0,11,1
-190,1,1694,561,152,123,0,11,1
-191,1,1701,562,154,124,0,11,1
-192,1,1710,564,153,124,0,11,1
-193,1,1720,566,152,125,0,11,1
-194,1,1729,568,151,126,0,11,1
-195,1,1739,570,150,127,0,11,1
-196,1,1748,572,150,128,0,11,1
-197,1,1758,574,148,128,0,11,1
-198,1,1767,576,148,129,0,11,1
-199,1,1777,578,146,130,0,11,1
-200,1,1786,580,146,131,0,11,1
-1,2,1371,518,33,95,1,1,0.67647
-2,2,1375,516,32,94,1,1,0.66667
-3,2,1379,514,32,93,1,1,0.64829
-4,2,1383,513,33,99,1,1,0.61912
-5,2,1387,519,33,100,1,1,0.64123
-6,2,1391,526,34,100,1,1,0.65714
-7,2,1392,524,34,100,1,1,0.65714
-8,2,1394,530,34,100,1,1,0.65714
-9,2,1397,536,34,100,1,1,0.65714
-10,2,1399,546,33,95,1,1,0.67647
-11,2,1401,543,33,96,1,1,0.70588
-12,2,1403,540,34,97,1,1,0.71429
-13,2,1405,537,35,98,1,1,0.72222
-14,2,1408,535,35,98,1,1,0.72222
-15,2,1410,535,36,99,1,1,0.72973
-16,2,1413,535,36,100,1,1,0.75676
-17,2,1416,535,37,101,1,1,0.73684
-18,2,1419,536,37,101,1,1,0.73684
-19,2,1422,536,38,102,1,1,0.71795
-20,2,1425,536,38,103,1,1,0.71795
-21,2,1428,537,39,104,1,1,0.725
-22,2,1430,537,40,106,1,1,0.73171
-23,2,1433,538,40,107,1,1,0.73171
-24,2,1436,539,40,109,1,1,0.7561
-25,2,1439,540,40,110,1,1,0.7561
-26,2,1442,541,40,112,1,1,0.78049
-27,2,1444,544,41,113,1,1,0.78571
-28,2,1447,547,42,114,1,1,0.76744
-29,2,1450,550,42,115,1,1,0.7907
-30,2,1453,553,43,116,1,1,0.77273
-31,2,1456,556,44,117,1,1,0.77778
-32,2,1460,553,44,118,1,1,0.74883
-33,2,1464,550,44,119,1,1,0.75556
-34,2,1468,548,44,119,1,1,0.75556
-35,2,1472,545,45,120,1,1,0.7359
-36,2,1476,543,45,120,1,1,0.73913
-37,2,1480,540,45,121,1,1,0.73913
-38,2,1484,538,46,122,1,1,0.74468
-39,2,1487,539,47,122,1,1,0.75
-40,2,1491,540,47,123,1,1,0.75
-41,2,1495,541,48,124,1,1,0.7551
-42,2,1499,543,48,125,1,1,0.7551
-43,2,1503,545,49,126,1,1,0.76
-44,2,1508,548,48,127,1,1,0.7551
-45,2,1512,550,49,128,1,1,0.76
-46,2,1516,552,50,129,1,1,0.76471
-47,2,1521,555,49,130,1,1,0.76
-48,2,1525,557,50,131,1,1,0.76471
-49,2,1530,560,50,132,1,1,0.76471
-50,2,1534,560,51,135,1,1,0.76923
-51,2,1539,561,52,138,1,1,0.77358
-52,2,1544,560,52,138,1,1,0.77358
-53,2,1549,559,52,139,1,1,0.77358
-54,2,1554,558,52,140,1,1,0.77358
-55,2,1559,557,52,141,1,1,0.77358
-56,2,1564,556,52,142,1,1,0.79245
-57,2,1569,555,53,143,1,1,0.7963
-58,2,1574,554,53,144,1,1,0.7963
-59,2,1579,553,53,145,1,1,0.7963
-60,2,1584,552,53,146,1,1,0.78672
-61,2,1589,551,53,147,1,1,0.77578
-62,2,1594,550,53,148,1,1,0.76423
-63,2,1599,550,54,148,1,1,0.76412
-64,2,1603,553,54,149,1,1,0.77515
-65,2,1607,556,54,150,1,1,0.78073
-66,2,1612,560,54,151,1,1,0.79545
-67,2,1618,575,54,152,1,1,1
-68,2,1621,565,54,153,1,1,0.8
-69,2,1624,566,55,155,1,1,0.80357
-70,2,1628,567,55,157,1,1,0.80357
-71,2,1631,569,56,159,1,1,0.80702
-72,2,1635,570,56,161,1,1,0.80702
-73,2,1639,571,56,163,1,1,0.80702
-74,2,1642,573,57,165,1,1,1
-75,2,1646,574,57,167,1,1,1
-76,2,1650,576,58,169,1,1,1
-77,2,1652,576,59,170,1,1,1
-78,2,1654,577,60,171,1,1,1
-79,2,1656,577,62,173,1,1,1
-80,2,1658,578,63,174,1,1,1
-81,2,1660,578,64,176,1,1,1
-82,2,1662,579,66,177,1,1,1
-83,2,1664,579,67,179,1,1,1
-84,2,1666,580,69,180,1,1,1
-85,2,1668,582,70,181,1,1,1
-86,2,1670,584,71,183,1,1,1
-87,2,1672,586,72,184,1,1,1
-88,2,1674,589,74,185,1,1,1
-89,2,1676,591,75,186,1,1,1
-90,2,1678,593,76,188,1,1,1
-91,2,1680,596,78,189,1,1,1
-92,2,1682,598,79,190,1,1,1
-93,2,1685,600,79,191,1,1,1
-94,2,1688,602,80,193,1,1,1
-95,2,1691,603,80,195,1,1,1
-96,2,1694,605,80,196,1,1,1
-97,2,1697,606,80,199,1,1,1
-98,2,1700,608,80,200,1,1,1
-99,2,1703,609,80,203,1,1,1
-100,2,1706,611,80,204,1,1,1
-101,2,1710,613,79,206,1,1,1
-102,2,1712,614,80,208,1,1,1
-103,2,1714,616,81,210,1,1,1
-104,2,1716,618,82,212,1,1,1
-105,2,1718,620,83,213,1,1,1
-106,2,1720,622,85,215,1,1,1
-107,2,1722,623,86,218,1,1,1
-108,2,1724,625,87,219,1,1,1
-109,2,1726,627,88,221,1,1,1
-110,2,1728,629,89,223,1,1,1
-111,2,1731,631,90,225,1,1,1
-112,2,1733,632,92,228,1,1,1
-113,2,1736,633,93,231,1,1,1
-114,2,1739,634,94,234,1,1,1
-115,2,1741,635,96,237,1,1,1
-116,2,1744,636,97,240,1,1,1
-117,2,1747,637,98,243,1,1,1
-118,2,1749,638,100,246,1,1,1
-119,2,1752,639,101,249,1,1,1
-120,2,1755,640,102,252,1,1,1
-121,2,1758,642,103,254,1,1,1
-122,2,1761,643,104,257,1,1,1
-123,2,1764,645,106,259,1,1,1
-124,2,1768,646,107,262,1,1,1
-125,2,1771,648,109,264,1,1,1
-126,2,1775,649,110,268,1,1,1
-127,2,1778,651,112,270,1,1,1
-128,2,1781,652,114,273,1,1,1
-129,2,1785,654,115,275,1,1,1
-130,2,1788,655,117,278,1,1,1
-131,2,1792,657,118,281,1,1,1
-132,2,1797,661,117,284,1,1,1
-133,2,1802,665,117,288,1,1,1
-134,2,1807,669,117,292,1,1,0.9661
-135,2,1812,673,117,296,1,1,0.92373
-136,2,1817,677,117,300,1,1,0.88136
-137,2,1823,677,117,304,1,1,0.83051
-138,2,1829,678,117,307,1,1,0.77966
-139,2,1835,679,118,310,1,1,0.72269
-140,2,1841,680,118,313,1,1,0.67227
-141,2,1847,681,119,317,1,1,0.61667
-142,2,1853,684,124,317,1,1,0.544
-143,2,1860,687,128,318,1,1,0.47287
-144,2,1866,690,133,318,1,1,0.41045
-145,2,1873,693,137,319,1,1,0.34783
-1,3,1391,474,10,148,0,10,0.80537
-2,3,1395,471,10,150,0,10,0.80795
-3,3,1399,468,10,152,0,10,0.80392
-4,3,1403,466,11,153,0,10,0.80519
-5,3,1406,471,11,154,0,10,0.80645
-6,3,1409,476,11,155,0,10,0.80128
-7,3,1413,481,11,157,0,10,0.8038
-8,3,1416,486,11,158,0,10,0.80503
-9,3,1419,491,11,159,0,10,0.80625
-10,3,1422,496,11,161,0,10,0.80247
-11,3,1425,494,11,162,0,10,0.80368
-12,3,1428,492,11,164,0,10,0.80606
-13,3,1431,490,11,166,0,10,0.80838
-14,3,1434,489,11,167,0,10,0.80952
-15,3,1437,487,11,169,0,10,0.81176
-16,3,1441,485,10,170,0,10,0.81287
-17,3,1444,483,10,172,0,10,0.81503
-18,3,1447,482,10,173,0,10,0.81609
-19,3,1450,480,10,175,0,10,0.81818
-20,3,1453,478,10,177,0,10,0.82022
-21,3,1457,477,10,178,0,10,0.82123
-22,3,1460,478,10,180,0,10,0.81768
-23,3,1463,480,10,182,0,10,0.81967
-24,3,1467,482,10,183,0,10,0.82065
-25,3,1470,484,10,185,0,10,0.82258
-26,3,1474,486,10,186,0,10,0.82353
-27,3,1477,488,10,188,0,10,0.8254
-28,3,1480,490,10,189,0,10,0.82632
-29,3,1484,492,10,191,0,10,0.82812
-30,3,1487,494,10,192,0,10,0.82902
-31,3,1491,496,10,194,0,10,0.82564
-32,3,1494,493,11,196,0,10,0.81218
-33,3,1498,491,11,197,0,10,0.81313
-34,3,1502,488,11,199,0,10,0.815
-35,3,1506,486,11,200,0,10,0.81592
-36,3,1510,483,11,202,0,10,0.82266
-37,3,1514,481,11,203,0,10,0.82843
-38,3,1518,478,11,205,0,10,0.83495
-39,3,1522,476,11,206,0,10,0.83575
-40,3,1526,473,11,208,0,10,0.83254
-41,3,1530,471,11,210,0,10,0.82938
-42,3,1534,472,11,211,0,10,0.83019
-43,3,1538,473,11,213,0,10,0.8271
-44,3,1542,474,11,215,0,10,0.8287
-45,3,1546,476,11,216,0,10,0.82488
-46,3,1550,477,11,218,0,10,0.82192
-47,3,1554,478,11,219,0,10,0.82273
-48,3,1558,480,11,220,0,10,0.819
-49,3,1562,481,11,222,0,10,0.82063
-50,3,1566,482,11,224,0,10,0.81778
-51,3,1571,484,11,225,0,10,0.81858
-52,3,1574,482,11,226,0,10,0.81938
-53,3,1578,481,11,227,0,10,0.82018
-54,3,1581,480,11,228,0,10,0.81659
-55,3,1585,479,11,229,0,10,0.81304
-56,3,1589,477,10,231,0,10,0.81466
-57,3,1593,476,10,232,0,10,0.81545
-58,3,1597,475,10,233,0,10,0.81624
-59,3,1601,474,10,234,0,10,0.81277
-60,3,1605,473,10,235,0,10,0.80932
-61,3,1609,472,10,236,0,10,0.81013
-62,3,1612,472,10,238,0,10,0.80753
-63,3,1615,473,10,240,0,10,0.80913
-64,3,1618,474,10,241,0,10,0.80579
-65,3,1621,475,10,243,0,10,0.80328
-66,3,1624,476,10,245,0,10,0.80488
-67,3,1627,476,10,247,0,10,0.20161
-68,3,1630,477,10,249,0,10,0.804
-69,3,1633,478,10,250,0,10,0.8008
-70,3,1636,479,10,252,0,10,0.80237
-71,3,1640,480,10,254,0,10,0.8
-72,3,1641,479,10,256,0,10,0.80156
-73,3,1642,479,10,257,0,10,0.80233
-74,3,1643,478,10,259,0,10,0.16538
-75,3,1644,478,10,260,0,10,0.28352
-76,3,1645,478,11,262,0,10,0.43631
-77,3,1646,477,11,264,0,10,0.48679
-78,3,1647,477,11,265,0,10,0.54073
-79,3,1648,476,11,267,0,10,0.59453
-80,3,1649,476,11,268,0,10,0.64405
-81,3,1651,476,11,270,0,10,0.64483
-82,3,1651,476,11,272,0,10,0.75031
-83,3,1651,476,11,275,0,10,0.80072
-84,3,1651,476,12,277,0,10,0.80216
-85,3,1651,476,12,280,0,10,0.80427
-86,3,1652,476,12,282,0,10,0.80212
-87,3,1652,476,12,285,0,10,0.8042
-88,3,1652,476,12,287,0,10,0.80556
-89,3,1652,476,13,290,0,10,0.80412
-90,3,1652,476,13,292,0,10,0.80546
-91,3,1653,476,13,295,0,10,0.80405
-92,3,1652,475,13,298,0,10,0.80268
-93,3,1652,475,13,301,0,10,0.80464
-94,3,1652,475,13,303,0,10,0.80592
-95,3,1651,475,14,306,0,10,0.80782
-96,3,1651,475,14,308,0,10,0.80583
-97,3,1651,475,13,311,0,10,0.80449
-98,3,1650,475,14,313,0,10,0.80573
-99,3,1650,475,14,316,0,10,0.80757
-100,3,1650,475,14,318,0,10,0.80878
-101,3,1650,475,14,321,0,10,0.80745
-102,3,1649,474,14,324,0,10,0.80923
-103,3,1649,474,14,327,0,10,0.81098
-104,3,1649,474,14,329,0,10,0.81515
-105,3,1648,474,15,332,0,10,0.81381
-106,3,1648,474,15,334,0,10,0.81493
-107,3,1648,474,14,337,0,10,0.81953
-108,3,1647,474,15,339,0,10,0.81765
-109,3,1647,474,15,342,0,10,0.82216
-110,3,1647,474,15,344,0,10,0.82319
-111,3,1647,474,15,347,0,10,0.82471
-112,3,1646,473,15,350,0,10,0.82621
-113,3,1645,473,15,353,0,10,0.82768
-114,3,1644,473,16,355,0,10,0.82865
-115,3,1644,473,15,358,0,10,0.83008
-116,3,1643,473,15,360,0,10,0.83102
-117,3,1642,473,16,363,0,10,0.83242
-118,3,1641,473,16,365,0,10,0.83333
-119,3,1641,473,15,368,0,10,0.83469
-120,3,1640,473,16,370,0,10,0.83558
-121,3,1639,473,16,373,0,10,0.83422
-122,3,1638,472,16,376,0,10,0.83554
-123,3,1638,472,16,379,0,10,0.83421
-124,3,1637,472,16,381,0,10,0.83246
-125,3,1636,472,16,384,0,10,0.83117
-126,3,1635,472,17,386,0,10,0.82946
-127,3,1635,472,16,389,0,10,0.82821
-128,3,1634,472,16,391,0,10,0.82908
-129,3,1633,472,17,394,0,10,0.82785
-130,3,1632,472,17,396,0,10,0.8262
-131,3,1632,472,17,399,0,10,0.825
-132,3,1632,471,17,402,0,10,0.82382
-133,3,1632,471,17,405,0,10,0.82266
-134,3,1632,471,17,407,0,10,0.82108
-135,3,1632,471,18,410,0,10,0.82238
-136,3,1632,471,18,412,0,10,0.82082
-137,3,1632,471,18,415,0,10,0.81971
-138,3,1632,471,19,417,0,10,0.81818
-139,3,1632,471,19,420,0,10,0.8171
-140,3,1632,471,19,422,0,10,0.8156
-141,3,1633,471,19,425,0,10,0.81455
-142,3,1633,469,19,430,0,10,0.81671
-143,3,1633,468,19,435,0,10,0.81881
-144,3,1633,466,19,440,0,10,0.82086
-145,3,1634,465,19,445,0,10,0.82063
-146,3,1634,464,19,450,0,10,0.82262
-147,3,1634,462,19,455,0,10,0.82456
-148,3,1634,461,20,460,0,10,0.8243
-149,3,1635,459,19,465,0,10,0.82618
-150,3,1635,458,19,470,0,10,0.82803
-151,3,1635,457,20,475,0,10,0.82983
-152,3,1635,455,20,480,0,10,0.8316
-153,3,1636,454,19,485,0,10,0.83128
-154,3,1636,452,19,490,0,10,0.83299
-155,3,1636,451,20,495,0,10,0.83266
-156,3,1636,450,20,500,0,10,0.83433
-157,3,1637,448,19,505,0,10,0.83597
-158,3,1637,447,20,510,0,10,0.83562
-159,3,1637,445,20,515,0,10,0.83721
-160,3,1637,444,20,520,0,10,0.83685
-161,3,1638,443,20,525,0,10,0.8384
-162,3,1640,442,20,530,0,10,0.83804
-163,3,1642,442,20,535,0,10,0.83769
-164,3,1644,442,20,540,0,10,0.83734
-165,3,1646,442,20,544,0,10,0.8367
-166,3,1648,442,20,549,0,10,0.83636
-167,3,1650,441,20,555,0,10,0.83633
-168,3,1652,441,20,559,0,10,0.83571
-169,3,1654,441,20,564,0,10,0.8354
-170,3,1656,441,20,569,0,10,0.83509
-171,3,1659,441,20,574,0,10,0.83478
-172,3,1663,442,20,582,0,10,0.83533
-173,3,1668,444,20,589,0,10,0.8339
-174,3,1672,445,21,597,0,10,0.83278
-175,3,1677,447,20,604,0,10,0.8314
-176,3,1681,448,21,613,0,10,0.83062
-177,3,1686,450,21,620,0,10,0.83092
-178,3,1690,451,21,628,0,10,0.82989
-179,3,1695,453,21,635,0,10,0.81604
-180,3,1699,454,22,643,0,10,0.80124
-181,3,1704,456,22,651,0,10,0.78681
-182,3,1710,459,22,651,0,10,0.77914
-183,3,1717,462,22,651,0,10,0.77301
-184,3,1724,465,22,652,0,10,0.7657
-185,3,1731,469,22,651,0,10,0.75767
-186,3,1738,472,22,652,0,10,0.75038
-187,3,1744,475,22,652,0,10,0.74426
-188,3,1751,479,22,651,0,10,0.7362
-189,3,1758,482,22,652,0,10,0.72894
-190,3,1765,485,22,652,0,10,0.72282
-191,3,1772,489,22,652,0,10,0.71516
-192,3,1783,492,22,652,0,10,0.71057
-193,3,1794,496,22,652,0,10,0.70291
-194,3,1805,499,22,652,0,10,0.69678
-195,3,1816,503,22,652,0,10,0.68913
-196,3,1828,506,22,652,0,10,0.683
-197,3,1839,510,22,652,0,10,0.67688
-198,3,1850,513,22,652,0,10,0.67075
-199,3,1861,517,22,652,0,10,0.66309
-200,3,1872,520,22,652,0,10,0.65697
-1,4,1477,519,38,76,1,1,1
-2,4,1481,517,37,72,1,1,1
-3,4,1485,515,37,68,1,1,1
-4,4,1490,513,36,64,1,1,1
-5,4,1496,519,35,70,1,1,1
-6,4,1500,528,34,77,1,1,1
-7,4,1504,522,36,81,1,1,1
-8,4,1506,530,38,80,1,1,1
-9,4,1512,536,34,81,1,1,1
-10,4,1512,548,38,79,1,1,1
-11,4,1517,534,34,79,1,1,1
-12,4,1519,539,36,78,1,1,1
-13,4,1523,536,38,79,1,1,1
-14,4,1525,533,44,80,1,1,1
-15,4,1529,535,43,81,1,1,1
-16,4,1534,538,42,81,1,1,1
-17,4,1538,538,41,81,1,1,1
-18,4,1542,538,40,81,1,1,1
-19,4,1546,538,39,82,1,1,1
-20,4,1550,538,38,82,1,1,1
-21,4,1555,538,37,83,1,1,1
-22,4,1559,539,37,82,1,1,1
-23,4,1563,540,38,82,1,1,1
-24,4,1567,541,38,82,1,1,1
-25,4,1571,542,39,82,1,1,1
-26,4,1575,543,39,82,1,1,1
-27,4,1580,544,39,82,1,1,1
-28,4,1584,546,38,82,1,1,1
-29,4,1589,548,37,83,1,1,1
-30,4,1593,550,36,84,1,1,1
-31,4,1598,552,35,85,1,1,1
-32,4,1607,549,34,85,1,1,1
-33,4,1617,546,33,86,1,1,1
-34,4,1621,544,33,87,1,1,1
-35,4,1625,543,33,87,1,1,1
-36,4,1629,541,33,88,1,1,1
-37,4,1633,540,33,88,1,1,1
-38,4,1634,540,35,88,1,1,1
-39,4,1636,541,37,88,1,1,1
-40,4,1637,541,39,89,1,1,1
-41,4,1639,542,41,89,1,1,1
-42,4,1643,542,41,90,1,1,1
-43,4,1648,543,41,90,1,1,1
-44,4,1652,544,42,90,1,1,1
-45,4,1657,545,42,91,1,1,1
-46,4,1662,545,41,92,1,1,1
-47,4,1666,546,42,92,1,1,1
-48,4,1671,547,42,92,1,1,1
-49,4,1676,548,42,93,1,1,1
-50,4,1691,550,33,94,1,1,1
-51,4,1686,549,42,93,1,1,1
-52,4,1690,548,42,94,1,1,1
-53,4,1694,548,43,94,1,1,1
-54,4,1698,548,43,94,1,1,1
-55,4,1702,547,44,95,1,1,1
-56,4,1706,547,44,95,1,1,1
-57,4,1710,547,45,95,1,1,1
-58,4,1714,546,45,96,1,1,1
-59,4,1718,546,46,96,1,1,1
-60,4,1722,546,46,96,1,1,1
-61,4,1727,546,46,96,1,1,1
-62,4,1734,545,43,97,1,1,1
-63,4,1741,545,41,97,1,1,1
-64,4,1748,545,38,97,1,1,1
-65,4,1755,545,36,98,1,1,1
-66,4,1756,546,38,98,1,1,1
-67,4,1758,547,40,98,1,1,1
-68,4,1759,548,43,98,1,1,1
-69,4,1761,549,44,98,1,1,1
-70,4,1762,550,47,98,1,1,1
-71,4,1764,551,49,99,1,1,1
-72,4,1774,552,43,99,1,1,1
-73,4,1785,553,37,100,1,1,1
-74,4,1783,553,38,100,1,1,1
-75,4,1782,553,39,100,1,1,1
-76,4,1781,553,40,100,1,1,1
-77,4,1780,554,41,100,1,1,1
-78,4,1778,554,43,100,1,1,1
-79,4,1777,554,44,100,1,1,1
-80,4,1776,554,45,100,1,1,1
-81,4,1775,555,46,100,1,1,1
-82,4,1775,555,46,100,1,1,1
-83,4,1775,555,46,101,1,1,1
-84,4,1775,556,47,101,1,1,1
-85,4,1775,556,47,101,1,1,1
-86,4,1775,557,48,101,1,1,1
-87,4,1775,557,48,102,1,1,1
-88,4,1775,557,48,102,1,1,1
-89,4,1775,558,49,102,1,1,1
-90,4,1775,558,49,103,1,1,1
-91,4,1775,559,50,103,1,1,1
-92,4,1789,560,38,105,1,1,1
-93,4,1787,560,38,105,1,1,1
-94,4,1785,561,39,105,1,1,1
-95,4,1783,562,40,105,1,1,1
-96,4,1781,563,41,105,1,1,1
-97,4,1779,563,42,106,1,1,1
-98,4,1777,564,43,106,1,1,0.94647
-99,4,1775,565,44,106,1,1,0.88224
-100,4,1773,566,45,106,1,1,0.82365
-101,4,1771,567,46,106,1,1,0.76954
-102,4,1770,566,45,107,1,1,0.72222
-103,4,1769,566,45,107,1,1,0.68478
-104,4,1768,566,45,107,1,1,0.65056
-105,4,1767,566,45,107,1,1,0.61957
-106,4,1766,566,44,107,1,1,0.57202
-107,4,1765,566,44,107,1,1,0.53827
-108,4,1764,566,44,107,1,1,0.5463
-109,4,1763,566,44,107,1,1,0.56481
-110,4,1763,566,43,108,1,1,0.57798
-111,4,1760,566,46,107,1,1,0.60185
-112,4,1758,566,49,107,1,1,0.61111
-113,4,1756,566,50,105,1,1,0.63208
-114,4,1754,566,51,103,1,1,0.65385
-115,4,1751,566,53,101,1,1,0.67647
-116,4,1750,566,53,101,1,1,0.68627
-117,4,1745,566,54,101,1,1,0.70713
-118,4,1746,566,55,101,1,1,0.72164
-119,4,1743,566,58,110,1,1,0.70988
-120,4,1741,565,57,110,1,1,0.75396
-121,4,1739,565,56,110,1,1,0.7958
-122,4,1737,564,55,111,1,1,0.83163
-123,4,1735,564,54,111,1,1,0.86916
-124,4,1733,564,53,111,1,1,0.90575
-125,4,1730,563,54,112,1,1,0.93693
-126,4,1728,562,54,112,1,1,0.96653
-127,4,1726,562,54,112,1,1,0.98842
-128,4,1724,562,52,112,1,1,1
-129,4,1722,563,54,113,1,1,1
-130,4,1720,561,58,111,1,1,1
-131,4,1714,561,62,111,1,1,1
-132,4,1711,561,62,111,1,1,1
-133,4,1709,561,62,112,1,1,1
-134,4,1707,561,62,112,1,1,1
-135,4,1705,561,62,113,1,1,1
-136,4,1702,561,62,113,1,1,1
-137,4,1700,561,61,113,1,1,1
-138,4,1699,561,61,114,1,1,1
-139,4,1694,562,62,114,1,1,1
-140,4,1693,560,61,114,1,1,1
-141,4,1693,558,59,114,1,1,1
-142,4,1692,557,58,120,1,1,1
-143,4,1690,558,57,120,1,1,1
-144,4,1689,560,55,120,1,1,1
-145,4,1688,561,53,121,1,1,1
-146,4,1687,563,51,120,1,1,1
-147,4,1686,564,49,121,1,1,1
-148,4,1685,566,47,121,1,1,1
-149,4,1684,568,45,121,1,1,1
-150,4,1680,566,45,121,1,1,0.94654
-151,4,1676,564,45,122,1,1,0.88689
-152,4,1672,563,46,121,1,1,0.84374
-153,4,1668,561,46,122,1,1,0.7945
-154,4,1665,560,46,121,1,1,0.75462
-155,4,1661,558,46,122,1,1,0.68967
-156,4,1657,556,46,122,1,1,0.63155
-157,4,1653,555,47,122,1,1,0.55589
-158,4,1649,553,47,122,1,1,0.44157
-159,4,1646,552,47,122,1,1,0.37398
-160,4,1642,551,47,122,1,1,0.28557
-161,4,1638,551,48,122,1,1,0.223
-162,4,1635,551,47,122,1,1,0.21494
-163,4,1631,550,48,123,1,1,0.21198
-164,4,1628,550,47,123,1,1,0.20413
-165,4,1624,550,48,123,1,1,0.19816
-166,4,1620,549,48,124,1,1,0.192
-167,4,1617,549,48,124,1,1,0.2209
-168,4,1613,549,48,124,1,1,0.24833
-169,4,1610,549,48,124,1,1,0.27298
-170,4,1610,549,48,124,1,1,0.27788
-171,4,1610,550,48,124,1,1,0.288
-172,4,1610,550,49,125,1,1,0.29222
-173,4,1611,551,48,124,1,1,0.30155
-174,4,1611,551,49,125,1,1,0.32952
-175,4,1611,552,49,125,1,1,0.36222
-176,4,1612,552,48,125,1,1,0.37836
-177,4,1612,553,49,125,1,1,0.41714
-178,4,1612,553,49,126,1,1,0.45433
-179,4,1613,554,49,126,1,1,0.47764
-180,4,1612,554,50,126,1,1,0.52447
-181,4,1612,554,50,126,1,1,0.5677
-182,4,1612,554,50,126,1,1,0.66559
-183,4,1612,554,50,127,1,1,0.77099
-184,4,1612,554,50,127,1,1,0.87561
-185,4,1612,554,50,127,1,1,1
-186,4,1612,554,50,128,1,1,1
-187,4,1612,554,50,128,1,1,1
-188,4,1612,554,50,128,1,1,1
-189,4,1612,554,50,129,1,1,1
-190,4,1607,553,55,129,1,1,1
-191,4,1602,552,61,129,1,1,1
-192,4,1598,552,66,129,1,1,1
-193,4,1599,551,65,129,1,1,1
-194,4,1600,551,65,129,1,1,1
-195,4,1603,553,63,129,1,1,1
-196,4,1606,555,61,130,1,1,1
-197,4,1607,553,61,129,1,1,1
-198,4,1609,551,61,129,1,1,1
-199,4,1609,549,65,130,1,1,1
-200,4,1611,549,62,130,1,1,1
-201,4,1612,548,61,130,1,1,1
-202,4,1617,547,61,133,1,1,1
-203,4,1617,547,61,134,1,1,1
-204,4,1620,545,60,134,1,1,1
-205,4,1621,548,65,131,1,1,1
-206,4,1624,549,65,130,1,1,1
-207,4,1629,551,57,133,1,1,1
-208,4,1630,553,64,133,1,1,1
-209,4,1631,555,66,133,1,1,1
-210,4,1633,555,69,133,1,1,1
-211,4,1639,555,66,134,1,1,1
-212,4,1643,555,66,134,1,1,1
-213,4,1644,555,69,137,1,1,1
-214,4,1653,555,66,137,1,1,1
-215,4,1654,556,74,138,1,1,1
-216,4,1661,556,73,139,1,1,1
-217,4,1665,556,77,135,1,1,1
-218,4,1674,556,72,138,1,1,1
-219,4,1678,557,73,138,1,1,1
-220,4,1685,555,72,139,1,1,1
-221,4,1692,553,71,140,1,1,1
-222,4,1699,551,70,141,1,1,1
-223,4,1707,549,69,145,1,1,1
-224,4,1712,547,69,145,1,1,1
-225,4,1719,545,69,145,1,1,1
-226,4,1724,544,69,143,1,1,1
-227,4,1737,544,65,147,1,1,1
-228,4,1743,544,66,146,1,1,1
-229,4,1749,546,69,146,1,1,1
-230,4,1758,546,68,146,1,1,1
-231,4,1767,546,65,150,1,1,1
-232,4,1774,547,68,149,1,1,1
-233,4,1779,546,72,150,1,1,1
-234,4,1791,545,73,149,1,1,1
-235,4,1800,542,73,150,1,1,1
-236,4,1809,539,77,150,1,1,1
-237,4,1823,537,70,153,1,1,1
-238,4,1837,535,69,154,1,1,1
-239,4,1845,533,73,157,1,1,1
-240,4,1857,533,70,157,1,1,0.90141
-241,4,1871,534,65,158,1,1,0.75758
-242,4,1882,531,66,158,1,1,0.58209
-243,4,1897,528,65,159,1,1,0.36364
-1,5,1521,568,52,109,1,1,1
-2,5,1527,561,55,118,1,1,1
-3,5,1538,555,55,118,1,1,1
-4,5,1541,560,55,118,1,1,1
-5,5,1547,567,55,120,1,1,1
-6,5,1555,576,55,124,1,1,1
-7,5,1559,572,54,122,1,1,1
-8,5,1567,580,55,125,1,1,1
-9,5,1575,589,56,127,1,1,1
-10,5,1581,602,52,127,1,1,1
-11,5,1590,583,55,132,1,1,1
-12,5,1594,589,55,133,1,1,1
-13,5,1604,592,56,135,1,1,1
-14,5,1610,583,55,138,1,1,1
-15,5,1618,585,55,140,1,1,1
-16,5,1627,588,55,141,1,1,1
-17,5,1635,588,55,142,1,1,1
-18,5,1643,588,55,143,1,1,1
-19,5,1652,588,55,145,1,1,1
-20,5,1659,590,56,145,1,1,1
-21,5,1667,592,57,146,1,1,1
-22,5,1674,594,59,150,1,1,1
-23,5,1682,596,61,154,1,1,1
-24,5,1686,593,61,156,1,1,1
-25,5,1694,598,61,158,1,1,1
-26,5,1702,603,62,160,1,1,1
-27,5,1710,608,62,162,1,1,1
-28,5,1718,614,63,163,1,1,1
-29,5,1727,622,64,162,1,1,1
-30,5,1735,619,64,163,1,1,1
-31,5,1744,623,64,165,1,1,1
-32,5,1754,627,66,166,1,1,1
-33,5,1765,613,67,169,1,1,1
-34,5,1774,615,69,169,1,1,1
-35,5,1783,617,72,170,1,1,1
-36,5,1793,619,73,170,1,1,1
-37,5,1802,621,76,171,1,1,1
-38,5,1811,623,78,171,1,1,1
-39,5,1821,626,80,171,1,1,1
-40,5,1830,628,80,176,1,1,1
-41,5,1840,631,79,181,1,1,1
-42,5,1857,636,79,181,1,1,0.8
-43,5,1866,636,79,181,1,1,0.6875
-44,5,1879,635,76,187,1,1,0.54545
-45,5,1892,657,76,175,1,1,0.37662
-1,6,1609,558,57,118,1,1,1
-2,6,1615,560,57,114,1,1,1
-3,6,1626,546,58,127,1,1,1
-4,6,1633,553,58,125,1,1,1
-5,6,1640,563,61,130,1,1,1
-6,6,1647,574,61,130,1,1,1
-7,6,1656,574,60,124,1,1,1
-8,6,1663,581,61,132,1,1,1
-9,6,1666,588,64,126,1,1,1
-10,6,1669,600,69,132,1,1,1
-11,6,1677,585,67,135,1,1,1
-12,6,1686,588,66,136,1,1,1
-13,6,1695,591,65,138,1,1,1
-14,6,1703,583,62,140,1,1,1
-15,6,1714,585,61,142,1,1,1
-16,6,1720,587,60,145,1,1,1
-17,6,1728,588,60,144,1,1,1
-18,6,1736,590,60,143,1,1,1
-19,6,1744,591,60,143,1,1,1
-20,6,1752,593,61,142,1,1,1
-21,6,1760,597,63,142,1,1,1
-22,6,1768,597,66,146,1,1,1
-23,6,1776,597,69,150,1,1,1
-24,6,1785,598,71,153,1,1,1
-25,6,1793,598,74,157,1,1,1
-26,6,1802,599,76,160,1,1,1
-27,6,1809,603,76,162,1,1,1
-28,6,1819,609,78,164,1,1,1
-29,6,1830,616,79,165,1,1,1
-30,6,1839,620,77,168,1,1,1
-31,6,1849,625,74,170,1,1,0.96
-32,6,1861,616,75,183,1,1,0.78947
-33,6,1871,619,74,176,1,1,0.66667
-34,6,1881,622,73,169,1,1,0.54054
-35,6,1891,625,74,164,1,1,0.4
-36,6,1901,628,76,160,1,1,0.25974
-1,7,1445,511,33,78,1,1,0.94713
-2,7,1448,504,33,79,1,1,0.97537
-3,7,1451,500,34,78,1,1,0.97685
-4,7,1456,501,31,79,1,1,1
-5,7,1461,509,30,80,1,1,1
-6,7,1466,518,30,80,1,1,1
-7,7,1466,510,31,80,1,1,1
-8,7,1469,515,31,81,1,1,1
-9,7,1473,521,30,82,1,1,1
-10,7,1477,532,31,84,1,1,1
-11,7,1479,519,28,85,1,1,1
-12,7,1480,522,28,84,1,1,1
-13,7,1486,519,26,84,1,1,1
-14,7,1488,516,28,81,1,1,1
-15,7,1491,519,28,81,1,1,1
-16,7,1494,523,28,81,1,1,1
-17,7,1494,520,28,81,1,1,1
-18,7,1500,519,31,82,1,1,1
-19,7,1503,519,31,82,1,1,1
-20,7,1507,519,31,82,1,1,1
-21,7,1511,520,31,81,1,1,1
-22,7,1515,520,31,81,1,1,1
-23,7,1519,521,31,81,1,1,1
-24,7,1522,522,31,82,1,1,1
-25,7,1526,524,31,82,1,1,1
-26,7,1529,526,31,82,1,1,1
-27,7,1533,528,31,82,1,1,1
-28,7,1535,532,32,82,1,1,1
-29,7,1538,537,33,81,1,1,1
-30,7,1541,539,32,81,1,1,1
-31,7,1544,541,32,81,1,1,1
-32,7,1548,543,31,82,1,1,1
-33,7,1554,531,30,82,1,1,1
-34,7,1558,528,30,82,1,1,1
-35,7,1562,525,30,83,1,1,1
-36,7,1566,522,31,84,1,1,1
-37,7,1570,519,31,85,1,1,1
-38,7,1575,517,31,85,1,1,1
-39,7,1579,518,32,86,1,1,1
-40,7,1584,519,32,87,1,1,1
-41,7,1589,520,33,88,1,1,1
-42,7,1594,521,33,89,1,1,1
-43,7,1599,522,33,90,1,1,1
-44,7,1604,524,34,90,1,1,1
-45,7,1608,526,34,90,1,1,1
-46,7,1612,528,34,90,1,1,1
-47,7,1617,530,34,90,1,1,1
-48,7,1621,532,34,90,1,1,1
-49,7,1626,534,34,91,1,1,1
-50,7,1631,534,34,91,1,1,1
-51,7,1636,534,34,91,1,1,1
-52,7,1640,533,34,91,1,1,1
-53,7,1644,533,35,91,1,1,1
-54,7,1648,532,36,91,1,1,1
-55,7,1652,532,37,91,1,1,1
-56,7,1656,532,37,91,1,1,1
-57,7,1660,531,38,91,1,1,1
-58,7,1664,531,39,91,1,1,1
-59,7,1668,531,40,91,1,1,1
-60,7,1671,530,39,94,1,1,1
-61,7,1675,530,39,94,1,1,1
-62,7,1679,530,39,95,1,1,1
-63,7,1683,530,39,96,1,1,1
-64,7,1687,530,39,96,1,1,1
-65,7,1691,530,39,97,1,1,1
-66,7,1695,530,39,98,1,1,1
-67,7,1700,531,38,98,1,1,1
-68,7,1701,530,38,99,1,1,1
-69,7,1702,530,38,99,1,1,1
-70,7,1703,529,38,100,1,1,1
-71,7,1704,529,38,100,1,1,1
-72,7,1706,529,37,100,1,1,1
-73,7,1707,529,37,100,1,1,1
-74,7,1708,529,37,100,1,1,1
-75,7,1709,530,37,100,1,1,1
-76,7,1710,530,37,100,1,1,1
-77,7,1711,530,37,100,1,1,0.98567
-78,7,1712,531,37,100,1,1,0.95701
-79,7,1713,531,37,100,1,1,0.91402
-80,7,1714,531,37,100,1,1,0.88744
-81,7,1715,532,37,100,1,1,0.8567
-82,7,1713,532,37,100,1,1,0.77488
-83,7,1712,532,37,100,1,1,0.7186
-84,7,1711,533,37,100,1,1,0.64825
-85,7,1710,533,37,100,1,1,0.60709
-86,7,1709,533,37,100,1,1,0.57009
-87,7,1708,534,37,100,1,1,0.52762
-88,7,1707,534,37,100,1,1,0.54455
-89,7,1706,535,37,100,1,1,0.55446
-90,7,1704,536,37,100,1,1,0.56436
-91,7,1702,538,38,100,1,1,0.57426
-92,7,1700,539,38,101,1,1,0.57843
-93,7,1699,541,38,101,1,1,0.57843
-94,7,1697,542,38,102,1,1,0.58252
-95,7,1695,544,39,102,1,1,0.55388
-96,7,1693,546,39,101,1,1,0.55074
-97,7,1692,547,39,102,1,1,0.57888
-98,7,1690,549,39,102,1,1,0.61505
-99,7,1688,550,40,103,1,1,0.6454
-100,7,1686,552,40,103,1,1,0.68293
-101,7,1685,554,40,103,1,1,0.72702
-102,7,1683,552,38,105,1,1,0.77092
-103,7,1682,550,36,107,1,1,0.81081
-104,7,1681,548,34,109,1,1,0.84
-105,7,1678,548,34,109,1,1,0.81299
-106,7,1675,548,34,109,1,1,0.77299
-107,7,1672,548,35,110,1,1,0.75826
-108,7,1669,548,35,110,1,1,0.72948
-109,7,1666,548,35,110,1,1,0.69419
-110,7,1664,548,35,111,1,1,0.67857
-111,7,1661,548,35,111,1,1,0.60417
-112,7,1658,549,36,111,1,1,0.56757
-113,7,1655,549,36,111,1,1,0.50193
-114,7,1652,549,36,111,1,1,0.43243
-115,7,1650,549,36,112,1,1,0.41976
-116,7,1647,549,36,112,1,1,0.38866
-117,7,1644,549,36,112,1,1,0.34202
-118,7,1641,549,37,113,1,1,0.31994
-119,7,1638,549,37,113,1,1,0.33518
-120,7,1636,550,37,113,1,1,0.32479
-121,7,1632,549,37,114,1,1,0.31716
-122,7,1628,549,38,114,1,1,0.32375
-123,7,1625,549,37,114,1,1,0.31236
-124,7,1621,549,38,114,1,1,0.31394
-125,7,1617,549,39,114,1,1,0.315
-126,7,1614,549,38,114,1,1,0.2903
-127,7,1610,549,39,115,1,1,0.33405
-128,7,1607,549,38,115,1,1,0.37003
-129,7,1603,549,39,115,1,1,0.3944
-130,7,1599,549,40,115,1,1,0.45164
-131,7,1596,548,39,116,1,1,0.51581
-132,7,1592,548,40,116,1,1,0.58203
-133,7,1588,548,41,116,1,1,0.6337
-134,7,1585,548,40,117,1,1,0.65957
-135,7,1581,548,41,117,1,1,0.69229
-136,7,1578,548,40,117,1,1,0.71807
-137,7,1574,548,41,117,1,1,0.75847
-138,7,1570,548,42,117,1,1,0.78557
-139,7,1567,548,41,117,1,1,0.81638
-140,7,1563,548,42,117,1,1,0.84391
-141,7,1560,548,42,118,1,1,0.88216
-142,7,1556,548,42,118,1,1,0.92027
-143,7,1552,548,43,118,1,1,0.96047
-144,7,1549,548,42,119,1,1,1
-145,7,1545,548,43,119,1,1,1
-146,7,1542,549,43,119,1,1,1
-147,7,1534,550,47,118,1,1,1
-148,7,1526,552,51,117,1,1,1
-149,7,1519,554,54,116,1,1,1
-150,7,1513,556,53,113,1,1,1
-151,7,1509,554,51,114,1,1,1
-152,7,1505,552,50,116,1,1,1
-153,7,1501,551,49,117,1,1,1
-154,7,1497,549,47,118,1,1,1
-155,7,1493,547,46,120,1,1,1
-156,7,1489,546,45,121,1,1,1
-157,7,1483,546,45,121,1,1,1
-158,7,1478,546,45,122,1,1,1
-159,7,1472,547,45,121,1,1,1
-160,7,1467,547,45,122,1,1,1
-161,7,1461,547,45,122,1,1,1
-162,7,1456,548,45,122,1,1,1
-163,7,1450,548,44,120,1,1,1
-164,7,1445,548,44,119,1,1,1
-165,7,1441,548,44,119,1,1,1
-166,7,1437,547,43,119,1,1,1
-167,7,1434,546,42,119,1,1,1
-168,7,1431,545,40,119,1,1,1
-169,7,1428,544,39,120,1,1,1
-170,7,1423,543,40,121,1,1,1
-171,7,1418,542,41,122,1,1,1
-172,7,1413,541,42,123,1,1,1
-173,7,1408,541,44,123,1,1,1
-174,7,1399,542,48,121,1,1,1
-175,7,1391,544,51,118,1,1,1
-176,7,1388,548,51,114,1,1,1
-177,7,1386,547,51,116,1,1,1
-178,7,1383,547,51,116,1,1,1
-179,7,1381,547,50,117,1,1,1
-180,7,1379,547,50,118,1,1,1
-181,7,1377,547,49,119,1,1,1
-182,7,1374,547,49,120,1,1,1
-183,7,1372,547,49,121,1,1,1
-184,7,1370,547,48,122,1,1,1
-185,7,1368,548,48,122,1,1,1
-186,7,1365,547,49,122,1,1,1
-187,7,1363,547,49,122,1,1,1
-188,7,1361,547,49,122,1,1,1
-189,7,1358,546,50,122,1,1,1
-190,7,1356,546,50,122,1,1,1
-191,7,1354,546,50,122,1,1,1
-192,7,1352,546,50,122,1,1,1
-193,7,1349,547,50,122,1,1,1
-194,7,1347,548,50,123,1,1,1
-195,7,1346,547,49,124,1,1,1
-196,7,1345,546,49,125,1,1,1
-197,7,1344,545,48,126,1,1,1
-198,7,1343,545,48,126,1,1,1
-199,7,1342,544,47,127,1,1,1
-200,7,1341,543,47,128,1,1,1
-201,7,1341,543,46,129,1,1,1
-202,7,1340,547,46,126,1,1,1
-203,7,1338,546,46,131,1,1,1
-204,7,1337,547,47,130,1,1,1
-205,7,1336,548,48,129,1,1,1
-206,7,1335,550,50,128,1,1,1
-207,7,1334,550,50,128,1,1,1
-208,7,1333,550,50,129,1,1,1
-209,7,1333,550,50,130,1,1,1
-210,7,1332,551,50,129,1,1,1
-211,7,1332,551,50,130,1,1,1
-212,7,1331,551,50,131,1,1,1
-213,7,1331,552,50,131,1,1,1
-214,7,1332,552,50,131,1,1,1
-215,7,1334,552,49,132,1,1,1
-216,7,1335,553,50,132,1,1,1
-217,7,1337,553,49,133,1,1,1
-218,7,1339,554,49,133,1,1,1
-219,7,1340,553,49,134,1,1,1
-220,7,1341,552,49,135,1,1,1
-221,7,1342,551,50,136,1,1,1
-222,7,1344,551,50,136,1,1,1
-223,7,1346,551,50,137,1,1,1
-224,7,1348,552,51,137,1,1,1
-225,7,1350,552,51,138,1,1,1
-226,7,1352,553,51,137,1,1,1
-227,7,1355,553,51,138,1,1,1
-228,7,1357,553,51,139,1,1,1
-229,7,1359,554,51,139,1,1,1
-230,7,1361,554,52,139,1,1,1
-231,7,1363,555,52,139,1,1,1
-232,7,1365,555,52,140,1,1,1
-233,7,1368,556,52,140,1,1,1
-234,7,1370,552,52,140,1,1,1
-235,7,1373,550,52,142,1,1,1
-236,7,1376,549,53,144,1,1,1
-237,7,1379,548,52,143,1,1,1
-238,7,1383,548,50,141,1,1,1
-239,7,1387,548,49,140,1,1,1
-240,7,1392,548,49,141,1,1,1
-241,7,1397,548,50,142,1,1,1
-242,7,1402,548,50,143,1,1,1
-243,7,1407,548,51,145,1,1,1
-244,7,1413,549,47,147,1,1,1
-245,7,1419,550,44,150,1,1,1
-246,7,1424,550,46,150,1,1,1
-247,7,1430,550,47,150,1,1,1
-248,7,1436,550,45,152,1,1,1
-249,7,1442,551,44,153,1,1,1
-250,7,1448,547,46,157,1,1,1
-251,7,1454,543,48,161,1,1,1
-252,7,1463,540,49,161,1,1,1
-253,7,1470,542,48,158,1,1,1
-254,7,1475,542,49,158,1,1,1
-255,7,1481,542,49,159,1,1,0.9235
-256,7,1487,543,49,159,1,1,0.9195
-257,7,1498,544,48,153,1,1,0.92208
-258,7,1501,542,57,155,1,1,0.92308
-259,7,1501,540,66,158,1,1,0.92453
-260,7,1505,539,72,160,1,1,0.90062
-261,7,1508,538,80,162,1,1,0.86162
-262,7,1517,539,81,163,1,1,0.84228
-263,7,1528,544,82,163,1,1,0.80547
-264,7,1535,545,85,163,1,1,0.6947
-265,7,1542,546,88,163,1,1,0.59633
-266,7,1556,549,88,163,1,1,0.56837
-267,7,1569,551,82,163,1,1,0.52336
-268,7,1574,546,81,169,1,1,0.3538
-269,7,1571,541,96,178,1,1,0.36117
-270,7,1579,543,97,178,1,1,0.2807
-271,7,1596,542,81,178,1,1,0.13067
-272,7,1615,541,61,177,1,1,0.16809
-273,7,1629,541,61,177,1,1,0.18104
-274,7,1641,544,61,177,1,1,0.19319
-275,7,1647,545,62,177,1,1,0.25504
-276,7,1653,546,64,178,1,1,0.32858
-277,7,1662,549,64,178,1,1,0.41281
-278,7,1676,544,66,177,1,1,0.44097
-279,7,1684,546,64,187,1,1,0.50679
-280,7,1706,549,64,187,1,1,0.45205
-281,7,1717,546,64,187,1,1,0.52864
-282,7,1724,548,64,187,1,1,0.62152
-283,7,1735,547,67,186,1,1,0.7452
-284,7,1749,546,73,187,1,1,0.80326
-285,7,1763,546,73,187,1,1,0.89822
-286,7,1774,545,73,193,1,1,1
-287,7,1790,542,73,199,1,1,1
-288,7,1798,543,82,199,1,1,1
-289,7,1817,542,82,202,1,1,1
-290,7,1843,543,68,201,1,1,1
-291,7,1849,542,77,201,1,1,0.92308
-292,7,1856,541,85,201,1,1,0.75581
-293,7,1872,540,85,201,1,1,0.56977
-1,8,-13,662,64,224,1,1,0.78462
-2,8,-21,652,64,224,1,1,0.66154
-1,9,122,711,49,97,1,1,1
-2,9,111,698,49,97,1,1,1
-3,9,105,726,49,97,1,1,1
-4,9,94,724,49,97,1,1,1
-5,9,82,717,38,104,1,1,1
-6,9,66,734,42,105,1,1,1
-7,9,50,740,45,106,1,1,1
-8,9,35,747,48,107,1,1,1
-9,9,17,746,48,107,1,1,1
-10,9,-1,732,48,107,1,1,0.95918
-11,9,-7,757,48,107,1,1,0.83673
-1,10,195,575,46,154,1,1,1
-2,10,188,563,46,154,1,1,1
-3,10,178,584,46,154,1,1,1
-4,10,173,581,46,154,1,1,1
-5,10,165,581,46,154,1,1,1
-6,10,153,590,46,154,1,1,1
-7,10,141,585,46,154,1,1,1
-8,10,135,597,46,154,1,1,1
-9,10,122,594,46,154,1,1,1
-10,10,108,579,47,158,1,1,1
-11,10,99,586,48,162,1,1,1
-12,10,91,594,49,166,1,1,1
-13,10,74,570,50,170,1,1,1
-14,10,60,593,51,162,1,1,1
-15,10,43,588,55,172,1,1,1
-16,10,27,584,59,181,1,1,1
-17,10,10,592,65,178,1,1,1
-18,10,-1,595,65,178,1,1,0.9697
-19,10,-12,598,65,178,1,1,0.80303
-20,10,-25,602,65,178,1,1,0.60606
-1,11,273,585,46,148,1,1,0.76596
-2,11,266,574,46,148,1,1,0.78723
-3,11,258,592,46,148,1,1,0.65957
-4,11,257,592,46,148,1,1,0.80851
-5,11,247,586,46,148,1,1,0.76596
-6,11,242,598,46,148,1,1,0.78723
-7,11,232,593,45,157,1,1,0.76087
-8,11,222,602,45,157,1,1,0.73913
-9,11,214,602,45,157,1,1,0.80435
-10,11,201,593,49,156,1,1,0.78
-11,11,188,608,57,155,1,1,0.7069
-12,11,172,607,63,154,1,1,0.6875
-13,11,161,590,62,157,1,1,0.68254
-14,11,154,606,62,157,1,1,0.68254
-15,11,140,603,62,157,1,1,0.68254
-16,11,131,601,61,164,1,1,0.67742
-17,11,120,605,61,164,1,1,0.67742
-18,11,107,605,60,170,1,1,0.67213
-19,11,97,607,60,170,1,1,0.67213
-20,11,82,610,60,170,1,1,0.67213
-21,11,70,610,60,170,1,1,0.67213
-22,11,59,613,60,170,1,1,0.67213
-23,11,49,617,59,182,1,1,0.66667
-24,11,39,629,59,182,1,1,0.65
-25,11,25,631,59,182,1,1,0.63333
-26,11,10,628,66,200,1,1,0.64179
-27,11,0,637,66,200,1,1,0.59701
-28,11,-12,642,66,200,1,1,0.80597
-29,11,-21,640,66,200,1,1,0.67164
-1,12,264,495,19,297,0,10,1
-2,12,256,485,19,297,0,10,1
-3,12,254,501,19,297,0,10,1
-4,12,246,499,19,297,0,10,1
-5,12,238,498,19,297,0,10,1
-6,12,232,510,19,297,0,10,1
-7,12,223,517,19,297,0,10,1
-8,12,214,524,19,297,0,10,1
-9,12,203,521,19,297,0,10,1
-10,12,192,518,19,297,0,10,1
-11,12,185,536,19,297,0,10,1
-12,12,174,532,19,297,0,10,1
-13,12,164,528,19,297,0,10,1
-14,12,154,533,19,297,0,10,1
-15,12,144,539,19,297,0,10,1
-16,12,134,543,19,297,0,10,1
-17,12,124,548,19,297,0,10,1
-18,12,112,552,19,297,0,10,1
-19,12,101,557,19,297,0,10,1
-20,12,89,565,19,297,0,10,1
-21,12,77,573,19,297,0,10,1
-22,12,65,578,19,297,0,10,1
-23,12,54,584,19,297,0,10,1
-24,12,41,591,20,297,0,10,1
-25,12,28,599,21,296,0,10,1
-26,12,15,607,23,296,0,10,1
-27,12,2,618,25,294,0,10,1
-1,13,504,549,34,93,1,1,1
-2,13,502,537,34,93,1,1,1
-3,13,501,550,34,93,1,1,1
-4,13,501,546,34,93,1,1,1
-5,13,498,543,34,93,1,1,1
-6,13,498,556,34,93,1,1,1
-7,13,501,547,34,93,1,1,1
-8,13,495,555,34,93,1,1,1
-9,13,492,552,34,93,1,1,1
-10,13,489,546,34,93,1,1,1
-11,13,489,555,34,93,1,1,1
-12,13,488,556,34,93,1,1,1
-13,13,486,541,34,93,1,1,1
-14,13,482,549,34,93,1,1,1
-15,13,481,549,34,93,1,1,1
-16,13,480,549,34,93,1,1,1
-17,13,479,550,34,93,1,1,1
-18,13,476,549,34,94,1,1,1
-19,13,473,548,35,95,1,1,1
-20,13,471,548,35,96,1,1,1
-21,13,468,549,35,97,1,1,1
-22,13,466,550,35,98,1,1,1
-23,13,464,552,35,98,1,1,1
-24,13,461,553,36,99,1,1,1
-25,13,459,555,35,100,1,1,1
-26,13,457,556,35,101,1,1,1
-27,13,454,558,36,101,1,1,1
-28,13,452,559,36,102,1,1,1
-29,13,450,561,36,103,1,1,1
-30,13,450,570,36,104,1,1,1
-31,13,445,581,36,105,1,1,1
-32,13,442,573,36,106,1,1,1
-33,13,440,564,36,107,1,1,1
-34,13,437,570,36,108,1,1,1
-35,13,438,559,36,109,1,1,1
-36,13,435,557,36,110,1,1,1
-37,13,433,555,36,111,1,1,1
-38,13,431,553,36,112,1,1,1
-39,13,429,551,36,113,1,1,1
-40,13,427,550,36,113,1,1,1
-41,13,424,550,37,113,1,1,1
-42,13,422,551,37,113,1,1,1
-43,13,420,552,37,113,1,1,1
-44,13,418,553,37,113,1,1,1
-45,13,415,554,38,113,1,1,1
-46,13,413,555,38,113,1,1,1
-47,13,411,556,38,113,1,1,1
-48,13,409,557,38,113,1,1,1
-49,13,406,558,39,113,1,1,1
-50,13,404,559,39,113,1,1,1
-51,13,402,560,39,113,1,1,1
-52,13,400,561,39,113,1,1,1
-53,13,398,562,39,113,1,1,1
-54,13,393,561,40,113,1,1,1
-55,13,389,560,40,114,1,1,1
-56,13,385,559,41,115,1,1,1
-57,13,381,559,41,115,1,1,1
-58,13,377,558,41,115,1,1,1
-59,13,373,557,42,116,1,1,1
-60,13,369,556,42,117,1,1,1
-61,13,365,556,43,117,1,1,1
-62,13,365,552,43,118,1,1,1
-63,13,361,572,43,118,1,1,1
-64,13,357,556,43,118,1,1,1
-65,13,353,563,42,122,1,1,1
-66,13,354,568,44,121,1,1,1
-67,13,350,552,44,124,1,1,1
-68,13,345,560,44,127,1,1,1
-69,13,340,557,45,127,1,1,1
-70,13,336,555,46,126,1,1,1
-71,13,332,553,47,126,1,1,0.98031
-72,13,325,553,48,127,1,1,0.96269
-73,13,319,553,48,128,1,1,0.98054
-74,13,313,553,49,130,1,1,0.98076
-75,13,307,553,49,131,1,1,1
-76,13,301,553,50,133,1,1,1
-77,13,295,553,49,132,1,1,0.9809
-78,13,289,553,48,131,1,1,0.96135
-79,13,283,553,48,130,1,1,0.96136
-80,13,277,553,47,129,1,1,1
-81,13,272,554,46,128,1,1,1
-82,13,264,555,46,129,1,1,1
-83,13,256,556,47,130,1,1,1
-84,13,249,558,47,130,1,1,1
-85,13,242,560,47,130,1,1,1
-86,13,235,562,47,131,1,1,1
-87,13,228,564,47,132,1,1,1
-88,13,221,567,48,132,1,1,1
-89,13,214,568,49,133,1,1,1
-90,13,207,569,50,134,1,1,1
-91,13,201,571,50,134,1,1,1
-92,13,194,572,51,135,1,1,1
-93,13,187,573,52,136,1,1,1
-94,13,181,575,52,136,1,1,0.98196
-95,13,174,576,53,137,1,1,0.94726
-96,13,167,577,54,138,1,1,0.91498
-97,13,161,579,55,139,1,1,0.86429
-98,13,151,579,55,140,1,1,0.91578
-99,13,142,579,55,141,1,1,0.9326
-100,13,133,579,54,142,1,1,0.96592
-101,13,124,579,54,143,1,1,0.98295
-102,13,114,579,55,144,1,1,1
-103,13,105,579,54,145,1,1,1
-104,13,96,579,54,146,1,1,1
-105,13,87,580,54,146,1,1,1
-106,13,80,579,54,147,1,1,1
-107,13,73,578,54,148,1,1,1
-108,13,66,577,54,149,1,1,0.98315
-109,13,57,578,54,149,1,1,0.98291
-110,13,48,579,54,149,1,1,0.98279
-111,13,39,580,54,149,1,1,0.96533
-112,13,30,581,54,149,1,1,0.96533
-113,13,21,583,54,149,1,1,0.96509
-114,13,11,584,54,149,1,1,0.98255
-115,13,2,586,54,149,1,1,0.98242
-116,13,-7,588,54,149,1,1,0.83685
-117,13,-16,590,54,149,1,1,0.67309
-118,13,-25,591,54,149,1,1,0.50945
-1,14,543,548,31,95,1,1,1
-2,14,543,536,31,95,1,1,1
-3,14,543,548,31,95,1,1,1
-4,14,541,545,31,95,1,1,1
-5,14,540,542,31,95,1,1,1
-6,14,540,552,31,95,1,1,1
-7,14,538,553,31,95,1,1,1
-8,14,537,555,31,95,1,1,1
-9,14,535,552,31,95,1,1,1
-10,14,533,550,31,95,1,1,1
-11,14,532,553,31,95,1,1,1
-12,14,531,557,31,95,1,1,1
-13,14,530,545,31,95,1,1,1
-14,14,524,554,31,95,1,1,1
-15,14,522,554,33,94,1,1,1
-16,14,520,554,35,94,1,1,1
-17,14,519,554,36,94,1,1,1
-18,14,517,554,38,94,1,1,1
-19,14,516,554,39,94,1,1,1
-20,14,513,553,38,98,1,1,1
-21,14,511,554,38,98,1,1,1
-22,14,509,556,38,98,1,1,1
-23,14,507,558,38,98,1,1,1
-24,14,505,560,38,98,1,1,1
-25,14,504,563,38,98,1,1,1
-26,14,502,566,38,98,1,1,1
-27,14,501,569,38,98,1,1,1
-28,14,499,570,38,98,1,1,1
-29,14,497,572,38,98,1,1,1
-30,14,495,574,38,98,1,1,1
-31,14,492,589,38,98,1,1,1
-32,14,492,583,37,104,1,1,1
-33,14,488,568,36,108,1,1,1
-34,14,488,571,36,108,1,1,1
-35,14,485,559,35,114,1,1,1
-36,14,481,556,37,113,1,1,1
-37,14,478,553,39,113,1,1,1
-38,14,476,555,39,113,1,1,1
-39,14,476,549,39,113,1,1,1
-40,14,472,553,39,113,1,1,1
-41,14,470,553,39,113,1,1,1
-42,14,469,554,39,113,1,1,1
-43,14,467,555,39,113,1,1,1
-44,14,466,556,39,113,1,1,1
-45,14,463,557,40,113,1,1,1
-46,14,460,559,41,112,1,1,1
-47,14,457,560,42,112,1,1,1
-48,14,454,562,44,112,1,1,1
-49,14,451,564,39,113,1,1,1
-50,14,448,563,40,114,1,1,1
-51,14,445,563,41,115,1,1,1
-52,14,442,562,43,116,1,1,1
-53,14,439,562,44,117,1,1,1
-54,14,436,562,46,118,1,1,1
-55,14,433,561,46,119,1,1,1
-56,14,430,560,46,120,1,1,1
-57,14,428,559,45,121,1,1,1
-58,14,425,558,46,122,1,1,1
-59,14,423,557,45,123,1,1,1
-60,14,420,556,45,124,1,1,1
-61,14,418,556,45,124,1,1,1
-62,14,415,555,46,118,1,1,1
-63,14,412,572,46,118,1,1,1
-64,14,406,557,46,118,1,1,1
-65,14,405,564,46,118,1,1,1
-66,14,405,572,46,118,1,1,1
-67,14,399,557,46,119,1,1,1
-68,14,391,564,46,126,1,1,1
-69,14,387,562,46,125,1,1,1
-70,14,383,561,47,124,1,1,1
-71,14,379,560,48,123,1,1,1
-72,14,372,564,48,124,1,1,1
-73,14,367,559,48,125,1,1,1
-74,14,362,558,48,126,1,1,1
-75,14,357,558,49,127,1,1,1
-76,14,353,558,49,128,1,1,1
-77,14,344,559,49,129,1,1,1
-78,14,336,560,49,130,1,1,1
-79,14,330,560,50,130,1,1,1
-80,14,325,561,50,129,1,1,1
-81,14,319,562,51,128,1,1,1
-82,14,314,563,51,127,1,1,1
-83,14,308,563,50,128,1,1,1
-84,14,302,564,49,129,1,1,1
-85,14,296,565,48,129,1,1,1
-86,14,290,566,48,130,1,1,1
-87,14,284,567,47,130,1,1,1
-88,14,278,568,46,131,1,1,1
-89,14,273,569,45,132,1,1,1
-90,14,265,571,46,133,1,1,1
-91,14,257,573,47,134,1,1,1
-92,14,249,576,48,134,1,1,1
-93,14,241,578,50,135,1,1,1
-94,14,233,581,51,135,1,1,1
-95,14,225,583,52,136,1,1,1
-96,14,217,586,54,137,1,1,1
-97,14,209,586,55,138,1,1,1
-98,14,202,587,56,138,1,1,1
-99,14,194,587,57,139,1,1,1
-100,14,186,588,58,139,1,1,1
-101,14,178,588,60,140,1,1,1
-102,14,171,589,60,141,1,1,1
-103,14,163,589,62,142,1,1,1
-104,14,155,590,63,142,1,1,1
-105,14,148,591,64,143,1,1,1
-106,14,138,590,66,143,1,1,1
-107,14,129,589,67,144,1,1,1
-108,14,120,588,68,145,1,1,1
-109,14,111,587,69,146,1,1,1
-110,14,102,587,70,146,1,1,1
-111,14,92,587,68,147,1,1,1
-112,14,83,588,66,147,1,1,1
-113,14,74,589,63,147,1,1,1
-114,14,65,590,61,148,1,1,1
-115,14,56,591,61,149,1,1,1
-116,14,47,592,61,150,1,1,1
-117,14,38,593,61,151,1,1,1
-118,14,29,594,61,152,1,1,1
-119,14,18,594,61,154,1,1,1
-120,14,8,595,60,155,1,1,1
-121,14,-3,595,60,157,1,1,0.93443
-122,14,-13,596,60,159,1,1,0.77049
-123,14,-21,597,60,159,1,1,0.63934
-124,14,-29,599,60,159,1,1,0.5082
-1,15,652,528,27,70,1,1,1
-2,15,652,518,27,70,1,1,0.71429
-3,15,651,529,26,74,1,1,1
-4,15,651,526,25,73,1,1,1
-5,15,651,523,25,72,1,1,1
-6,15,652,537,26,69,1,1,0.82804
-7,15,650,529,25,70,1,1,1
-8,15,650,536,25,71,1,1,1
-9,15,649,534,25,72,1,1,1
-10,15,646,530,25,73,1,1,0.72557
-11,15,645,533,25,70,1,1,0.67281
-12,15,644,536,26,68,1,1,0.63714
-13,15,646,524,26,68,1,1,0.66989
-14,15,642,531,27,72,1,1,0.85714
-15,15,641,529,27,72,1,1,0.85714
-16,15,641,527,27,72,1,1,0.85714
-17,15,640,531,27,73,1,1,1
-18,15,639,531,27,73,1,1,1
-19,15,637,532,27,73,1,1,1
-20,15,635,532,27,74,1,1,1
-21,15,634,533,27,75,1,1,0.86278
-22,15,633,534,26,76,1,1,0.78932
-23,15,632,535,26,77,1,1,0.89744
-24,15,630,537,26,77,1,1,0.89744
-25,15,629,539,26,77,1,1,0.89744
-26,15,628,541,26,77,1,1,0.96534
-27,15,626,544,26,77,1,1,0.96439
-28,15,625,546,26,77,1,1,0.8547
-29,15,624,548,26,77,1,1,0.96439
-30,15,623,551,26,77,1,1,0.96391
-31,15,621,562,26,77,1,1,0.96486
-32,15,620,555,26,77,1,1,1
-33,15,619,549,26,77,1,1,1
-34,15,618,555,26,78,1,1,1
-35,15,616,552,27,78,1,1,1
-36,15,615,549,27,79,1,1,1
-37,15,614,546,27,80,1,1,1
-38,15,613,544,27,79,1,1,1
-39,15,612,541,27,80,1,1,1
-40,15,611,538,27,81,1,1,0.14286
-41,15,610,536,28,81,1,1,0.13793
-42,15,609,538,28,81,1,1,0.17241
-43,15,608,540,29,82,1,1,1
-44,15,606,540,30,83,1,1,1
-45,15,605,541,30,83,1,1,1
-46,15,604,542,30,84,1,1,1
-47,15,603,543,30,84,1,1,1
-48,15,602,544,31,85,1,1,1
-49,15,599,545,32,86,1,1,0.97109
-50,15,597,547,32,86,1,1,0.94148
-51,15,595,548,32,87,1,1,0.91322
-52,15,593,550,32,87,1,1,0.94215
-53,15,590,549,32,87,1,1,0.91632
-54,15,587,548,32,88,1,1,0.88832
-55,15,584,547,33,88,1,1,0.86451
-56,15,581,546,33,89,1,1,0.81242
-57,15,579,546,33,89,1,1,0.81242
-58,15,575,546,33,90,1,1,0.78281
-59,15,576,541,33,90,1,1,0.89787
-60,15,572,543,33,90,1,1,0.86749
-61,15,569,545,33,91,1,1,0.83696
-62,15,565,542,33,91,1,1,0.74105
-63,15,567,553,33,91,1,1,0.88875
-64,15,563,543,31,93,1,1,0.88165
-65,15,558,548,31,93,1,1,0.85539
-66,15,558,553,32,96,1,1,0.91659
-67,15,553,544,33,98,1,1,1
-68,15,550,550,35,98,1,1,1
-69,15,545,549,37,97,1,1,1
-70,15,540,548,39,96,1,1,0.86082
-71,15,536,547,40,96,1,1,0.83983
-72,15,532,551,41,97,1,1,1
-73,15,526,550,41,98,1,1,1
-74,15,521,550,41,98,1,1,0.79004
-75,15,516,549,41,100,1,1,0.81518
-76,15,511,549,40,100,1,1,0.83434
-77,15,506,548,40,101,1,1,0.83596
-78,15,501,548,40,102,1,1,0.88278
-79,15,495,548,41,103,1,1,0.88668
-80,15,488,550,42,104,1,1,0.86445
-81,15,482,549,42,105,1,1,0.86705
-82,15,476,549,43,105,1,1,0.87136
-83,15,469,550,42,106,1,1,0.84482
-84,15,463,551,40,107,1,1,0.83717
-85,15,456,552,39,108,1,1,0.80917
-86,15,450,554,38,109,1,1,1
-87,15,445,556,38,110,1,1,1
-88,15,437,558,39,110,1,1,1
-89,15,430,560,39,111,1,1,1
-90,15,423,563,39,111,1,1,1
-91,15,416,566,40,112,1,1,1
-92,15,410,572,41,109,1,1,1
-93,15,403,573,41,110,1,1,1
-94,15,396,575,41,110,1,1,0.9305
-95,15,389,577,41,110,1,1,0.93115
-96,15,382,579,42,111,1,1,0.95432
-97,15,376,579,42,112,1,1,1
-98,15,368,579,42,113,1,1,0.95675
-99,15,360,579,42,114,1,1,0.97836
-100,15,352,579,43,115,1,1,1
-101,15,345,579,42,117,1,1,1
-102,15,337,579,43,118,1,1,1
-103,15,329,579,43,119,1,1,1
-104,15,322,579,43,121,1,1,1
-105,15,314,580,44,119,1,1,1
-106,15,306,581,45,118,1,1,1
-107,15,295,581,46,120,1,1,1
-108,15,285,582,46,121,1,1,1
-109,15,275,583,46,122,1,1,1
-110,15,265,584,46,123,1,1,1
-111,15,255,585,46,124,1,1,1
-112,15,245,586,46,126,1,1,1
-113,15,234,586,47,128,1,1,1
-114,15,224,587,47,129,1,1,1
-115,15,214,588,47,130,1,1,1
-116,15,204,589,47,131,1,1,1
-117,15,194,590,47,132,1,1,1
-118,15,184,591,48,134,1,1,1
-119,15,173,593,48,134,1,1,1
-120,15,162,595,49,134,1,1,1
-121,15,152,597,48,134,1,1,1
-122,15,141,599,49,134,1,1,1
-123,15,130,601,49,134,1,1,1
-124,15,120,603,49,134,1,1,1
-125,15,109,605,49,134,1,1,1
-126,15,98,607,50,134,1,1,1
-127,15,88,609,50,135,1,1,1
-128,15,76,610,51,138,1,1,1
-129,15,64,611,52,141,1,1,1
-130,15,52,612,53,144,1,1,1
-131,15,40,614,54,146,1,1,1
-132,15,28,615,55,149,1,1,1
-133,15,16,616,56,152,1,1,1
-134,15,4,618,58,155,1,1,1
-135,15,-8,619,58,155,1,1,0.84746
-136,15,-20,620,58,155,1,1,0.64407
-1,16,637,536,22,58,1,1,0.65217
-2,16,638,522,22,59,1,1,0.43478
-3,16,637,534,21,64,1,1,0.63636
-4,16,636,530,21,64,1,1,0.68182
-5,16,636,527,21,64,1,1,0.68182
-6,16,635,542,21,64,1,1,0.77273
-7,16,635,533,22,65,1,1,0.65217
-8,16,634,538,22,66,1,1,0.69565
-9,16,633,539,22,65,1,1,0.69565
-10,16,631,538,22,66,1,1,1
-11,16,629,538,22,66,1,1,1
-12,16,628,538,22,67,1,1,1
-13,16,626,526,22,67,1,1,1
-14,16,623,532,22,62,1,1,0.47826
-15,16,621,532,23,63,1,1,0.83333
-16,16,620,532,23,65,1,1,0.875
-17,16,619,532,23,67,1,1,0.875
-18,16,618,532,23,69,1,1,0.875
-19,16,617,532,23,71,1,1,0.83333
-20,16,616,533,23,72,1,1,0.79167
-21,16,614,536,23,72,1,1,0.83333
-22,16,613,540,23,72,1,1,1
-23,16,611,541,23,73,1,1,1
-24,16,609,543,23,73,1,1,1
-25,16,608,545,23,73,1,1,1
-26,16,605,546,23,73,1,1,1
-27,16,603,547,23,74,1,1,0.95833
-28,16,603,549,23,74,1,1,0.91667
-29,16,601,551,23,74,1,1,0.95833
-30,16,599,553,24,75,1,1,0.96
-31,16,598,566,23,74,1,1,1
-32,16,596,560,23,74,1,1,1
-33,16,594,551,24,75,1,1,1
-34,16,592,556,23,75,1,1,1
-35,16,590,553,24,75,1,1,1
-36,16,589,551,24,75,1,1,1
-37,16,588,548,24,75,1,1,1
-38,16,587,546,24,75,1,1,1
-39,16,586,544,25,75,1,1,1
-40,16,584,544,25,75,1,1,1
-41,16,583,545,24,75,1,1,1
-42,16,581,544,25,77,1,1,1
-43,16,580,544,25,79,1,1,1
-44,16,578,543,26,81,1,1,1
-45,16,577,543,26,83,1,1,1
-46,16,575,542,27,85,1,1,1
-47,16,574,542,27,87,1,1,1
-48,16,573,545,27,86,1,1,1
-49,16,573,549,26,84,1,1,1
-50,16,570,550,28,85,1,1,1
-51,16,568,552,29,86,1,1,1
-52,16,565,554,29,85,1,1,1
-53,16,562,556,30,85,1,1,1
-54,16,560,555,30,85,1,1,1
-55,16,558,554,30,86,1,1,1
-56,16,557,554,30,86,1,1,1
-57,16,555,554,30,86,1,1,1
-58,16,552,553,30,86,1,1,1
-59,16,549,553,30,85,1,1,1
-60,16,546,552,30,85,1,1,1
-61,16,543,552,31,84,1,1,0.8125
-62,16,540,544,33,89,1,1,0.73529
-63,16,538,558,32,88,1,1,1
-64,16,534,548,32,89,1,1,1
-65,16,530,555,32,88,1,1,1
-66,16,528,561,32,89,1,1,1
-67,16,527,551,31,87,1,1,0.8125
-68,16,522,557,32,88,1,1,0.84848
-69,16,518,556,31,89,1,1,0.84375
-70,16,514,555,31,91,1,1,1
-71,16,510,554,31,92,1,1,1
-72,16,506,553,31,94,1,1,0.8125
-73,16,502,552,31,95,1,1,0.75
-74,16,498,552,31,96,1,1,0.71875
-75,16,492,552,31,97,1,1,0.75
-76,16,486,552,31,98,1,1,1
-77,16,481,552,31,99,1,1,1
-78,16,474,552,31,100,1,1,1
-79,16,468,553,31,100,1,1,1
-80,16,461,553,32,101,1,1,0.81818
-81,16,455,554,32,101,1,1,1
-82,16,449,555,32,101,1,1,1
-83,16,442,555,33,102,1,1,1
-84,16,436,556,33,102,1,1,0.79412
-85,16,430,557,33,103,1,1,0.76471
-86,16,422,558,33,104,1,1,0.82353
-87,16,414,560,34,104,1,1,0.88571
-88,16,406,562,35,104,1,1,0.86111
-89,16,399,564,35,105,1,1,0.86111
-90,16,391,566,35,106,1,1,0.88889
-91,16,384,569,35,106,1,1,0.88889
-92,16,377,572,35,107,1,1,0.91667
-93,16,370,575,35,107,1,1,0.91667
-94,16,363,578,35,107,1,1,0.91667
-95,16,356,581,35,108,1,1,1
-96,16,348,581,35,109,1,1,0.94444
-97,16,340,582,35,109,1,1,1
-98,16,332,587,37,109,1,1,1
-99,16,323,587,37,110,1,1,1
-100,16,314,588,37,110,1,1,1
-101,16,305,588,38,110,1,1,1
-102,16,296,588,39,111,1,1,1
-103,16,288,589,39,111,1,1,1
-104,16,279,589,40,112,1,1,1
-105,16,271,590,40,112,1,1,1
-106,16,261,589,40,113,1,1,1
-107,16,251,589,40,113,1,1,1
-108,16,242,590,37,114,1,1,1
-109,16,234,592,34,115,1,1,1
-110,16,223,592,36,116,1,1,1
-111,16,212,592,38,117,1,1,1
-112,16,202,593,40,118,1,1,1
-113,16,190,593,41,119,1,1,1
-114,16,178,594,43,120,1,1,1
-115,16,166,595,44,121,1,1,1
-116,16,154,596,46,122,1,1,1
-117,16,142,597,47,123,1,1,1
-118,16,131,598,48,124,1,1,1
-119,16,119,599,49,125,1,1,1
-120,16,108,601,49,125,1,1,1
-121,16,97,603,49,126,1,1,1
-122,16,86,605,49,126,1,1,1
-123,16,74,606,50,128,1,1,1
-124,16,63,608,51,128,1,1,1
-125,16,52,610,51,128,1,1,1
-126,16,41,612,51,129,1,1,1
-127,16,29,613,52,130,1,1,1
-128,16,18,615,52,131,1,1,1
-129,16,7,617,52,131,1,1,1
-130,16,-4,619,53,132,1,1,0.90741
-131,16,-16,623,53,132,1,1,0.68519
-1,17,677,521,23,58,1,1,0.54167
-2,17,680,512,19,57,1,1,0.6
-3,17,679,524,19,58,1,1,0.7
-4,17,679,521,22,56,1,1,0.56522
-5,17,679,520,22,56,1,1,0.6087
-6,17,681,532,22,57,1,1,0.47826
-7,17,681,524,21,59,1,1,0.59091
-8,17,680,530,22,64,1,1,0.52174
-9,17,679,527,23,64,1,1,0.45833
-10,17,679,525,23,64,1,1,0.54167
-11,17,675,526,27,70,1,1,0.46429
-12,17,674,530,28,70,1,1,0.41379
-13,17,674,518,27,69,1,1,0.5
-14,17,673,523,27,69,1,1,0.42857
-15,17,673,522,27,69,1,1,0.46429
-16,17,673,522,27,68,1,1,0.46429
-17,17,673,521,27,69,1,1,0.53571
-18,17,673,521,27,68,1,1,0.57143
-19,17,673,521,28,68,1,1,0.58621
-20,17,671,524,28,68,1,1,0.58621
-21,17,670,528,28,67,1,1,0.58621
-22,17,669,528,29,66,1,1,0.56667
-23,17,669,528,29,66,1,1,0.6
-24,17,668,529,30,65,1,1,0.64516
-25,17,667,530,31,65,1,1,0.65625
-26,17,667,531,31,65,1,1,0.65625
-27,17,665,533,31,64,1,1,0.65625
-28,17,663,535,32,64,1,1,0.66667
-29,17,662,537,32,64,1,1,0.66667
-30,17,662,546,31,64,1,1,0.65625
-31,17,663,558,24,66,1,1,0.56
-32,17,659,551,32,70,1,1,0.66667
-33,17,658,539,28,71,1,1,0.62069
-34,17,658,543,30,73,1,1,0.58065
-35,17,659,538,27,71,1,1,0.53571
-36,17,660,533,25,70,1,1,0.5
-37,17,657,528,29,76,1,1,0.56667
-38,17,655,527,29,77,1,1,0.56667
-39,17,654,526,29,79,1,1,0.56667
-40,17,652,525,30,81,1,1,0.58065
-41,17,651,525,30,82,1,1,0.6129
-42,17,651,526,30,82,1,1,0.6129
-43,17,649,529,31,82,1,1,0.625
-44,17,648,529,31,83,1,1,0.625
-45,17,647,530,31,83,1,1,0.625
-46,17,646,531,31,83,1,1,0.625
-47,17,646,532,30,84,1,1,0.6129
-48,17,644,532,30,86,1,1,0.64516
-49,17,643,533,30,87,1,1,0.64516
-50,17,642,533,30,89,1,1,0.64516
-51,17,641,534,30,90,1,1,1
-52,17,640,535,30,88,1,1,0.58065
-53,17,639,537,31,85,1,1,0.5625
-54,17,637,537,31,85,1,1,0.5625
-55,17,635,537,31,85,1,1,0.5625
-56,17,633,537,32,86,1,1,0.54789
-57,17,632,535,32,86,1,1,0.57576
-58,17,631,533,32,87,1,1,0.57576
-59,17,629,532,32,88,1,1,0.5475
-60,17,627,532,32,88,1,1,0.51856
-61,17,626,532,31,89,1,1,0.50347
-62,17,624,527,31,89,1,1,0.48264
-63,17,623,542,31,89,1,1,0.44722
-64,17,620,541,32,89,1,1,0.78788
-65,17,618,540,32,90,1,1,0.88145
-66,17,616,540,32,90,1,1,0.51915
-67,17,612,538,32,91,1,1,0.63636
-68,17,609,537,32,91,1,1,0.46509
-69,17,605,536,32,91,1,1,0.54941
-70,17,601,535,32,92,1,1,0.49137
-71,17,597,534,32,93,1,1,0.4626
-72,17,594,533,32,94,1,1,0.52089
-73,17,590,532,33,95,1,1,0.50858
-74,17,587,532,33,95,1,1,0.53585
-75,17,582,532,33,95,1,1,0.50858
-76,17,577,533,33,95,1,1,0.4761
-77,17,572,534,34,95,1,1,0.40893
-78,17,568,533,34,95,1,1,0.49286
-79,17,565,532,33,96,1,1,0.47908
-80,17,559,532,34,97,1,1,0.44257
-81,17,553,532,35,98,1,1,0.43238
-82,17,548,533,36,98,1,1,0.47256
-83,17,542,534,36,99,1,1,0.44568
-84,17,536,536,37,99,1,1,0.60421
-85,17,531,538,37,100,1,1,0.50521
-86,17,525,539,38,100,1,1,0.5179
-87,17,520,540,38,100,1,1,0.52044
-88,17,515,542,38,100,1,1,0.54455
-89,17,509,545,38,100,1,1,0.51917
-90,17,503,548,38,101,1,1,0.63047
-91,17,496,549,38,102,1,1,0.60966
-92,17,489,551,38,102,1,1,0.56535
-93,17,484,552,36,103,1,1,0.57147
-94,17,480,553,33,104,1,1,0.59244
-95,17,476,554,31,106,1,1,0.62792
-96,17,469,557,31,105,1,1,0.5339
-97,17,462,558,32,105,1,1,0.49257
-98,17,456,560,32,105,1,1,0.66381
-99,17,449,559,33,107,1,1,0.53486
-100,17,443,559,34,108,1,1,0.74312
-101,17,435,559,34,108,1,1,0.74574
-102,17,428,559,33,108,1,1,0.74096
-103,17,421,558,34,108,1,1,0.55072
-104,17,415,558,34,107,1,1,0.57566
-105,17,409,558,34,107,1,1,0.60899
-106,17,401,558,35,107,1,1,0.5
-107,17,394,558,36,107,1,1,0.53478
-108,17,387,558,37,108,1,1,0.59054
-109,17,379,558,37,108,1,1,0.61251
-110,17,371,559,38,108,1,1,0.64432
-111,17,363,560,38,108,1,1,0.66667
-112,17,355,560,39,108,1,1,0.675
-113,17,347,561,39,108,1,1,0.675
-114,17,340,562,39,108,1,1,0.675
-115,17,331,562,40,109,1,1,0.68293
-116,17,323,563,40,110,1,1,0.70732
-117,17,315,564,40,111,1,1,0.73171
-118,17,307,564,40,113,1,1,0.73171
-119,17,299,565,40,114,1,1,0.73171
-120,17,291,566,40,114,1,1,0.7561
-121,17,283,566,40,116,1,1,0.73171
-122,17,275,567,41,117,1,1,0.66667
-123,17,267,568,41,118,1,1,0.7381
-124,17,259,568,41,120,1,1,0.7619
-125,17,251,569,41,120,1,1,0.71429
-126,17,243,570,41,121,1,1,0.64286
-127,17,235,570,41,123,1,1,0.71429
-128,17,227,571,41,124,1,1,0.71429
-129,17,219,572,42,125,1,1,0.72093
-130,17,209,573,43,126,1,1,0.70455
-131,17,200,574,43,127,1,1,1
-132,17,191,575,43,128,1,1,0.75
-133,17,181,576,44,129,1,1,0.6
-134,17,172,577,44,130,1,1,0.6
-135,17,163,579,44,130,1,1,0.62222
-136,17,154,579,44,131,1,1,0.62222
-137,17,146,580,44,131,1,1,0.62222
-138,17,138,580,44,132,1,1,0.64444
-139,17,129,581,45,132,1,1,0.65217
-140,17,121,581,45,133,1,1,0.63043
-141,17,113,582,45,134,1,1,0.63043
-142,17,104,581,45,135,1,1,0.63043
-143,17,95,581,46,136,1,1,1
-144,17,87,581,45,136,1,1,0.63043
-145,17,78,581,46,137,1,1,1
-146,17,70,581,45,137,1,1,0.63043
-147,17,61,581,46,138,1,1,0.6383
-148,17,53,581,46,139,1,1,0.65957
-149,17,42,583,46,139,1,1,0.65957
-150,17,32,586,46,139,1,1,0.65957
-151,17,22,588,46,140,1,1,0.65957
-152,17,12,591,46,140,1,1,0.65957
-153,17,1,590,46,141,1,1,0.65957
-154,17,-9,590,45,141,1,1,0.78261
-155,17,-14,591,45,141,1,1,0.67391
-145,18,474,531,24,65,1,1,0.26182
-146,18,468,531,24,65,1,1,0.22667
-147,18,463,532,24,64,1,1,0.21477
-148,18,457,532,25,65,1,1,0.22261
-149,18,452,533,24,64,1,1,0.12369
-150,18,446,533,25,64,1,1,0.12899
-151,18,441,534,25,64,1,1,0.12899
-152,18,436,534,23,68,1,1,0.18961
-153,18,430,535,24,67,1,1,0.17412
-154,18,425,537,24,65,1,1,0.20182
-155,18,419,538,24,66,1,1,0.20597
-156,18,414,539,23,67,1,1,0.21324
-157,18,409,540,23,68,1,1,0.33696
-158,18,403,540,23,69,1,1,0.35714
-159,18,398,541,22,70,1,1,0.36497
-160,18,392,542,22,70,1,1,0.36497
-161,18,387,543,22,71,1,1,0.41063
-162,18,380,545,23,71,1,1,0.34375
-163,18,373,547,25,71,1,1,0.30556
-164,18,367,546,26,72,1,1,0.31811
-165,18,362,546,26,72,1,1,0.31811
-166,18,357,546,26,72,1,1,0.32877
-167,18,352,546,26,72,1,1,0.32877
-168,18,347,546,26,72,1,1,0.32877
-169,18,342,546,27,72,1,1,0.36301
-170,18,337,546,28,71,1,1,0.38649
-171,18,332,547,29,70,1,1,0.33615
-172,18,328,546,28,70,1,1,0.35114
-173,18,324,546,28,70,1,1,0.35114
-174,18,320,546,28,70,1,1,0.35697
-175,18,316,545,28,69,1,1,0.36749
-176,18,312,545,28,68,1,1,0.36832
-177,18,308,545,28,67,1,1,0.37525
-178,18,303,547,29,69,1,1,0.34714
-179,18,297,547,29,71,1,1,0.27917
-180,18,291,548,30,72,1,1,0.23774
-181,18,286,548,30,76,1,1,0.29828
-182,18,282,548,30,81,1,1,1
-183,18,278,549,29,77,1,1,0.28419
-184,18,274,551,29,72,1,1,0.24566
-185,18,270,552,29,72,1,1,0.24566
-186,18,266,553,29,72,1,1,0.27443
-187,18,263,554,28,72,1,1,0.28389
-188,18,259,555,28,73,1,1,0.31314
-189,18,255,556,28,73,1,1,0.31314
-190,18,252,557,27,73,1,1,0.35521
-191,18,248,558,27,73,1,1,0.35521
-192,18,245,560,26,73,1,1,0.3984
-193,18,241,560,26,74,1,1,0.40148
-194,18,237,561,26,74,1,1,0.40148
-195,18,234,562,26,74,1,1,0.43852
-196,18,225,564,28,72,1,1,0.30231
-197,18,221,565,28,72,1,1,0.30231
-198,18,217,566,28,72,1,1,0.30231
-199,18,214,567,28,72,1,1,0.3368
-200,18,210,568,28,72,1,1,0.3368
-201,18,207,569,28,72,1,1,0.37128
-202,18,203,570,28,72,1,1,0.37128
-203,18,200,571,28,73,1,1,0.40168
-204,18,197,572,28,74,1,1,0.43586
-205,18,193,572,28,75,1,1,0.43421
-206,18,190,573,28,75,1,1,0.46869
-207,18,186,574,29,76,1,1,0.48225
-208,18,183,575,28,76,1,1,0.49888
-209,18,179,576,29,76,1,1,0.51169
-210,18,176,577,29,77,1,1,0.54487
-211,18,172,578,29,77,1,1,0.54103
-212,18,169,579,29,77,1,1,0.54103
-213,18,166,580,29,78,1,1,0.53713
-214,18,164,581,29,78,1,1,0.57046
-215,18,161,575,29,78,1,1,0.57215
-216,18,158,575,29,79,1,1,0.545
-217,18,156,576,29,79,1,1,0.57208
-218,18,153,576,30,80,1,1,0.55396
-219,18,151,577,30,80,1,1,0.55914
-220,18,149,578,29,80,1,1,0.53909
-221,18,146,578,30,81,1,1,0.52793
-222,18,144,579,30,81,1,1,0.52793
-223,18,142,580,30,81,1,1,0.52793
-224,18,140,585,30,81,1,1,0.52124
-225,18,137,585,31,82,1,1,0.47854
-226,18,135,585,31,84,1,1,0.45184
-227,18,133,586,31,84,1,1,0.42537
-228,18,131,586,31,86,1,1,0.47881
-229,18,129,586,31,88,1,1,0.51053
-230,18,127,587,31,88,1,1,0.51018
-231,18,125,587,31,90,1,1,0.49004
-232,18,123,588,32,91,1,1,0.55764
-233,18,123,588,32,90,1,1,0.58442
-234,18,122,587,32,90,1,1,0.61538
-235,18,122,587,31,89,1,1,0.50556
-236,18,121,587,31,88,1,1,0.5
-237,18,121,587,31,87,1,1,0.53125
-238,18,121,586,30,88,1,1,0.51613
-239,18,121,586,30,89,1,1,0.54839
-240,18,119,585,31,90,1,1,0.53125
-241,18,118,585,32,91,1,1,0.58366
-242,18,116,585,34,91,1,1,0.48571
-243,18,115,585,35,92,1,1,0.45042
-244,18,114,585,36,93,1,1,0.44451
-245,18,116,585,35,95,1,1,0.53704
-246,18,115,584,36,96,1,1,0.45584
-247,18,117,584,36,97,1,1,0.48704
-248,18,119,584,36,98,1,1,0.53808
-249,18,121,585,35,98,1,1,0.55163
-250,18,123,587,35,97,1,1,0.60034
-251,18,125,589,35,96,1,1,0.62314
-252,18,127,590,34,97,1,1,0.66939
-253,18,129,592,34,96,1,1,0.64212
-254,18,131,594,34,95,1,1,0.57589
-255,18,134,596,33,95,1,1,0.62316
-256,18,136,597,33,95,1,1,0.55882
-257,18,138,598,34,95,1,1,0.54286
-258,18,140,599,35,95,1,1,0.55556
-259,18,143,601,35,95,1,1,0.55556
-260,18,145,600,35,97,1,1,0.56009
-261,18,147,599,35,99,1,1,0.54667
-262,18,149,598,35,101,1,1,0.60648
-263,18,151,598,36,101,1,1,0.61712
-264,18,154,599,37,101,1,1,0.62719
-265,18,157,598,35,100,1,1,0.5418
-266,18,160,597,34,100,1,1,0.52871
-267,18,164,597,33,100,1,1,0.57193
-268,18,168,597,32,100,1,1,0.58416
-269,18,165,597,33,100,1,1,0.42341
-270,18,162,597,34,101,1,1,0.39076
-271,18,160,597,34,102,1,1,0.25936
-272,18,166,595,34,103,1,1,0.33984
-273,18,172,594,35,104,1,1,0.43492
-274,18,178,593,36,104,1,1,0.54183
-275,18,184,592,36,105,1,1,0.60989
-276,18,190,591,37,105,1,1,0.64871
-277,18,197,590,37,106,1,1,0.75209
-278,18,199,592,36,105,1,1,0.74477
-279,18,201,594,36,105,1,1,0.74197
-280,18,203,597,36,104,1,1,0.73951
-281,18,206,598,36,105,1,1,0.76543
-282,18,209,599,37,106,1,1,0.77373
-283,18,213,600,37,108,1,1,0.82038
-284,18,215,600,37,109,1,1,0.82201
-285,18,217,600,37,110,1,1,0.82551
-286,18,219,601,37,111,1,1,0.80545
-287,18,221,602,37,111,1,1,0.61936
-288,18,224,603,37,112,1,1,0.61924
-289,18,226,603,37,113,1,1,0.59741
-290,18,228,604,37,114,1,1,0.57208
-291,18,231,605,37,114,1,1,0.47895
-292,18,233,606,37,115,1,1,0.49932
-293,18,235,607,37,115,1,1,0.50181
-294,18,237,607,37,117,1,1,0.531
-295,18,240,608,37,117,1,1,0.5562
-296,18,242,609,37,118,1,1,0.55838
-297,18,244,610,37,118,1,1,0.57983
-298,18,247,611,37,119,1,1,0.63158
-299,18,248,611,37,119,1,1,0.60855
-300,18,249,612,37,119,1,1,0.58575
-301,18,250,613,37,119,1,1,0.56053
-302,18,251,614,37,119,1,1,0.58575
-303,18,252,615,37,119,1,1,0.59189
-304,18,254,616,36,119,1,1,0.60811
-305,18,255,622,36,120,1,1,0.63815
-306,18,255,622,36,120,1,1,0.59705
-307,18,256,622,36,121,1,1,0.60656
-308,18,255,628,36,123,1,1,0.585
-309,18,256,627,36,124,1,1,0.59568
-310,18,257,626,36,126,1,1,0.60566
-311,18,257,627,36,127,1,1,0.58573
-312,18,257,628,37,128,1,1,0.61506
-313,18,258,629,37,130,1,1,0.6368
-314,18,257,629,37,131,1,1,0.61364
-315,18,257,629,37,132,1,1,0.61654
-316,18,257,630,37,132,1,1,0.63593
-317,18,257,630,37,133,1,1,0.63865
-318,18,257,631,37,133,1,1,0.63551
-319,18,257,631,37,134,1,1,0.63821
-320,18,257,632,37,134,1,1,0.63821
-321,18,257,632,37,135,1,1,0.59172
-322,18,257,633,37,136,1,1,0.6773
-323,18,255,631,37,137,1,1,0.68669
-324,18,254,630,37,137,1,1,0.71625
-325,18,251,631,37,137,1,1,0.71034
-326,18,249,632,37,138,1,1,0.7251
-327,18,247,635,36,135,1,1,0.71781
-328,18,244,636,37,139,1,1,0.73741
-329,18,240,633,37,140,1,1,0.69672
-330,18,237,631,37,140,1,1,0.67637
-331,18,233,628,38,142,1,1,0.64228
-332,18,230,626,37,142,1,1,0.65808
-333,18,226,623,38,143,1,1,0.67165
-334,18,223,621,38,144,1,1,0.69531
-335,18,219,622,38,145,1,1,0.69055
-336,18,215,624,39,145,1,1,0.74521
-337,18,212,626,39,145,1,1,0.76832
-338,18,208,629,40,146,1,1,0.77186
-339,18,205,632,40,148,1,1,0.8129
-340,18,200,633,40,149,1,1,0.7935
-341,18,195,635,41,150,1,1,0.77972
-342,18,191,637,41,151,1,1,0.80107
-343,18,188,644,40,152,1,1,0.85605
-344,18,181,648,41,153,1,1,0.81911
-345,18,176,651,41,154,1,1,0.82166
-346,18,172,655,41,155,1,1,0.84127
-347,18,167,659,42,155,1,1,0.82946
-348,18,163,663,42,156,1,1,0.88268
-349,18,159,667,42,157,1,1,0.89991
-350,18,153,668,42,158,1,1,0.87977
-351,18,147,669,43,159,1,1,0.86278
-352,18,141,670,44,160,1,1,0.88489
-353,18,136,671,43,161,1,1,0.9025
-354,18,130,672,44,163,1,1,0.92358
-355,18,124,673,45,164,1,1,0.92569
-356,18,119,674,44,165,1,1,0.94337
-357,18,113,675,45,166,1,1,0.96303
-358,18,107,676,46,167,1,1,0.96403
-359,18,102,677,46,169,1,1,1
-360,18,95,679,45,167,1,1,0.98163
-361,18,88,681,45,165,1,1,0.87349
-362,18,81,682,46,170,1,1,0.89859
-363,18,74,684,47,174,1,1,0.90179
-364,18,67,684,47,175,1,1,0.90412
-365,18,60,688,48,176,1,1,0.92482
-366,18,54,693,48,177,1,1,0.94325
-367,18,48,697,48,179,1,1,0.96213
-368,18,42,702,48,180,1,1,1
-369,18,34,706,48,180,1,1,0.98094
-370,18,27,711,48,180,1,1,0.98083
-371,18,19,715,48,181,1,1,1
-372,18,11,719,48,182,1,1,1
-373,18,4,724,47,182,1,1,1
-374,18,-4,728,47,183,1,1,0.89583
-40,19,615,534,28,85,1,1,0.21091
-41,19,614,534,28,85,1,1,1
-42,19,614,534,28,85,1,1,0.21091
-43,19,614,535,28,85,1,1,0.22053
-44,19,614,535,27,85,1,1,0.22633
-45,19,614,536,27,85,1,1,0.25997
-46,19,613,536,28,85,1,1,0.29431
-47,19,613,536,27,85,1,1,0.31105
-48,19,613,537,27,85,1,1,0.31105
-49,19,613,537,27,85,1,1,0.38455
-50,19,613,538,27,85,1,1,0.4564
-51,19,611,539,27,85,1,1,0.4564
-52,19,610,540,27,85,1,1,0.49502
-53,19,609,541,27,85,1,1,0.54651
-54,19,608,542,27,85,1,1,0.60133
-55,19,607,543,27,85,1,1,0.62542
-56,19,606,544,27,85,1,1,0.68605
-57,19,605,542,26,87,1,1,0.71717
-58,19,604,540,26,89,1,1,0.82716
-59,19,603,538,26,91,1,1,0.74919
-60,19,602,537,26,92,1,1,0.86141
-61,19,599,537,28,92,1,1,0.87393
-62,19,597,537,30,92,1,1,0.93895
-63,19,596,549,32,91,1,1,0.85507
-64,19,595,537,31,99,1,1,1
-65,19,590,542,31,99,1,1,1
-66,19,589,546,37,98,1,1,0.95109
-67,19,586,538,37,99,1,1,0.97526
-68,19,583,545,36,101,1,1,0.92289
-69,19,581,542,36,103,1,1,0.94958
-70,19,580,540,36,105,1,1,1
-71,19,576,539,35,106,1,1,1
-72,19,572,539,35,106,1,1,0.95067
-73,19,568,539,35,106,1,1,1
-74,19,564,539,35,107,1,1,1
-75,19,560,539,35,107,1,1,1
-76,19,556,539,35,107,1,1,1
-77,19,552,539,35,108,1,1,1
-78,19,546,539,35,109,1,1,1
-79,19,541,539,35,110,1,1,1
-80,19,535,540,36,110,1,1,1
-81,19,530,540,36,111,1,1,1
-464,20,1374,804,180,423,1,1,0.6533
-465,20,1339,818,178,422,1,1,0.62175
-466,20,1304,832,176,421,1,1,0.59005
-467,20,1269,846,174,421,1,1,0.55687
-468,20,1238,853,171,420,1,1,0.54157
-469,20,1207,860,168,420,1,1,0.52494
-470,20,1172,857,164,420,1,1,0.53207
-471,20,1132,852,171,420,1,1,0.54394
-472,20,1091,848,183,420,1,1,0.55344
-473,20,1051,848,185,420,1,1,0.55344
-474,20,1012,849,187,420,1,1,0.49538
-475,20,973,850,189,420,1,1,0.43029
-476,20,930,857,191,420,1,1,0.36857
-477,20,887,865,194,420,1,1,0.51306
-478,20,839,871,196,420,1,1,0.30638
-479,20,796,881,191,421,1,1,0.2888
-480,20,754,892,185,421,1,1,0.26728
-481,20,710,887,184,422,1,1,0.2727
-482,20,667,882,182,424,1,1,0.46824
-483,20,614,879,180,426,1,1,0.47307
-484,20,561,877,179,427,1,1,0.47664
-485,20,509,875,177,429,1,1,0.47907
-486,20,455,879,176,431,1,1,0.46759
-487,20,401,884,175,433,1,1,0.45392
-488,20,347,901,173,436,1,1,0.4119
-489,20,300,915,168,425,1,1,0.38967
-490,20,250,927,163,416,1,1,0.3693
-491,20,200,940,158,407,1,1,0.34559
-492,20,137,944,161,403,1,1,0.33911
-493,20,74,949,164,399,1,1,0.33
-494,20,11,953,167,395,1,1,0.32323
-495,20,-52,958,170,391,1,1,0.21652
-481,21,1813,651,75,236,1,1,0.44509
-482,21,1763,651,75,236,1,1,0.46397
-483,21,1729,653,75,236,1,1,0.45348
-484,21,1687,653,75,236,1,1,0.44948
-485,21,1646,653,74,236,1,1,0.44473
-486,21,1605,653,74,236,1,1,0.45626
-487,21,1550,655,87,236,1,1,0.59489
-488,21,1496,658,99,235,1,1,0.69419
-489,21,1442,661,111,235,1,1,0.77716
-490,21,1397,665,110,236,1,1,0.81062
-491,21,1352,669,110,238,1,1,0.83535
-492,21,1307,674,110,239,1,1,0.85139
-493,21,1275,675,102,246,1,1,0.83346
-494,21,1243,677,95,252,1,1,0.78911
-495,21,1211,679,88,259,1,1,0.73755
-496,21,1164,679,86,261,1,1,0.80047
-497,21,1118,680,84,262,1,1,0.85466
-498,21,1072,681,81,263,1,1,0.93154
-499,21,1026,682,79,264,1,1,0.97623
-500,21,980,683,77,265,1,1,1
-501,21,930,683,84,268,1,1,0.92132
-502,21,881,684,90,270,1,1,0.83131
-503,21,832,684,96,274,1,1,0.75258
-504,21,783,685,102,276,1,1,0.68182
-505,21,734,686,108,279,1,1,0.62706
-506,21,686,691,101,282,1,1,0.64193
-507,21,638,697,94,284,1,1,0.66726
-508,21,590,702,87,287,1,1,0.69729
-509,21,542,708,80,290,1,1,0.73166
-510,21,485,715,80,295,1,1,0.84818
-511,21,429,722,80,300,1,1,0.96493
-512,21,353,727,113,311,1,1,0.81691
-513,21,278,732,145,322,1,1,0.73309
-514,21,218,737,143,325,1,1,0.73586
-515,21,159,743,140,328,1,1,0.72925
-516,21,115,749,132,336,1,1,0.63751
-517,21,61,754,134,336,1,1,0.57129
-518,21,7,760,137,335,1,1,0.50513
-480,22,1848,651,97,238,1,1,0.40829
-481,22,1872,661,97,238,1,1,0.3118
-482,22,1826,659,97,238,1,1,0.73662
-483,22,1792,661,97,238,1,1,0.77645
-484,22,1749,660,97,238,1,1,0.75523
-485,22,1706,660,97,238,1,1,0.72761
-486,22,1664,660,96,238,1,1,0.70496
-487,22,1626,660,91,238,1,1,0.67482
-488,22,1588,661,86,237,1,1,0.64165
-489,22,1550,662,81,237,1,1,0.6446
-490,22,1507,667,81,237,1,1,0.60566
-491,22,1464,672,81,237,1,1,0.56548
-492,22,1421,677,81,237,1,1,0.54622
-493,22,1375,683,81,241,1,1,0.53306
-494,22,1329,689,81,246,1,1,0.51822
-495,22,1284,696,80,250,1,1,0.50996
-496,22,1239,695,79,251,1,1,0.52381
-497,22,1194,695,78,252,1,1,0.5336
-498,22,1149,695,78,253,1,1,0.52756
-499,22,1104,695,77,254,1,1,0.56199
-500,22,1060,695,76,255,1,1,0.61967
-501,22,1008,695,83,265,1,1,0.69549
-502,22,956,695,90,275,1,1,0.71429
-503,22,904,695,97,286,1,1,0.73512
-504,22,852,695,104,296,1,1,0.7899
-505,22,801,695,110,307,1,1,0.8166
-506,22,750,702,110,310,1,1,0.84334
-507,22,700,709,110,313,1,1,0.89729
-508,22,650,716,109,316,1,1,0.94924
-509,22,600,724,109,319,1,1,0.97429
-510,22,553,731,109,326,1,1,0.98449
-511,22,507,738,109,333,1,1,0.97942
-512,22,445,743,113,337,1,1,1
-513,22,383,748,117,342,1,1,0.97085
-514,22,322,753,120,346,1,1,0.94524
-515,22,260,758,124,351,1,1,0.91761
-516,22,199,763,127,356,1,1,0.89076
-517,22,138,768,131,352,1,1,0.88669
-518,22,77,774,135,348,1,1,0.87966
-519,22,1,782,152,375,1,1,0.79521
-503,23,1862,650,71,175,1,1,0.81944
-504,23,1828,652,73,174,1,1,1
-505,23,1795,654,74,174,1,1,1
-506,23,1762,656,75,174,1,1,1
-507,23,1729,658,76,174,1,1,1
-508,23,1696,660,77,174,1,1,0.98718
-509,23,1661,662,79,175,1,1,0.9625
-510,23,1626,664,81,176,1,1,0.93902
-511,23,1591,666,83,177,1,1,0.92857
-512,23,1556,668,85,178,1,1,0.93023
-513,23,1522,670,86,179,1,1,0.93103
-514,23,1487,670,86,182,1,1,0.95402
-515,23,1453,671,86,184,1,1,0.96552
-516,23,1419,672,85,187,1,1,0.98837
-517,23,1384,672,86,190,1,1,1
-518,23,1350,673,85,192,1,1,1
-519,23,1316,674,85,195,1,1,1
-520,23,1283,675,85,195,1,1,1
-521,23,1250,676,85,195,1,1,1
-522,23,1218,677,85,195,1,1,1
-523,23,1185,678,85,195,1,1,1
-524,23,1152,679,85,195,1,1,1
-525,23,1120,680,85,195,1,1,1
-526,23,1086,682,86,199,1,1,1
-527,23,1052,684,88,203,1,1,1
-528,23,1018,686,90,207,1,1,0.95626
-529,23,984,688,92,212,1,1,0.86087
-530,23,950,690,93,214,1,1,0.8617
-531,23,917,692,93,217,1,1,0.85311
-532,23,883,694,94,220,1,1,0.84639
-533,23,850,696,95,223,1,1,0.86821
-534,23,816,698,96,226,1,1,0.90967
-535,23,783,700,96,229,1,1,0.8996
-536,23,749,702,97,232,1,1,0.90059
-537,23,716,704,98,235,1,1,0.88187
-538,23,682,709,97,236,1,1,0.89925
-539,23,649,715,95,236,1,1,0.88542
-540,23,616,721,94,236,1,1,0.87368
-541,23,572,728,103,238,1,1,0.82692
-542,23,526,728,120,253,1,1,0.81441
-543,23,490,738,124,256,1,1,0.784
-544,23,452,744,129,266,1,1,0.76923
-545,23,414,750,135,248,1,1,0.75
-546,23,383,751,122,256,1,1,0.78862
-547,23,352,753,109,264,1,1,0.83636
-548,23,307,755,111,273,1,1,0.90214
-549,23,255,756,119,282,1,1,0.8439
-550,23,203,758,127,291,1,1,0.86992
-551,23,152,760,134,300,1,1,0.89905
-552,23,104,768,140,305,1,1,0.90931
-553,23,57,776,145,310,1,1,0.83535
-554,23,10,784,151,315,1,1,0.75142
-555,23,-34,792,151,315,1,1,0.47928
-505,24,1878,658,73,183,1,1,0.58108
-506,24,1843,655,80,188,1,1,0.96296
-507,24,1808,652,87,194,1,1,1
-508,24,1773,655,86,194,1,1,1
-509,24,1738,658,85,195,1,1,1
-510,24,1703,661,84,195,1,1,1
-511,24,1669,665,82,195,1,1,1
-512,24,1636,666,81,197,1,1,1
-513,24,1603,667,81,199,1,1,1
-514,24,1570,668,81,202,1,1,1
-515,24,1537,669,81,204,1,1,1
-516,24,1504,670,81,207,1,1,1
-517,24,1471,671,81,209,1,1,1
-518,24,1439,673,80,211,1,1,1
-519,24,1406,674,81,213,1,1,1
-520,24,1374,675,81,215,1,1,1
-521,24,1342,677,81,217,1,1,1
-522,24,1308,676,82,219,1,1,1
-523,24,1275,676,82,221,1,1,1
-524,24,1242,676,83,223,1,1,1
-525,24,1215,677,83,225,1,1,1
-526,24,1178,678,84,227,1,1,1
-527,24,1142,679,84,229,1,1,1
-528,24,1105,687,90,226,1,1,1
-529,24,1064,689,99,229,1,1,1
-530,24,1031,690,101,239,1,1,1
-531,24,997,695,102,241,1,1,1
-532,24,963,700,103,244,1,1,1
-533,24,933,702,105,248,1,1,1
-534,24,904,704,106,253,1,1,1
-535,24,870,706,102,256,1,1,1
-536,24,837,708,98,259,1,1,1
-537,24,803,710,98,262,1,1,1
-538,24,770,712,97,265,1,1,1
-539,24,734,714,101,273,1,1,1
-540,24,699,716,104,282,1,1,1
-541,24,658,725,119,286,1,1,1
-542,24,624,734,120,289,1,1,1
-543,24,588,737,117,295,1,1,1
-544,24,552,741,115,300,1,1,1
-545,24,516,745,112,305,1,1,1
-546,24,480,748,110,311,1,1,1
-547,24,444,752,107,316,1,1,1
-548,24,408,756,105,321,1,1,1
-549,24,356,760,119,327,1,1,0.97866
-550,24,314,764,121,335,1,1,0.94345
-551,24,273,768,123,343,1,1,0.90988
-552,24,232,773,125,350,1,1,0.87749
-553,24,181,781,133,358,1,1,0.83565
-554,24,131,789,141,367,1,1,0.79348
-555,24,80,797,149,375,1,1,0.75532
-556,24,30,806,157,383,1,1,0.71615
-557,24,-16,813,150,371,1,1,0.63932
-516,25,1882,736,82,265,1,1,0.46988
-517,25,1828,729,115,277,1,1,0.80172
-518,25,1790,729,128,276,1,1,1
-519,25,1756,730,130,276,1,1,1
-520,25,1721,730,134,279,1,1,1
-521,25,1685,730,135,279,1,1,1
-522,25,1651,731,139,280,1,1,1
-523,25,1641,730,117,276,1,1,1
-524,25,1610,727,114,283,1,1,1
-525,25,1576,724,117,277,1,1,1
-526,25,1542,725,117,278,1,1,1
-527,25,1514,726,111,279,1,1,1
-528,25,1486,727,110,280,1,1,1
-529,25,1455,727,109,282,1,1,1
-530,25,1402,733,133,289,1,1,1
-531,25,1373,731,133,297,1,1,1
-532,25,1344,736,129,293,1,1,1
-533,25,1316,735,129,293,1,1,1
-534,25,1286,736,132,295,1,1,1
-535,25,1257,736,129,294,1,1,1
-536,25,1234,737,126,290,1,1,1
-537,25,1201,735,129,289,1,1,1
-538,25,1173,739,133,285,1,1,1
-539,25,1149,735,129,299,1,1,1
-540,25,1121,742,122,302,1,1,1
-541,25,1094,742,128,310,1,1,1
-542,25,1060,748,128,314,1,1,1
-543,25,1038,754,132,310,1,1,1
-544,25,1010,762,128,310,1,1,1
-545,25,984,755,128,314,1,1,1
-546,25,953,757,133,317,1,1,1
-547,25,929,757,129,317,1,1,1
-548,25,900,756,132,317,1,1,1
-549,25,874,755,136,305,1,1,1
-550,25,847,753,133,310,1,1,1
-551,25,820,751,137,322,1,1,1
-552,25,796,750,136,334,1,1,0.98806
-553,25,771,755,136,325,1,1,1
-554,25,746,760,136,322,1,1,0.99381
-555,25,721,768,137,321,1,1,0.97205
-556,25,693,766,137,330,1,1,0.95166
-557,25,669,765,137,322,1,1,0.97833
-558,25,639,763,137,326,1,1,0.97248
-559,25,613,763,145,329,1,1,0.96364
-560,25,586,763,144,330,1,1,0.96073
-561,25,555,757,149,337,1,1,0.95858
-562,25,524,758,156,338,1,1,0.9528
-563,25,501,759,154,338,1,1,0.94985
-564,25,473,761,157,338,1,1,0.94395
-565,25,445,765,162,342,1,1,0.92128
-566,25,413,770,169,346,1,1,0.89625
-567,25,383,775,174,345,1,1,0.88439
-568,25,354,780,178,349,1,1,0.86
-569,25,330,788,177,350,1,1,0.83476
-570,25,303,791,181,353,1,1,0.81921
-571,25,272,797,189,353,1,1,0.80226
-572,25,247,799,190,357,1,1,0.78771
-573,25,214,799,196,358,1,1,0.78552
-574,25,189,801,194,362,1,1,0.77135
-575,25,155,798,198,374,1,1,0.75467
-576,25,117,803,213,378,1,1,0.73351
-577,25,87,808,216,382,1,1,0.71279
-578,25,65,813,209,389,1,1,0.68718
-579,25,36,821,205,394,1,1,0.65823
-580,25,-1,829,210,398,1,1,0.62559
-581,25,-16,832,197,399,1,1,0.56905
-582,25,-30,836,184,400,1,1,0.50859
-583,25,-44,840,171,401,1,1,0.44266
-584,25,-75,841,171,401,1,1,0.33322
-585,25,-106,842,171,401,1,1,0.22468
-504,26,1886,568,39,93,1,1,0.5867
-505,26,1853,567,39,94,1,1,0.62789
-506,26,1820,567,39,95,1,1,0.56094
-507,26,1791,566,39,96,1,1,0.53351
-508,26,1763,566,39,97,1,1,0.5449
-509,26,1733,568,39,98,1,1,0.56919
-510,26,1704,570,39,99,1,1,0.546
-511,26,1675,572,39,100,1,1,0.5755
-512,26,1646,574,38,101,1,1,0.55505
-513,26,1617,576,38,102,1,1,0.56634
-514,26,1588,578,38,103,1,1,0.86538
-515,26,1562,577,39,103,1,1,0.88462
-516,26,1536,576,40,104,1,1,0.89524
-517,26,1510,575,41,104,1,1,0.91429
-518,26,1484,575,42,104,1,1,0.94419
-519,26,1458,574,43,104,1,1,0.96753
-520,26,1432,573,44,105,1,1,0.97987
-521,26,1406,572,45,105,1,1,0.99631
-522,26,1380,572,46,105,1,1,0.99558
-523,26,1354,571,47,105,1,1,0.99921
-524,26,1328,570,48,106,1,1,1
-525,26,1303,570,49,106,1,1,1
-526,26,1279,569,50,107,1,1,1
-527,26,1256,569,51,107,1,1,1
-528,26,1232,570,48,108,1,1,1
-529,26,1208,571,45,109,1,1,1
-530,26,1184,573,42,109,1,1,1
-531,26,1163,573,42,109,1,1,1
-532,26,1142,573,42,110,1,1,1
-533,26,1121,574,43,110,1,1,1
-534,26,1099,574,43,111,1,1,1
-535,26,1077,575,44,111,1,1,1
-536,26,1056,576,44,111,1,1,1
-537,26,1035,578,44,111,1,1,1
-538,26,1014,580,45,112,1,1,1
-539,26,994,581,46,112,1,1,1
-540,26,975,582,46,112,1,1,1
-541,26,956,583,46,113,1,1,1
-542,26,927,584,57,113,1,1,1
-543,26,911,586,55,114,1,1,1
-544,26,895,588,54,115,1,1,1
-545,26,874,585,54,116,1,1,1
-546,26,853,583,55,116,1,1,1
-547,26,834,584,55,115,1,1,1
-548,26,816,585,54,114,1,1,1
-549,26,798,586,53,114,1,1,1
-550,26,779,585,53,116,1,1,1
-551,26,761,584,53,118,1,1,1
-552,26,742,584,54,119,1,1,1
-553,26,724,583,54,121,1,1,1
-554,26,705,583,55,122,1,1,1
-555,26,687,582,55,124,1,1,1
-556,26,669,581,54,126,1,1,1
-557,26,650,581,55,127,1,1,1
-558,26,632,580,55,129,1,1,1
-559,26,613,580,56,130,1,1,1
-560,26,595,579,56,132,1,1,1
-561,26,577,579,56,133,1,1,1
-562,26,560,580,58,133,1,1,1
-563,26,543,581,60,134,1,1,1
-564,26,526,582,62,135,1,1,1
-565,26,510,584,63,135,1,1,1
-566,26,493,585,65,135,1,1,1
-567,26,476,586,67,136,1,1,1
-568,26,459,587,69,137,1,1,1
-569,26,443,589,70,137,1,1,1
-570,26,426,590,70,138,1,1,1
-571,26,410,591,69,140,1,1,1
-572,26,394,593,69,141,1,1,1
-573,26,378,594,68,143,1,1,1
-574,26,362,596,68,143,1,1,1
-575,26,346,597,67,145,1,1,1
-576,26,330,599,67,146,1,1,1
-577,26,314,600,66,148,1,1,1
-578,26,298,602,66,149,1,1,1
-579,26,278,600,71,152,1,1,1
-580,26,258,598,77,155,1,1,1
-581,26,243,597,78,159,1,1,1
-582,26,229,597,78,162,1,1,1
-583,26,208,599,79,164,1,1,1
-584,26,193,601,81,165,1,1,1
-585,26,178,603,83,166,1,1,1
-586,26,163,606,85,167,1,1,1
-587,26,144,610,91,170,1,1,1
-588,26,129,611,93,171,1,1,1
-589,26,114,612,96,173,1,1,1
-590,26,96,613,102,175,1,1,1
-591,26,82,614,103,177,1,1,1
-592,26,67,615,104,179,1,1,1
-593,26,51,616,105,182,1,1,1
-594,26,42,618,102,185,1,1,1
-595,26,28,619,103,189,1,1,1
-596,26,16,622,105,190,1,1,1
-597,26,1,625,105,193,1,1,1
-598,26,-4,637,99,197,1,1,0.95
-599,26,-12,638,95,200,1,1,0.86458
-600,26,-20,640,92,203,1,1,0.77419
-601,26,-32,647,91,203,1,1,0.6413
-602,26,-43,649,89,204,1,1,0.51111
-603,26,-54,652,88,204,1,1,0.38202
-604,26,-68,656,88,204,1,1,0.22472
-569,27,1894,588,51,163,1,1,0.36538
-570,27,1886,588,51,163,1,1,0.46154
-571,27,1878,588,51,163,1,1,0.55769
-572,27,1870,588,52,163,1,1,0.64151
-573,27,1862,588,53,163,1,1,0.62963
-574,27,1854,588,54,163,1,1,0.58182
-575,27,1846,588,55,163,1,1,0.53571
-576,27,1838,588,57,164,1,1,0.5
-577,27,1830,588,58,164,1,1,0.49153
-578,27,1822,588,59,164,1,1,0.5
-579,27,1814,588,60,164,1,1,0.5082
-580,27,1807,589,61,164,1,1,0.51613
-581,27,1802,589,59,163,1,1,0.5
-582,27,1798,589,57,162,1,1,0.48276
-583,27,1793,589,56,161,1,1,0.47368
-584,27,1789,589,53,160,1,1,0.44444
-585,27,1784,589,52,159,1,1,0.49057
-586,27,1780,590,50,157,1,1,0.58824
-587,27,1777,588,52,160,1,1,0.62264
-588,27,1774,586,55,163,1,1,0.66071
-589,27,1771,585,57,165,1,1,0.74138
-590,27,1768,583,60,168,1,1,0.77049
-591,27,1765,581,62,171,1,1,1
-592,27,1763,580,64,173,1,1,1
-593,27,1761,581,67,173,1,1,1
-594,27,1760,582,69,173,1,1,1
-595,27,1758,583,72,173,1,1,0.9726
-596,27,1757,584,75,173,1,1,0.88158
-597,27,1763,582,77,175,1,1,0.88462
-598,27,1766,581,75,177,1,1,0.84211
-599,27,1770,580,72,179,1,1,0.80822
-600,27,1774,580,69,181,1,1,0.75714
-601,27,1783,573,62,184,1,1,0.77778
-602,27,1787,572,59,186,1,1,0.71667
-603,27,1791,571,57,189,1,1,0.67241
-604,27,1794,572,58,187,1,1,0.61017
-605,27,1798,574,58,185,1,1,0.61017
-606,27,1802,575,59,184,1,1,0.61667
-607,27,1806,577,59,182,1,1,0.56566
-608,27,1810,579,60,180,1,1,0.48546
-609,27,1814,585,61,177,1,1,0.39226
-610,27,1818,591,62,175,1,1,0.41486
-611,27,1824,593,62,176,1,1,0.44122
-612,27,1830,596,63,176,1,1,0.47413
-613,27,1835,597,62,181,1,1,0.56968
-614,27,1840,598,62,186,1,1,0.66234
-615,27,1845,602,61,192,1,1,0.83938
-616,27,1850,606,61,198,1,1,0.85759
-617,27,1855,607,61,201,1,1,0.83855
-618,27,1861,609,60,203,1,1,0.80923
-619,27,1866,610,60,206,1,1,0.61749
-620,27,1872,612,60,208,1,1,0.49125
-621,27,1878,614,60,208,1,1,0.18888
-622,27,1884,617,60,208,1,1,0.15962
-623,27,1891,620,60,208,1,1,0.12707
-624,27,1897,623,60,208,1,1,0.10166
-505,28,1896,550,29,79,1,1,0.83333
-506,28,1866,550,30,80,1,1,1
-507,28,1836,551,31,80,1,1,1
-508,28,1806,552,32,81,1,1,1
-509,28,1776,553,33,81,1,1,1
-510,28,1746,554,35,82,1,1,1
-511,28,1716,554,36,83,1,1,1
-512,28,1686,555,37,83,1,1,1
-513,28,1656,556,38,84,1,1,1
-514,28,1626,557,39,84,1,1,0.98118
-515,28,1597,558,40,85,1,1,0.90499
-516,28,1571,557,38,84,1,1,0.88054
-517,28,1545,556,36,83,1,1,0.8536
-518,28,1520,555,34,82,1,1,0.84819
-519,28,1493,553,34,82,1,1,0.80792
-520,28,1466,552,34,82,1,1,0.76523
-521,28,1440,551,34,82,1,1,0.74389
-522,28,1416,549,32,83,1,1,0.75794
-523,28,1392,547,30,84,1,1,0.7685
-524,28,1368,545,28,85,1,1,0.77987
-525,28,1344,544,27,85,1,1,0.59718
-526,28,1320,544,27,85,1,1,0.60382
-527,28,1297,544,27,85,1,1,0.39992
-528,28,1274,544,27,85,1,1,0.53987
-529,28,1250,548,29,79,1,1,0.57167
-530,28,1228,547,28,81,1,1,0.75862
-531,28,1206,547,28,83,1,1,0.62069
-532,28,1183,547,32,83,1,1,0.53391
-533,28,1161,548,36,82,1,1,0.54738
-534,28,1142,548,33,83,1,1,0.56793
-535,28,1123,548,31,84,1,1,0.5
-536,28,1101,547,34,84,1,1,0.54286
-537,28,1079,547,37,84,1,1,0.56223
-538,28,1059,546,36,86,1,1,0.5511
-539,28,1040,546,35,87,1,1,0.53883
-540,28,1021,546,34,88,1,1,0.55441
-541,28,1002,546,33,89,1,1,0.5415
-542,28,984,545,33,90,1,1,0.54202
-543,28,966,545,33,90,1,1,0.51325
-544,28,948,544,33,91,1,1,0.52941
-545,28,930,544,34,92,1,1,0.57143
-546,28,911,543,34,91,1,1,0.54286
-547,28,893,542,34,91,1,1,0.48571
-548,28,875,542,34,90,1,1,0.57143
-549,28,859,540,34,92,1,1,0.57143
-550,28,843,539,34,93,1,1,0.57143
-551,28,827,538,35,94,1,1,0.66667
-552,28,811,537,35,95,1,1,0.75
-553,28,795,536,35,96,1,1,0.83333
-554,28,780,535,35,98,1,1,0.88889
-555,28,765,534,35,97,1,1,1
-556,28,750,534,35,95,1,1,1
-557,28,735,534,35,94,1,1,1
-558,28,720,533,35,93,1,1,1
-559,28,705,533,35,91,1,1,1
-560,28,690,533,36,90,1,1,1
-561,28,675,533,37,90,1,1,0.92366
-562,28,660,534,38,89,1,1,0.90285
-563,28,645,535,40,89,1,1,0.91328
-564,28,632,536,40,89,1,1,0.90515
-565,28,620,537,39,90,1,1,0.91209
-566,28,608,538,38,91,1,1,0.92391
-567,28,596,539,37,92,1,1,0.60838
-568,28,583,538,36,92,1,1,0.52485
-569,28,570,538,35,92,1,1,0.53943
-570,28,558,538,34,92,1,1,0.53917
-571,28,541,537,40,92,1,1,0.5455
-572,28,530,537,39,92,1,1,0.55914
-573,28,519,537,38,93,1,1,0.53137
-574,28,508,537,37,93,1,1,0.58959
-575,28,498,537,35,94,1,1,0.60789
-576,28,487,536,36,95,1,1,0.77083
-577,28,476,536,37,95,1,1,0.80208
-578,28,465,535,38,96,1,1,0.77901
-579,28,455,535,38,97,1,1,0.7326
-580,28,444,534,39,98,1,1,0.60278
-581,28,433,534,40,98,1,1,0.56911
-582,28,423,534,40,99,1,1,0.45439
-583,28,414,534,40,99,1,1,0.35561
-584,28,406,534,40,99,1,1,0.3
-585,28,398,534,40,100,1,1,0.32722
-586,28,390,534,40,100,1,1,0.36585
-587,28,382,534,40,101,1,1,0.39024
-588,28,373,534,41,101,1,1,0.47619
-589,28,365,534,41,101,1,1,0.61905
-590,28,357,534,41,102,1,1,0.66667
-591,28,349,534,41,102,1,1,0.78571
-592,28,341,534,41,103,1,1,0.92857
-593,28,335,534,41,103,1,1,1
-594,28,330,534,41,104,1,1,1
-595,28,324,535,42,104,1,1,1
-596,28,319,535,42,105,1,1,1
-597,28,314,536,42,105,1,1,1
-598,28,310,537,42,105,1,1,1
-599,28,306,538,43,105,1,1,1
-600,28,302,539,44,105,1,1,1
-601,28,299,541,44,105,1,1,1
-602,28,295,540,44,106,1,1,1
-603,28,292,540,44,107,1,1,1
-604,28,292,546,44,104,1,1,1
-605,28,283,545,48,106,1,1,1
-606,28,284,542,51,107,1,1,1
-607,28,281,542,52,107,1,1,1
-608,28,278,543,53,108,1,1,1
-609,28,279,538,49,109,1,1,1
-610,28,276,537,49,109,1,1,1
-611,28,273,536,50,109,1,1,1
-612,28,270,535,51,110,1,1,1
-613,28,267,534,51,110,1,1,1
-614,28,264,533,52,111,1,1,1
-615,28,261,532,52,111,1,1,1
-616,28,258,531,52,112,1,1,1
-617,28,255,529,51,116,1,1,1
-618,28,252,530,51,116,1,1,1
-619,28,250,532,50,116,1,1,1
-620,28,247,533,50,116,1,1,1
-621,28,245,535,49,116,1,1,1
-622,28,242,536,49,116,1,1,1
-623,28,240,538,49,116,1,1,1
-624,28,240,537,48,117,1,1,1
-625,28,237,543,49,117,1,1,1
-626,28,237,539,48,117,1,1,1
-627,28,237,550,50,113,1,1,1
-628,28,236,548,52,114,1,1,1
-629,28,236,551,53,115,1,1,1
-630,28,237,552,54,115,1,1,1
-631,28,239,550,54,118,1,1,1
-632,28,239,554,55,116,1,1,1
-633,28,240,554,54,120,1,1,1
-634,28,241,555,55,117,1,1,1
-635,28,242,553,57,118,1,1,1
-636,28,244,555,56,119,1,1,1
-637,28,246,557,55,120,1,1,1
-638,28,248,559,54,122,1,1,1
-639,28,250,561,53,124,1,1,1
-640,28,253,563,53,126,1,1,1
-641,28,256,564,52,126,1,1,1
-642,28,262,565,48,127,1,1,1
-643,28,263,562,45,132,1,1,1
-644,28,265,568,49,126,1,1,1
-645,28,267,570,50,126,1,1,1
-646,28,269,572,50,126,1,1,1
-647,28,270,569,55,127,1,1,1
-648,28,276,572,52,126,1,1,1
-649,28,280,564,53,125,1,1,1
-650,28,284,564,51,132,1,1,1
-651,28,294,567,50,133,1,1,1
-652,28,299,560,47,128,1,1,1
-653,28,305,562,46,129,1,1,1
-654,28,311,565,45,130,1,1,1
-655,28,318,564,48,131,1,1,1
-656,28,324,575,50,133,1,1,1
-657,28,334,578,52,130,1,1,1
-658,28,338,582,53,129,1,1,1
-659,28,342,598,54,128,1,1,1
-660,28,348,594,54,132,1,1,1
-661,28,357,596,56,130,1,1,1
-662,28,367,598,57,129,1,1,1
-663,28,375,597,58,127,1,1,1
-664,28,384,596,59,125,1,1,1
-665,28,387,598,61,124,1,1,1
-666,28,391,592,68,123,1,1,1
-667,28,394,591,74,123,1,1,1
-668,28,403,590,77,126,1,1,1
-669,28,402,582,93,136,1,1,1
-670,28,415,580,94,133,1,1,1
-671,28,428,580,96,134,1,1,1
-672,28,443,580,89,134,1,1,1
-673,28,458,581,83,133,1,1,1
-674,28,482,579,78,128,1,1,1
-675,28,500,575,74,129,1,1,1
-676,28,512,575,76,134,1,1,1
-677,28,520,572,87,136,1,1,1
-678,28,528,569,92,139,1,1,1
-679,28,540,577,97,143,1,1,1
-680,28,555,572,97,140,1,1,1
-681,28,569,600,97,146,1,1,1
-682,28,591,621,91,140,1,1,1
-683,28,605,594,87,139,1,1,1
-684,28,621,588,83,136,1,1,1
-685,28,648,583,75,143,1,1,1
-686,28,647,577,90,144,1,1,1
-687,28,657,573,92,147,1,1,1
-688,28,668,570,94,150,1,1,1
-689,28,678,568,98,150,1,1,1
-690,28,688,566,102,150,1,1,1
-691,28,702,568,102,151,1,1,1
-692,28,722,573,96,147,1,1,1
-693,28,743,575,90,149,1,1,1
-694,28,770,583,81,143,1,1,1
-695,28,791,587,76,150,1,1,1
-696,28,806,587,79,150,1,1,1
-697,28,817,586,85,151,1,1,1
-698,28,829,586,90,152,1,1,1
-699,28,842,588,95,153,1,1,1
-700,28,858,589,102,161,1,1,1
-701,28,876,596,96,159,1,1,1
-702,28,901,600,90,155,1,1,1
-703,28,924,607,85,155,1,1,1
-704,28,947,614,81,156,1,1,1
-705,28,971,615,73,162,1,1,1
-706,28,979,616,85,166,1,1,1
-707,28,985,612,96,174,1,1,1
-708,28,999,614,106,177,1,1,1
-709,28,1013,613,115,179,1,1,1
-710,28,1028,630,117,176,1,1,1
-711,28,1046,626,116,173,1,1,1
-712,28,1069,633,113,178,1,1,1
-713,28,1097,635,99,174,1,1,1
-714,28,1127,637,97,173,1,1,1
-715,28,1140,638,99,177,1,1,1
-716,28,1154,633,101,185,1,1,1
-717,28,1175,628,103,188,1,1,1
-718,28,1195,625,103,195,1,1,1
-719,28,1206,631,113,198,1,1,1
-720,28,1228,633,116,201,1,1,1
-721,28,1251,640,111,199,1,1,1
-722,28,1276,650,113,197,1,1,1
-723,28,1306,658,106,196,1,1,1
-724,28,1358,666,87,199,1,1,1
-725,28,1373,668,94,203,1,1,1
-726,28,1384,675,109,206,1,1,1
-727,28,1394,671,125,210,1,1,1
-728,28,1411,685,129,214,1,1,1
-729,28,1431,677,153,226,1,1,1
-730,28,1456,686,153,230,1,1,1
-731,28,1484,697,143,226,1,1,1
-732,28,1515,705,125,229,1,1,1
-733,28,1555,707,126,226,1,1,1
-734,28,1593,718,116,230,1,1,1
-735,28,1613,708,127,237,1,1,1
-736,28,1632,710,134,244,1,1,1
-737,28,1659,707,138,248,1,1,1
-738,28,1690,714,137,255,1,1,1
-739,28,1716,718,149,260,1,1,1
-740,28,1751,723,152,262,1,1,1
-741,28,1785,733,152,265,1,1,0.88889
-742,28,1826,748,150,263,1,1,0.62914
-1,29,954,548,81,63,0,3,1
-2,29,955,544,82,63,0,3,1
-3,29,956,546,82,64,0,3,1
-4,29,957,548,83,65,0,3,1
-5,29,958,551,84,65,0,3,1
-6,29,961,561,84,65,0,3,1
-7,29,962,554,85,66,0,3,1
-8,29,962,562,85,66,0,3,1
-9,29,961,563,86,67,0,3,1
-10,29,960,564,87,68,0,3,1
-11,29,959,560,88,69,0,3,1
-12,29,959,557,88,69,0,3,1
-13,29,959,554,88,69,0,3,1
-14,29,959,554,89,70,0,3,1
-15,29,960,555,90,71,0,3,1
-16,29,960,556,90,71,0,3,1
-17,29,960,557,91,71,0,3,1
-18,29,960,558,91,72,0,3,1
-19,29,960,559,92,72,0,3,1
-20,29,961,560,91,72,0,3,1
-21,29,961,561,92,73,0,3,1
-22,29,961,562,92,73,0,3,1
-23,29,961,563,93,73,0,3,1
-24,29,962,564,93,74,0,3,1
-25,29,962,566,94,75,0,3,1
-26,29,962,569,95,76,0,3,1
-27,29,962,572,97,77,0,3,1
-28,29,962,575,98,78,0,3,1
-29,29,963,578,99,79,0,3,1
-30,29,963,581,98,79,0,3,1
-31,29,963,585,98,79,0,3,1
-32,29,963,589,98,79,0,3,1
-33,29,961,575,98,79,0,3,1
-34,29,962,579,104,79,0,3,1
-35,29,963,572,102,81,0,3,1
-36,29,964,566,101,82,0,3,1
-37,29,963,565,102,82,0,3,1
-38,29,963,564,103,82,0,3,1
-39,29,965,567,101,82,0,3,1
-40,29,964,566,104,81,0,3,1
-41,29,963,566,108,80,0,3,1
-42,29,962,567,109,81,0,3,1
-43,29,962,568,110,82,0,3,1
-44,29,962,569,110,83,0,3,1
-45,29,962,571,111,83,0,3,1
-46,29,964,572,112,86,0,3,1
-47,29,966,573,113,90,0,3,1
-48,29,962,576,113,89,0,3,1
-49,29,966,577,111,90,0,3,1
-50,29,964,578,112,89,0,3,1
-51,29,963,582,107,88,0,3,1
-52,29,965,579,112,88,0,3,1
-53,29,965,577,120,90,0,3,1
-54,29,964,578,120,90,0,3,1
-55,29,964,579,119,90,0,3,1
-56,29,964,580,118,91,0,3,1
-57,29,964,580,116,91,0,3,1
-58,29,964,580,115,91,0,3,1
-59,29,964,580,114,92,0,3,1
-60,29,964,580,113,92,0,3,1
-61,29,964,580,112,93,0,3,1
-62,29,962,580,115,93,0,3,1
-63,29,960,580,119,93,0,3,1
-64,29,959,581,122,93,0,3,1
-65,29,957,581,124,94,0,3,1
-66,29,956,582,125,94,0,3,1
-67,29,954,583,125,95,0,3,1
-68,29,953,584,125,97,0,3,1
-69,29,952,585,125,98,0,3,1
-70,29,951,586,125,100,0,3,1
-71,29,948,586,124,100,0,3,1
-72,29,945,586,124,101,0,3,1
-73,29,942,586,128,101,0,3,1
-74,29,938,586,131,101,0,3,1
-75,29,936,586,131,102,0,3,1
-76,29,935,586,131,103,0,3,1
-77,29,931,586,132,104,0,3,1
-78,29,927,586,133,105,0,3,1
-79,29,924,586,133,106,0,3,1
-80,29,920,586,134,107,0,3,1
-81,29,917,586,134,108,0,3,1
-82,29,913,586,135,109,0,3,1
-83,29,910,586,135,110,0,3,1
-84,29,907,587,133,110,0,3,1
-85,29,904,589,132,109,0,3,1
-86,29,901,590,130,109,0,3,1
-87,29,898,592,129,108,0,3,1
-88,29,896,594,127,107,0,3,1
-89,29,891,596,128,106,0,3,1
-90,29,885,598,133,105,0,3,1
-91,29,879,601,138,103,0,3,1
-92,29,873,604,137,104,0,3,1
-93,29,868,607,135,106,0,3,1
-94,29,863,610,133,108,0,3,1
-95,29,858,609,134,109,0,3,1
-96,29,854,609,135,109,0,3,1
-97,29,849,609,136,110,0,3,1
-98,29,845,609,137,110,0,3,1
-99,29,840,609,139,111,0,3,1
-100,29,836,609,139,111,0,3,1
-101,29,831,609,141,111,0,3,1
-102,29,827,609,141,112,0,3,1
-103,29,822,609,143,112,0,3,1
-104,29,818,609,144,113,0,3,1
-105,29,813,608,144,113,0,3,1
-106,29,809,607,143,113,0,3,1
-107,29,805,607,142,112,0,3,1
-108,29,800,606,143,113,0,3,1
-109,29,796,606,142,112,0,3,1
-110,29,792,605,141,112,0,3,1
-111,29,788,605,141,112,0,3,1
-112,29,782,605,141,111,0,3,1
-113,29,777,605,141,111,0,3,1
-114,29,771,605,142,111,0,3,1
-115,29,766,605,141,110,0,3,1
-116,29,761,605,141,110,0,3,1
-117,29,755,605,142,110,0,3,1
-118,29,750,605,141,109,0,3,1
-119,29,744,605,142,109,0,3,1
-120,29,739,605,142,109,0,3,1
-121,29,734,606,142,108,0,3,1
-122,29,728,606,143,108,0,3,1
-123,29,723,606,143,108,0,3,1
-124,29,717,606,144,108,0,3,1
-125,29,712,606,144,108,0,3,1
-126,29,707,606,144,109,0,3,1
-127,29,701,606,145,109,0,3,1
-128,29,696,606,145,109,0,3,1
-129,29,690,606,146,109,0,3,1
-130,29,685,606,146,109,0,3,1
-131,29,680,606,146,110,0,3,1
-132,29,675,604,146,110,0,3,1
-133,29,671,603,145,110,0,3,1
-134,29,666,602,145,110,0,3,1
-135,29,662,601,145,110,0,3,1
-136,29,658,600,144,110,0,3,1
-137,29,653,598,144,111,0,3,1
-138,29,649,597,144,111,0,3,1
-139,29,644,596,144,111,0,3,1
-140,29,640,595,143,111,0,3,1
-141,29,636,594,143,111,0,3,1
-142,29,631,594,143,110,0,3,1
-143,29,627,594,143,109,0,3,1
-144,29,623,594,142,108,0,3,1
-145,29,619,594,142,107,0,3,1
-146,29,615,595,142,106,0,3,1
-147,29,611,595,141,105,0,3,1
-148,29,607,595,141,104,0,3,1
-149,29,603,595,140,103,0,3,1
-150,29,599,595,140,102,0,3,1
-151,29,595,596,140,101,0,3,1
-152,29,584,598,130,103,0,3,1
-153,29,579,597,132,102,0,3,1
-154,29,575,596,133,102,0,3,1
-155,29,570,595,136,102,0,3,1
-156,29,566,594,137,102,0,3,1
-157,29,562,594,139,101,0,3,1
-158,29,557,593,140,108,0,3,1
-159,29,553,593,138,105,0,3,1
-160,29,549,593,136,102,0,3,1
-161,29,546,593,133,100,0,3,1
-162,29,541,592,133,101,0,3,1
-163,29,537,591,133,102,0,3,1
-164,29,533,591,132,102,0,3,1
-165,29,529,590,132,103,0,3,1
-166,29,524,589,133,104,0,3,1
-167,29,520,589,132,104,0,3,1
-168,29,516,588,132,105,0,3,1
-169,29,512,588,132,105,0,3,1
-170,29,509,588,132,103,0,3,0.99436
-171,29,507,588,131,101,0,3,0.9893
-172,29,505,588,131,100,0,3,0.98447
-173,29,501,586,132,100,0,3,0.98124
-174,29,498,585,131,98,0,3,0.98209
-175,29,495,584,131,96,0,3,0.98243
-176,29,493,583,130,94,0,3,0.98264
-177,29,490,583,130,94,0,3,0.98072
-178,29,488,583,129,94,0,3,0.97862
-179,29,486,583,128,94,0,3,0.97348
-180,29,483,584,128,93,0,3,0.96883
-181,29,481,584,127,93,0,3,0.96509
-182,29,479,584,126,93,0,3,0.95979
-183,29,477,584,126,94,0,3,0.95358
-184,29,474,585,126,93,0,3,0.94589
-185,29,472,585,125,93,0,3,0.94259
-186,29,470,585,124,93,0,3,0.93566
-187,29,467,586,124,92,0,3,0.92645
-188,29,465,586,123,92,0,3,0.92256
-189,29,463,586,123,93,0,3,0.90992
-190,29,461,586,122,93,0,3,0.90374
-191,29,458,587,122,92,0,3,0.89422
-192,29,456,587,121,92,0,3,0.88948
-193,29,454,587,120,92,0,3,0.87737
-194,29,451,588,120,91,0,3,0.8719
-195,29,449,588,120,92,0,3,0.86137
-196,29,447,588,119,92,0,3,0.85591
-197,29,445,588,118,92,0,3,0.85037
-198,29,442,589,118,91,0,3,0.84436
-199,29,440,589,117,91,0,3,0.83861
-200,29,438,589,116,91,0,3,0.83055
-201,29,436,590,116,91,0,3,0.81652
-202,29,434,590,116,90,0,3,0.81516
-203,29,433,590,116,90,0,3,0.80614
-204,29,432,590,115,89,0,3,0.80393
-205,29,431,590,115,89,0,3,0.79511
-206,29,430,590,114,89,0,3,0.78667
-207,29,428,590,115,88,0,3,0.7869
-208,29,427,590,114,88,0,3,0.77303
-209,29,426,590,114,88,0,3,0.76854
-210,29,425,590,113,87,0,3,0.76156
-211,29,424,590,113,87,0,3,0.75698
-212,29,423,591,113,86,0,3,0.75187
-213,29,423,590,112,86,0,3,0.74499
-214,29,423,590,112,85,0,3,0.74645
-215,29,423,590,112,84,0,3,0.74118
-216,29,423,589,112,84,0,3,0.75294
-217,29,423,589,111,84,0,3,0.75294
-218,29,423,589,111,83,0,3,0.75
-219,29,423,588,111,83,0,3,0.7619
-220,29,423,588,111,82,0,3,0.77108
-221,29,423,588,111,82,0,3,0.77108
-222,29,423,588,111,82,0,3,0.77108
-223,29,424,588,111,82,0,3,0.77108
-224,29,425,589,110,81,0,3,0.76829
-225,29,426,589,110,81,0,3,0.76829
-226,29,427,589,109,81,0,3,0.76829
-227,29,428,590,109,80,0,3,0.76543
-228,29,430,589,107,80,0,3,0.77778
-229,29,432,588,106,80,0,3,0.80247
-230,29,434,587,105,80,0,3,0.79012
-231,29,437,586,103,80,0,3,0.77778
-232,29,438,586,103,77,0,3,0.78205
-233,29,439,587,104,74,0,3,0.77333
-234,29,442,587,98,72,0,3,0.76712
-235,29,440,583,101,73,0,3,0.78378
-236,29,443,581,100,73,0,3,0.78378
-237,29,446,580,100,72,0,3,0.78082
-238,29,449,579,100,71,0,3,0.79167
-239,29,452,577,101,71,0,3,0.81944
-240,29,456,576,101,71,0,3,0.83333
-241,29,460,577,92,72,0,3,0.79452
-242,29,463,576,94,70,0,3,0.83099
-243,29,466,575,94,70,0,3,0.83099
-244,29,470,575,93,70,0,3,0.83099
-245,29,474,575,92,69,0,3,0.87143
-246,29,477,575,92,69,0,3,0.9
-247,29,481,575,91,68,0,3,0.88406
-248,29,485,575,90,68,0,3,0.85507
-249,29,489,575,90,68,0,3,0.84058
-250,29,494,574,90,70,0,3,0.83099
-251,29,499,573,90,73,0,3,0.81081
-252,29,504,573,90,72,0,3,0.82192
-253,29,510,573,89,71,0,3,0.84722
-254,29,515,573,89,70,0,3,0.85915
-255,29,521,573,88,69,0,3,0.87143
-256,29,526,573,88,68,0,3,0.88406
-257,29,532,574,87,67,0,3,0.89706
-258,29,537,573,87,66,0,3,0.92537
-259,29,543,572,87,66,0,3,0.9403
-260,29,549,571,86,66,0,3,0.95522
-261,29,555,570,86,66,0,3,0.97015
-262,29,561,569,85,66,0,3,0.98507
-263,29,567,568,85,66,0,3,1
-264,29,573,567,84,66,0,3,1
-265,29,579,566,84,66,0,3,1
-266,29,584,566,84,64,0,3,1
-267,29,590,565,84,64,0,3,1
-268,29,596,564,83,64,0,3,1
-269,29,602,563,83,64,0,3,1
-270,29,608,562,82,64,0,3,1
-271,29,614,561,82,64,0,3,1
-272,29,620,560,81,64,0,3,1
-273,29,626,559,81,64,0,3,1
-274,29,632,559,81,63,0,3,1
-275,29,638,558,80,63,0,3,1
-276,29,644,557,80,63,0,3,1
-277,29,651,557,79,63,0,3,1
-278,29,657,557,79,63,0,3,1
-279,29,663,557,80,63,0,3,1
-280,29,669,556,79,63,0,3,1
-281,29,675,556,79,63,0,3,1
-282,29,681,556,78,62,0,3,1
-283,29,688,555,77,63,0,3,1
-284,29,694,555,76,62,0,3,1
-285,29,700,555,76,62,0,3,1
-286,29,707,555,75,62,0,3,1
-287,29,711,555,75,62,0,3,1
-288,29,715,555,75,62,0,3,1
-289,29,720,556,74,61,0,3,1
-290,29,730,553,74,61,0,3,1
-291,29,735,552,74,61,0,3,1
-292,29,740,552,74,60,0,3,1
-293,29,746,551,73,60,0,3,1
-294,29,751,551,73,59,0,3,1
-295,29,757,551,72,59,0,3,1
-296,29,762,551,72,58,0,3,1
-297,29,768,551,71,58,0,3,1
-298,29,773,551,71,58,0,3,1
-299,29,779,551,70,58,0,3,1
-300,29,785,552,70,57,0,3,1
-301,29,788,556,69,56,0,3,1
-302,29,794,553,69,55,0,3,1
-303,29,798,553,69,56,0,3,1
-304,29,803,554,69,56,0,3,1
-305,29,807,555,69,56,0,3,1
-306,29,812,556,69,56,0,3,1
-307,29,816,556,69,56,0,3,1
-308,29,820,556,69,56,0,3,1
-309,29,824,556,69,56,0,3,1
-310,29,828,556,69,56,0,3,1
-311,29,833,557,69,56,0,3,1
-312,29,837,557,69,56,0,3,1
-313,29,841,557,69,56,0,3,1
-314,29,845,557,69,56,0,3,1
-315,29,849,557,69,56,0,3,1
-316,29,854,558,69,56,0,3,1
-317,29,857,556,69,56,0,3,1
-318,29,861,555,68,55,0,3,1
-319,29,864,554,68,54,0,3,1
-320,29,868,552,67,55,0,3,1
-321,29,872,551,66,54,0,3,1
-322,29,875,550,66,53,0,3,1
-323,29,879,548,65,54,0,3,1
-324,29,882,547,65,53,0,3,1
-325,29,886,546,64,52,0,3,1
-326,29,890,544,63,53,0,3,1
-327,29,893,543,63,52,0,3,1
-328,29,897,542,62,51,0,3,1
-329,29,901,541,61,51,0,3,1
-330,29,902,539,60,51,0,3,1
-331,29,903,538,60,50,0,3,1
-332,29,904,536,59,50,0,3,1
-333,29,905,535,59,49,0,3,1
-334,29,908,532,62,48,0,3,1
-335,29,909,530,62,48,0,3,1
-336,29,911,529,62,47,0,3,1
-337,29,913,527,61,47,0,3,1
-338,29,915,526,61,47,0,3,1
-339,29,916,525,61,47,0,3,1
-340,29,918,525,60,46,0,3,1
-341,29,918,527,57,46,0,3,1
-342,29,918,529,55,47,0,3,1
-343,29,920,531,63,47,0,3,1
-344,29,923,533,59,47,0,3,1
-345,29,926,536,55,47,0,3,1
-346,29,926,538,61,49,0,3,1
-347,29,925,542,60,49,0,3,1
-348,29,926,542,60,49,0,3,1
-349,29,927,542,60,50,0,3,1
-350,29,928,543,60,50,0,3,1
-351,29,929,542,60,48,0,3,1
-352,29,932,543,59,42,0,3,1
-353,29,933,545,59,45,0,3,1
-354,29,933,545,59,45,0,3,1
-355,29,934,545,59,46,0,3,1
-356,29,934,545,59,47,0,3,1
-357,29,935,546,59,47,0,3,1
-358,29,935,546,58,46,0,3,1
-359,29,936,546,56,46,0,3,1
-360,29,937,547,54,45,0,3,1
-361,29,937,549,55,44,0,3,1
-362,29,938,550,55,44,0,3,1
-363,29,940,552,54,44,0,3,1
-364,29,939,553,59,43,0,3,1
-365,29,939,556,52,45,0,3,1
-366,29,939,557,53,44,0,3,1
-367,29,940,558,54,43,0,3,1
-368,29,941,559,55,43,0,3,1
-369,29,942,561,54,43,0,3,1
-370,29,944,563,52,43,0,3,1
-371,29,943,563,53,42,0,3,1
-372,29,943,563,53,42,0,3,1
-373,29,943,563,53,42,0,3,1
-374,29,944,564,52,42,0,3,1
-375,29,943,562,51,43,0,3,1
-376,29,942,561,51,43,0,3,1
-377,29,941,560,51,43,0,3,1
-378,29,941,559,50,43,0,3,1
-379,29,940,558,52,42,0,3,1
-380,29,937,555,52,42,0,3,1
-381,29,934,553,53,41,0,3,1
-382,29,932,551,53,41,0,3,1
-383,29,930,548,52,41,0,3,1
-384,29,929,545,50,42,0,3,1
-385,29,926,541,52,41,0,3,1
-386,29,924,542,51,41,0,3,1
-387,29,922,538,51,42,0,3,1
-388,29,918,537,50,42,0,3,1
-389,29,914,536,49,42,0,3,1
-390,29,910,536,48,41,0,3,1
-391,29,905,536,50,41,0,3,1
-392,29,900,536,53,41,0,3,1
-393,29,896,532,49,41,0,3,1
-394,29,891,531,49,41,0,3,1
-395,29,882,530,50,42,0,3,1
-396,29,877,528,51,40,0,3,1
-397,29,870,530,50,39,0,3,1
-398,29,863,528,52,39,0,3,1
-399,29,856,528,51,37,0,3,1
-400,29,849,528,50,35,0,3,1
-401,29,842,524,49,40,0,3,1
-402,29,835,524,46,40,0,3,1
-403,29,827,523,50,39,0,3,1
-404,29,817,523,50,39,0,3,1
-405,29,810,524,49,38,0,3,1
-406,29,799,523,49,36,0,3,1
-407,29,789,523,49,34,0,3,1
-408,29,779,523,48,33,0,3,1
-409,29,769,524,49,33,0,3,1
-410,29,761,523,48,33,0,3,1
-411,29,749,523,46,34,0,3,1
-412,29,738,523,44,35,0,3,1
-413,29,725,521,48,34,0,3,1
-414,29,712,521,48,33,0,3,1
-415,29,700,521,48,32,0,3,1
-416,29,687,520,46,33,0,3,1
-417,29,674,519,45,34,0,3,1
-418,29,661,518,44,35,0,3,1
-419,29,647,515,43,34,0,3,1
-420,29,633,512,43,34,0,3,1
-421,29,618,514,43,33,0,3,1
-422,29,601,512,43,33,0,3,1
-423,29,584,510,43,34,0,3,1
-424,29,567,508,43,35,0,3,1
-425,29,551,506,42,36,0,3,1
-426,29,534,506,43,32,0,3,1
-427,29,517,507,42,34,0,3,1
-428,29,498,507,42,34,0,3,1
-429,29,479,507,42,34,0,3,1
-430,29,460,508,43,34,0,3,1
-431,29,440,510,45,36,0,3,0.73913
-432,29,421,512,41,37,0,3,0.35714
-433,29,402,511,41,36,0,3,0
-434,29,377,514,41,36,0,3,0
-435,29,351,511,41,36,0,3,0
-436,29,331,509,41,37,0,3,0
-437,29,319,510,41,36,0,3,0
-438,29,307,512,41,35,0,3,0.47619
-439,29,283,511,41,35,0,3,1
-440,29,259,511,42,34,0,3,1
-441,29,238,510,41,34,0,3,1
-442,29,218,509,40,34,0,3,1
-443,29,194,509,42,35,0,3,1
-444,29,172,511,42,35,0,3,1
-445,29,148,511,42,34,0,3,1
-446,29,124,511,43,34,0,3,1
-447,29,100,509,43,34,0,3,1
-448,29,76,508,43,34,0,3,1
-449,29,51,509,43,33,0,3,1
-450,29,25,504,43,33,0,3,1
-451,29,2,504,41,34,0,3,1
-1,30,1077,546,112,109,0,3,1
-2,30,1079,543,113,112,0,3,1
-3,30,1082,540,113,115,0,3,1
-4,30,1085,537,113,119,0,3,1
-5,30,1084,537,114,123,0,3,1
-6,30,1090,546,115,117,0,3,1
-7,30,1088,548,117,109,0,3,1
-8,30,1090,552,117,109,0,3,1
-9,30,1092,557,118,109,0,3,1
-10,30,1094,562,119,109,0,3,1
-11,30,1094,561,120,110,0,3,1
-12,30,1095,560,120,111,0,3,1
-13,30,1096,559,121,113,0,3,1
-14,30,1097,558,121,114,0,3,1
-15,30,1097,558,123,115,0,3,1
-16,30,1098,557,123,116,0,3,1
-17,30,1099,556,124,118,0,3,1
-18,30,1100,555,124,119,0,3,1
-19,30,1101,555,125,120,0,3,1
-20,30,1102,555,126,124,0,3,1
-21,30,1103,556,127,127,0,3,1
-22,30,1105,557,127,130,0,3,1
-23,30,1106,558,128,133,0,3,1
-24,30,1107,559,129,136,0,3,1
-25,30,1109,560,130,139,0,3,1
-26,30,1109,562,132,140,0,3,1
-27,30,1109,565,134,141,0,3,1
-28,30,1109,568,136,141,0,3,1
-29,30,1110,571,138,142,0,3,1
-30,30,1113,574,137,143,0,3,1
-31,30,1116,578,137,144,0,3,1
-32,30,1119,582,137,145,0,3,1
-33,30,1120,576,138,147,0,3,1
-34,30,1121,571,139,148,0,3,1
-35,30,1123,566,139,149,0,3,1
-36,30,1119,563,144,150,0,3,1
-37,30,1123,562,142,151,0,3,1
-38,30,1127,562,141,152,0,3,1
-39,30,1127,564,144,153,0,3,1
-40,30,1127,566,147,154,0,3,1
-41,30,1127,568,150,155,0,3,1
-42,30,1128,571,152,156,0,3,1
-43,30,1129,572,153,157,0,3,1
-44,30,1131,574,153,158,0,3,1
-45,30,1133,575,153,160,0,3,1
-46,30,1135,577,153,161,0,3,1
-47,30,1136,578,155,162,0,3,1
-48,30,1138,580,155,163,0,3,1
-49,30,1140,581,155,165,0,3,1
-50,30,1142,583,155,166,0,3,1
-51,30,1144,585,156,167,0,3,1
-52,30,1139,581,164,172,0,3,1
-53,30,1147,579,159,178,0,3,1
-54,30,1148,579,160,180,0,3,1
-55,30,1150,580,161,182,0,3,1
-56,30,1151,581,163,183,0,3,1
-57,30,1153,582,164,185,0,3,1
-58,30,1152,582,166,186,0,3,1
-59,30,1151,583,169,186,0,3,1
-60,30,1151,583,170,188,0,3,1
-61,30,1150,584,173,188,0,3,1
-62,30,1150,584,174,190,0,3,1
-63,30,1149,585,177,190,0,3,1
-64,30,1149,586,179,191,0,3,1
-65,30,1148,586,181,193,0,3,1
-66,30,1147,587,183,195,0,3,1
-67,30,1146,587,185,198,0,3,1
-68,30,1146,588,186,200,0,3,1
-69,30,1145,589,188,201,0,3,1
-70,30,1144,589,190,204,0,3,1
-71,30,1143,590,192,206,0,3,1
-72,30,1143,591,193,208,0,3,1
-73,30,1141,591,195,210,0,3,1
-74,30,1139,592,197,211,0,3,1
-75,30,1137,593,200,212,0,3,1
-76,30,1147,597,186,218,0,3,1
-77,30,1141,597,193,219,0,3,1
-78,30,1135,597,201,221,0,3,1
-79,30,1130,598,208,222,0,3,1
-80,30,1127,598,209,224,0,3,1
-81,30,1125,599,210,226,0,3,1
-82,30,1122,600,211,228,0,3,1
-83,30,1120,601,212,230,0,3,1
-84,30,1118,603,212,231,0,3,1
-85,30,1116,606,212,231,0,3,1
-86,30,1113,609,213,233,0,3,1
-87,30,1110,612,214,236,0,3,1
-88,30,1107,615,215,238,0,3,1
-89,30,1104,619,217,240,0,3,1
-90,30,1101,622,218,242,0,3,1
-91,30,1098,625,219,245,0,3,1
-92,30,1095,628,220,247,0,3,1
-93,30,1093,632,221,249,0,3,1
-94,30,1088,633,223,250,0,3,1
-95,30,1083,634,226,252,0,3,1
-96,30,1078,635,228,254,0,3,1
-97,30,1074,636,230,256,0,3,1
-98,30,1069,637,233,257,0,3,1
-99,30,1064,638,235,259,0,3,1
-100,30,1059,639,238,261,0,3,1
-101,30,1055,641,240,262,0,3,1
-102,30,1054,643,238,264,0,3,1
-103,30,1054,645,236,267,0,3,1
-104,30,1042,646,249,263,0,3,1
-105,30,1038,647,249,265,0,3,1
-106,30,1035,648,248,268,0,3,1
-107,30,1031,649,249,270,0,3,1
-108,30,1028,650,248,273,0,3,1
-109,30,1024,651,249,275,0,3,1
-110,30,1021,652,248,278,0,3,1
-111,30,1018,653,248,281,0,3,1
-112,30,1011,654,250,282,0,3,1
-113,30,1005,655,251,284,0,3,1
-114,30,999,656,252,286,0,3,1
-115,30,992,657,254,287,0,3,1
-116,30,986,658,255,289,0,3,1
-117,30,980,659,256,291,0,3,1
-118,30,974,660,258,293,0,3,1
-119,30,969,657,259,295,0,3,1
-120,30,964,654,261,297,0,3,1
-121,30,952,654,273,300,0,3,1
-122,30,946,655,272,301,0,3,1
-123,30,941,656,271,303,0,3,1
-124,30,936,657,269,304,0,3,1
-125,30,931,658,268,306,0,3,1
-126,30,925,659,268,305,0,3,1
-127,30,919,660,269,305,0,3,1
-128,30,913,661,270,304,0,3,1
-129,30,907,662,271,304,0,3,1
-130,30,901,663,271,303,0,3,1
-131,30,895,664,272,303,0,3,1
-132,30,889,665,273,302,0,3,1
-133,30,883,666,274,302,0,3,1
-134,30,877,667,274,301,0,3,1
-135,30,871,668,275,301,0,3,1
-136,30,865,669,276,300,0,3,1
-137,30,859,670,277,300,0,3,1
-138,30,853,672,278,299,0,3,1
-139,30,847,670,278,299,0,3,1
-140,30,841,669,279,298,0,3,1
-141,30,835,668,280,297,0,3,1
-142,30,829,667,281,297,0,3,1
-143,30,821,667,283,297,0,3,1
-144,30,813,668,286,296,0,3,1
-145,30,806,668,288,296,0,3,1
-146,30,798,669,291,296,0,3,1
-147,30,791,669,293,296,0,3,1
-148,30,783,670,296,295,0,3,1
-149,30,776,671,298,295,0,3,1
-150,30,770,670,295,295,0,3,1
-151,30,765,670,291,295,0,3,1
-152,30,760,670,287,295,0,3,1
-153,30,755,670,283,294,0,3,1
-154,30,750,670,279,294,0,3,1
-155,30,745,670,275,294,0,3,1
-156,30,735,669,278,299,0,3,1
-157,30,725,668,281,305,0,3,1
-158,30,715,667,284,311,0,3,1
-159,30,708,666,283,311,0,3,1
-160,30,702,666,282,310,0,3,1
-161,30,695,666,281,309,0,3,1
-162,30,689,666,280,308,0,3,1
-163,30,683,666,278,307,0,3,1
-164,30,676,666,278,306,0,3,1
-165,30,670,666,276,305,0,3,1
-166,30,664,666,275,304,0,3,1
-167,30,657,666,274,303,0,3,1
-168,30,651,666,273,302,0,3,1
-169,30,645,666,272,301,0,3,1
-170,30,639,666,273,297,0,3,1
-171,30,633,666,275,294,0,3,1
-172,30,628,666,276,291,0,3,1
-173,30,622,666,274,290,0,3,1
-174,30,617,666,271,289,0,3,1
-175,30,612,666,268,288,0,3,1
-176,30,606,666,266,287,0,3,1
-177,30,601,666,263,286,0,3,1
-178,30,596,666,261,286,0,3,1
-179,30,590,665,261,286,0,3,1
-180,30,585,664,260,286,0,3,1
-181,30,579,664,260,285,0,3,1
-182,30,574,663,259,285,0,3,1
-183,30,569,663,258,284,0,3,1
-184,30,563,662,258,284,0,3,1
-185,30,558,662,257,283,0,3,1
-186,30,553,661,256,283,0,3,1
-187,30,547,660,256,283,0,3,1
-188,30,542,660,255,282,0,3,1
-189,30,537,659,254,282,0,3,1
-190,30,531,659,254,281,0,3,1
-191,30,526,658,253,281,0,3,1
-192,30,521,658,253,281,0,3,1
-193,30,515,657,253,281,0,3,1
-194,30,510,657,253,280,0,3,1
-195,30,505,657,253,280,0,3,1
-196,30,500,657,252,279,0,3,1
-197,30,495,657,252,279,0,3,1
-198,30,490,657,252,278,0,3,1
-199,30,485,657,252,278,0,3,1
-200,30,479,657,252,277,0,3,1
-201,30,474,657,252,277,0,3,1
-202,30,469,657,252,276,0,3,1
-203,30,464,657,252,276,0,3,1
-204,30,459,657,251,275,0,3,1
-205,30,454,657,251,275,0,3,1
-206,30,449,657,251,274,0,3,1
-207,30,444,657,251,274,0,3,1
-208,30,441,656,251,274,0,3,1
-209,30,438,656,251,273,0,3,1
-210,30,435,655,251,273,0,3,1
-211,30,432,655,251,272,0,3,1
-212,30,430,655,250,271,0,3,1
-213,30,427,654,250,271,0,3,1
-214,30,424,654,250,270,0,3,1
-215,30,421,653,250,270,0,3,1
-216,30,418,653,250,269,0,3,1
-217,30,416,653,250,269,0,3,1
-218,30,414,652,253,268,0,3,1
-219,30,413,652,255,267,0,3,1
-220,30,411,652,258,265,0,3,1
-221,30,410,652,260,264,0,3,1
-222,30,408,652,259,264,0,3,1
-223,30,407,652,257,264,0,3,1
-224,30,406,652,256,264,0,3,1
-225,30,405,652,254,264,0,3,1
-226,30,403,652,253,264,0,3,1
-227,30,402,652,252,264,0,3,1
-228,30,401,652,250,264,0,3,1
-229,30,400,653,249,263,0,3,1
-230,30,398,651,252,262,0,3,1
-231,30,397,649,254,262,0,3,1
-232,30,396,647,256,261,0,3,1
-233,30,395,645,258,261,0,3,1
-234,30,393,643,261,261,0,3,1
-235,30,392,641,263,260,0,3,1
-236,30,391,639,265,260,0,3,1
-237,30,390,637,267,260,0,3,1
-238,30,394,636,268,260,0,3,1
-239,30,399,636,268,259,0,3,1
-240,30,404,636,268,259,0,3,1
-241,30,406,635,269,257,0,3,1
-242,30,408,635,271,255,0,3,1
-243,30,410,634,272,254,0,3,1
-244,30,413,634,273,252,0,3,1
-245,30,417,636,274,252,0,3,1
-246,30,422,638,274,252,0,3,1
-247,30,425,636,275,253,0,3,1
-248,30,429,634,275,255,0,3,1
-249,30,433,633,275,256,0,3,1
-250,30,439,633,277,256,0,3,1
-251,30,445,633,279,256,0,3,1
-252,30,452,633,280,257,0,3,1
-253,30,458,634,282,256,0,3,1
-254,30,464,634,284,256,0,3,1
-255,30,471,634,285,257,0,3,1
-256,30,477,634,287,257,0,3,1
-257,30,484,635,289,257,0,3,1
-258,30,492,635,292,256,0,3,1
-259,30,501,635,295,255,0,3,1
-260,30,509,635,298,255,0,3,1
-261,30,518,635,301,254,0,3,1
-262,30,526,635,304,254,0,3,1
-263,30,535,635,307,253,0,3,1
-264,30,543,635,310,253,0,3,1
-265,30,552,635,313,252,0,3,1
-266,30,560,635,316,252,0,3,1
-267,30,569,635,319,251,0,3,1
-268,30,578,636,322,250,0,3,1
-269,30,590,633,323,250,0,3,1
-270,30,602,631,324,249,0,3,1
-271,30,614,629,325,249,0,3,1
-272,30,625,628,329,248,0,3,1
-273,30,637,627,332,247,0,3,1
-274,30,649,627,336,245,0,3,1
-275,30,661,626,339,244,0,3,1
-276,30,673,626,343,243,0,3,1
-277,30,688,632,368,238,0,3,1
-278,30,702,632,339,237,0,3,1
-279,30,717,632,346,238,0,3,1
-280,30,729,630,352,240,0,3,1
-281,30,742,629,357,241,0,3,1
-282,30,754,627,363,243,0,3,1
-283,30,767,626,368,245,0,3,1
-284,30,782,624,370,247,0,3,1
-285,30,798,623,372,249,0,3,1
-286,30,814,622,374,251,0,3,1
-287,30,830,620,376,253,0,3,1
-288,30,846,619,378,255,0,3,1
-289,30,862,618,380,257,0,3,1
-290,30,878,619,386,253,0,3,1
-291,30,894,621,392,249,0,3,1
-292,30,912,623,392,247,0,3,1
-293,30,930,624,395,248,0,3,1
-294,30,948,625,399,249,0,3,1
-295,30,966,626,403,250,0,3,1
-296,30,985,628,406,250,0,3,1
-297,30,1003,627,409,251,0,3,1
-298,30,1021,627,413,251,0,3,1
-299,30,1039,627,417,252,0,3,1
-300,30,1058,626,424,253,0,3,1
-301,30,1078,626,430,253,0,3,1
-302,30,1099,627,428,254,0,3,1
-303,30,1119,629,432,257,0,3,1
-304,30,1140,631,436,261,0,3,1
-305,30,1161,633,440,265,0,3,1
-306,30,1183,632,446,266,0,3,1
-307,30,1206,632,451,267,0,3,1
-308,30,1229,632,456,267,0,3,1
-309,30,1251,631,462,269,0,3,1
-310,30,1274,631,467,269,0,3,1
-311,30,1297,631,472,270,0,3,1
-312,30,1321,631,465,272,0,3,1
-313,30,1354,631,469,273,0,3,1
-314,30,1373,631,481,275,0,3,1
-315,30,1396,635,487,268,0,3,1
-316,30,1419,640,494,261,0,3,1
-317,30,1446,637,494,265,0,3,0.9596
-318,30,1474,634,493,269,0,3,0.90486
-319,30,1501,631,493,274,0,3,0.8502
-320,30,1529,628,492,278,0,3,0.79513
-321,30,1557,626,492,282,0,3,0.73834
-322,30,1585,628,492,279,0,3,0.68154
-323,30,1613,631,493,275,0,3,0.62348
-324,30,1642,634,493,271,0,3,0.56478
-325,30,1670,636,493,268,0,3,0.5081
-326,30,1698,639,494,264,0,3,0.45051
-327,30,1727,642,494,261,0,3,0.39192
-328,30,1757,642,494,261,0,3,0.33131
-329,30,1788,642,494,261,0,3,0.26869
-330,30,1819,642,494,261,0,3,0.20606
-331,30,1850,642,494,261,0,3,0.14343
-31,31,592,569,26,62,1,1,0
-32,31,588,564,26,62,1,1,0
-33,31,584,559,26,63,1,1,0.37037
-16,32,1564,511,22,40,1,1,0.34146
-17,32,1561,507,20,41,1,1,0.40476
-18,32,1562,506,19,44,1,1,0.4
-19,32,1563,506,19,46,1,1,0.3617
-20,32,1564,506,19,48,1,1,0.34694
-21,32,1566,506,18,50,1,1,0.35294
-22,32,1565,508,20,39,1,1,0.49643
-23,32,1568,507,19,41,1,1,0.73929
-24,32,1569,506,19,50,1,1,0.68627
-25,32,1569,513,19,50,1,1,0.61176
-26,32,1570,515,19,44,1,1,0.71667
-27,32,1569,516,24,47,1,1,0.76667
-28,32,1570,516,18,52,1,1,0.8858
-29,32,1570,523,23,49,1,1,0.83583
-30,32,1571,522,19,50,1,1,0.9
-31,32,1573,526,18,48,1,1,0.85392
-32,32,1572,529,19,46,1,1,0.71915
-33,32,1573,518,19,46,1,1,0.56596
-34,32,1574,519,19,46,1,1,0.35532
-35,32,1574,515,19,46,1,1,0.20213
-36,32,1575,511,19,46,1,1,0.18723
-37,32,1577,510,19,46,1,1,0.11489
-38,32,1576,508,19,46,1,1,0.16277
-39,32,1579,509,19,46,1,1,0.067021
-40,32,1579,506,20,46,1,1,0.25735
-41,32,1579,508,20,46,1,1,0.29382
-42,32,1580,510,20,46,1,1,0.37791
-43,32,1584,512,21,46,1,1,0.63636
-44,32,1586,512,21,46,1,1,0.40909
-45,32,1586,512,21,46,1,1,0.51838
-46,32,1589,513,21,46,1,1,0.51257
-47,32,1587,518,21,46,1,1,0.54545
-48,32,1582,516,21,49,1,1,0.51909
-49,32,1584,517,22,48,1,1,0.54392
-50,32,1587,519,22,46,1,1,0.69565
-51,32,1586,524,22,46,1,1,0.52729
-52,32,1586,524,22,46,1,1,0.36355
-53,32,1586,524,22,46,1,1,0.16651
-54,32,1586,523,22,46,1,1,0.077706
-55,32,1586,522,22,46,1,1,0.032377
-56,32,1586,521,22,47,1,1,0.028986
-57,32,1587,520,22,47,1,1,0.016304
-58,32,1587,519,22,48,1,1,0.0035492
-59,32,1588,519,22,47,1,1,0
-60,32,1588,518,22,48,1,1,0
-61,32,1589,517,22,48,1,1,0
-62,32,1589,516,22,49,1,1,0
-63,32,1589,515,22,49,1,1,0.2887
-64,32,1590,515,22,49,1,1,0.024348
-65,32,1590,514,22,49,1,1,0.024348
-66,32,1591,513,22,50,1,1,0.44757
-67,32,1591,512,22,50,1,1,0.11083
-68,32,1592,512,22,50,1,1,0.13043
-69,32,1594,520,22,49,1,1,0.086957
-70,32,1592,518,23,49,1,1,0
-71,32,1590,518,23,49,1,1,0
-72,32,1588,519,24,48,1,1,0.052245
-73,32,1586,520,23,50,1,1,0.78922
-74,32,1585,518,23,52,1,1,0.86164
-75,32,1586,522,20,49,1,1,1
-76,32,1583,519,20,51,1,1,0.14286
-77,32,1580,519,21,50,1,1,0.22727
-78,32,1578,519,22,50,1,1,0.30435
-79,32,1576,519,23,49,1,1,0.375
-80,32,1574,519,24,49,1,1,0.48
-81,32,1572,519,25,49,1,1,0.53846
-82,32,1569,518,24,50,1,1,0.52
-83,32,1566,517,24,51,1,1,1
-84,32,1563,517,24,51,1,1,1
-85,32,1560,516,24,52,1,1,1
-86,32,1557,516,24,53,1,1,1
-87,32,1555,518,24,51,1,1,1
-88,32,1553,520,25,50,1,1,1
-89,32,1550,521,25,50,1,1,1
-90,32,1547,522,25,50,1,1,0.80769
-91,32,1544,523,25,50,1,1,0.80769
-92,32,1541,524,25,50,1,1,0.84615
-93,32,1538,525,25,50,1,1,0.88462
-94,32,1535,526,25,50,1,1,0.92308
-95,32,1533,527,25,51,1,1,1
-96,32,1528,527,20,56,1,1,1
-97,32,1524,528,21,55,1,1,1
-98,32,1521,529,21,55,1,1,1
-99,32,1517,530,22,54,1,1,1
-100,32,1514,531,23,54,1,1,1
-101,32,1510,532,24,53,1,1,1
-102,32,1507,533,24,53,1,1,1
-103,32,1504,534,25,53,1,1,1
-104,32,1500,534,25,53,1,1,1
-105,32,1496,534,25,53,1,1,1
-106,32,1492,534,25,54,1,1,1
-107,32,1489,533,26,54,1,1,1
-108,32,1488,534,26,54,1,1,1
-109,32,1483,535,26,54,1,1,1
-110,32,1478,535,25,54,1,1,1
-111,32,1473,535,25,54,1,1,1
-112,32,1469,535,24,54,1,1,1
-113,32,1464,535,24,55,1,1,1
-114,32,1460,535,23,55,1,1,1
-115,32,1455,535,23,55,1,1,1
-116,32,1451,536,22,55,1,1,1
-117,32,1445,535,23,55,1,1,1
-118,32,1440,535,23,54,1,1,1
-119,32,1434,534,25,55,1,1,1
-120,32,1429,534,25,54,1,1,0.80769
-121,32,1424,534,26,54,1,1,0.74074
-122,32,1421,533,26,54,1,1,0.77778
-123,32,1418,533,26,54,1,1,0.81481
-124,32,1411,532,28,55,1,1,1
-125,32,1404,532,31,56,1,1,1
-126,32,1398,532,33,57,1,1,1
-127,32,1393,533,31,56,1,1,1
-128,32,1388,534,30,55,1,1,1
-129,32,1383,535,28,54,1,1,1
-130,32,1379,536,26,53,1,1,1
-131,32,1374,536,26,53,1,1,1
-132,32,1369,536,26,54,1,1,1
-133,32,1365,537,26,54,1,1,1
-134,32,1360,536,26,54,1,1,0.96296
-135,32,1356,536,26,54,1,1,0.92593
-136,32,1352,535,26,54,1,1,0.92593
-137,32,1348,535,26,54,1,1,0.88889
-138,32,1344,534,26,54,1,1,0.81481
-139,32,1340,534,26,54,1,1,0.74074
-140,32,1336,533,26,54,1,1,0.66667
-141,32,1332,533,26,54,1,1,0.59259
-142,32,1327,532,26,55,1,1,0.51852
-143,32,1322,532,26,55,1,1,0.51852
-144,32,1317,532,26,55,1,1,0.51852
-145,32,1312,532,26,56,1,1,0.51852
-146,32,1307,531,26,57,1,1,0.51852
-147,32,1302,531,26,57,1,1,0.44444
-148,32,1297,531,26,58,1,1,0.37037
-149,32,1292,531,26,58,1,1,0.33333
-150,32,1287,530,26,59,1,1,0.2963
-151,32,1282,530,26,60,1,1,0.25926
-152,32,1277,530,26,60,1,1,0.18519
-153,32,1272,530,26,60,1,1,0.18519
-154,32,1268,530,25,61,1,1,0.16625
-155,32,1266,530,25,61,1,1,0.15385
-156,32,1264,530,25,62,1,1,0.11538
-157,32,1262,530,25,63,1,1,0.11538
-158,32,1256,530,25,63,1,1,0.076923
-159,32,1251,530,25,63,1,1,0.076923
-160,32,1246,530,25,63,1,1,0.11538
-161,32,1240,530,26,63,1,1,0.093171
-162,32,1235,530,25,63,1,1,0.071514
-163,32,1230,530,25,63,1,1,0.070312
-164,32,1224,530,26,63,1,1,0.10417
-165,32,1219,530,26,63,1,1,0.11111
-166,32,1214,530,26,63,1,1,0.071181
-167,32,1214,528,26,63,1,1,0.14815
-168,32,1210,527,26,63,1,1,0.087963
-169,32,1207,527,26,63,1,1,0.065394
-18,33,1330,506,18,49,1,1,0.47368
-19,33,1330,506,19,49,1,1,0.55
-20,33,1331,506,19,49,1,1,0.6
-21,33,1332,507,19,49,1,1,0.65
-22,33,1333,507,19,49,1,1,0.7
-23,33,1334,507,19,49,1,1,0.75
-24,33,1335,508,20,49,1,1,0.7619
-25,33,1336,509,20,50,1,1,0.80952
-26,33,1337,511,20,50,1,1,0.85714
-27,33,1338,513,20,50,1,1,0.82073
-28,33,1339,515,21,51,1,1,0.58392
-29,33,1342,520,20,48,1,1,0.33236
-30,33,1341,522,22,48,1,1,0.35404
-31,33,1341,524,24,49,1,1,0.4232
-32,33,1345,527,22,51,1,1,0.38629
-33,33,1345,516,23,48,1,1,0.43027
-34,33,1344,518,24,48,1,1,0.34694
-35,33,1348,511,22,47,1,1,0.45833
-36,33,1349,509,22,49,1,1,0.42
-37,33,1351,508,21,50,1,1,0.39216
-38,33,1353,507,20,51,1,1,0.36538
-39,33,1355,506,20,53,1,1,0.35185
-40,33,1356,505,20,54,1,1,0.34545
-41,33,1358,505,20,54,1,1,0.38182
-42,33,1360,505,20,54,1,1,0.4
-43,33,1361,507,20,54,1,1,0.4
-44,33,1363,509,19,55,1,1,0.39286
-45,33,1364,511,19,55,1,1,0.63571
-46,33,1366,513,19,56,1,1,0.93509
-47,33,1367,513,19,57,1,1,1
-48,33,1369,514,19,57,1,1,1
-49,33,1371,514,19,58,1,1,1
-50,33,1373,515,19,58,1,1,1
-51,33,1375,516,19,59,1,1,1
-52,33,1376,515,19,59,1,1,1
-53,33,1377,514,20,60,1,1,1
-54,33,1378,514,20,60,1,1,1
-55,33,1379,513,21,60,1,1,1
-56,33,1381,512,20,61,1,1,1
-57,33,1382,512,21,61,1,1,1
-58,33,1383,511,21,61,1,1,1
-59,33,1384,510,22,62,1,1,1
-60,33,1386,510,22,62,1,1,1
-61,33,1387,508,23,58,1,1,1
-62,33,1389,511,23,59,1,1,1
-63,33,1391,499,23,59,1,1,1
-64,33,1394,510,23,60,1,1,1
-65,33,1394,507,22,59,1,1,1
-66,33,1395,505,21,58,1,1,1
-67,33,1395,514,21,61,1,1,1
-68,33,1394,511,22,58,1,1,1
-69,33,1394,518,22,58,1,1,1
-70,33,1392,511,24,63,1,1,1
-71,33,1392,512,23,62,1,1,1
-72,33,1392,513,23,62,1,1,1
-73,33,1392,514,23,61,1,1,1
-74,33,1392,516,23,60,1,1,1
-75,33,1391,516,23,60,1,1,1
-76,33,1390,516,23,61,1,1,1
-77,33,1389,516,23,61,1,1,1
-78,33,1388,516,23,62,1,1,1
-79,33,1387,516,23,62,1,1,1
-80,33,1387,517,23,62,1,1,1
-81,33,1385,517,23,62,1,1,1
-82,33,1383,517,24,63,1,1,1
-83,33,1381,517,24,63,1,1,1
-84,33,1379,517,25,64,1,1,1
-85,33,1378,518,25,64,1,1,0.97574
-86,33,1376,518,25,65,1,1,0.97436
-87,33,1374,519,26,65,1,1,0.95174
-88,33,1372,520,26,65,1,1,0.97531
-89,33,1371,521,26,65,1,1,0.95174
-90,33,1370,524,26,65,1,1,0.87374
-91,33,1369,527,26,65,1,1,0.86532
-92,33,1365,527,27,65,1,1,0.85065
-93,33,1362,528,28,65,1,1,0.84274
-94,33,1359,528,28,66,1,1,0.86104
-95,33,1357,529,28,66,1,1,0.85795
-96,33,1355,529,28,67,1,1,0.84736
-97,33,1353,530,27,67,1,1,0.86134
-98,33,1351,530,27,68,1,1,0.86646
-99,33,1349,531,27,68,1,1,0.84058
-100,33,1347,532,27,68,1,1,0.79037
-101,33,1347,535,24,65,1,1,0.76242
-102,33,1344,534,23,69,1,1,0.80417
-103,33,1342,534,23,69,1,1,0.77619
-104,33,1340,534,24,69,1,1,0.76857
-105,33,1338,534,25,69,1,1,0.77253
-106,33,1336,534,25,69,1,1,0.74011
-107,33,1334,534,26,69,1,1,0.66667
-108,33,1332,534,27,69,1,1,0.63265
-109,33,1330,534,28,70,1,1,0.66489
-110,33,1326,534,24,71,1,1,0.7
-111,33,1325,535,26,70,1,1,0.61607
-112,33,1322,535,25,70,1,1,0.64355
-113,33,1316,536,28,70,1,1,0.64254
-114,33,1313,536,27,70,1,1,0.59759
-115,33,1311,536,28,71,1,1,1
-116,33,1309,535,27,70,1,1,0.59809
-117,33,1305,535,26,73,1,1,1
-118,33,1303,533,27,74,1,1,1
-119,33,1300,525,29,77,1,1,0.69487
-120,33,1297,518,31,79,1,1,0.74102
-121,33,1295,531,31,75,1,1,0.66447
-122,33,1293,532,30,74,1,1,0.6271
-123,33,1291,534,32,72,1,1,0.66127
-124,33,1290,533,28,73,1,1,0.61976
-125,33,1286,531,30,77,1,1,1
-126,33,1280,534,33,74,1,1,1
-127,33,1277,533,31,76,1,1,1
-128,33,1275,532,29,79,1,1,1
-129,33,1273,532,29,79,1,1,1
-130,33,1271,532,29,79,1,1,1
-131,33,1270,533,29,78,1,1,0.70464
-132,33,1267,534,30,78,1,1,0.96774
-133,33,1264,535,31,78,1,1,0.9375
-134,33,1264,536,30,77,1,1,0.67949
-135,33,1260,534,29,80,1,1,0.9
-136,33,1256,536,31,79,1,1,0.875
-137,33,1253,534,31,80,1,1,0.70216
-138,33,1251,533,31,81,1,1,0.84375
-139,33,1249,532,30,82,1,1,0.83871
-140,33,1247,531,30,83,1,1,0.80645
-141,33,1245,533,31,82,1,1,0.78125
-142,33,1245,531,31,81,1,1,0.6875
-143,33,1243,533,31,80,1,1,0.6875
-144,33,1241,535,31,80,1,1,0.65625
-145,33,1240,537,31,80,1,1,0.59375
-146,33,1238,537,31,80,1,1,0.59375
-147,33,1237,538,31,79,1,1,0.53125
-148,33,1235,538,31,79,1,1,0.5
-149,33,1232,539,31,78,1,1,0.5
-150,33,1228,538,31,79,1,1,0.5
-151,33,1225,538,31,79,1,1,0.46875
-152,33,1221,537,32,80,1,1,0.51515
-153,33,1218,537,32,80,1,1,0.45455
-154,33,1215,536,32,81,1,1,0.42424
-155,33,1212,536,32,81,1,1,0.42424
-156,33,1209,535,32,82,1,1,0.42424
-157,33,1206,535,32,82,1,1,0.42424
-158,33,1203,534,32,83,1,1,0.45455
-159,33,1200,534,32,83,1,1,0.42424
-160,33,1197,534,33,84,1,1,0.47059
-161,33,1194,533,35,86,1,1,0.47222
-162,33,1192,532,36,88,1,1,0.48649
-163,33,1190,531,37,90,1,1,0.45084
-164,33,1188,531,39,91,1,1,0.43913
-165,33,1187,532,35,94,1,1,0.39474
-166,33,1186,533,35,93,1,1,0.42376
-167,33,1186,534,35,93,1,1,0.35993
-168,33,1185,534,35,92,1,1,0.41517
-169,33,1184,534,35,91,1,1,0.41335
-170,33,1183,534,35,90,1,1,0.38858
-171,33,1182,534,35,90,1,1,0.41941
-172,33,1180,536,35,91,1,1,0.41304
-173,33,1180,536,35,93,1,1,0.3818
-174,33,1180,536,33,92,1,1,0.4339
-175,33,1182,536,31,90,1,1,0.45913
-176,33,1176,537,36,93,1,1,0.36717
-177,33,1175,535,37,95,1,1,0.42489
-178,33,1174,534,38,96,1,1,0.38805
-179,33,1174,533,38,97,1,1,0.41078
-180,33,1177,537,35,94,1,1,0.43509
-181,33,1175,538,36,95,1,1,0.67568
-182,33,1173,539,37,96,1,1,0.38931
-183,33,1171,540,38,97,1,1,0.64103
-184,33,1169,541,39,98,1,1,0.625
-185,33,1168,543,39,98,1,1,0.625
-186,33,1168,541,39,100,1,1,0.6
-187,33,1168,540,39,101,1,1,0.6
-188,33,1168,539,40,103,1,1,0.58537
-189,33,1168,539,40,104,1,1,0.60976
-190,33,1168,540,40,104,1,1,0.58537
-191,33,1169,541,39,104,1,1,0.6
-192,33,1167,541,40,104,1,1,0.58537
-193,33,1166,541,40,104,1,1,0.56098
-194,33,1164,541,41,104,1,1,0.35646
-195,33,1163,542,41,104,1,1,0.52381
-196,33,1162,543,41,104,1,1,0.5
-197,33,1162,542,40,106,1,1,0.4878
-198,33,1162,541,39,109,1,1,0.475
-199,33,1163,543,39,109,1,1,0.525
-200,33,1164,542,40,109,1,1,0.56098
-201,33,1166,542,40,109,1,1,0.56098
-202,33,1166,543,40,105,1,1,0.36769
-203,33,1166,544,41,102,1,1,0.365
-204,33,1166,545,44,102,1,1,0.4205
-205,33,1167,547,46,101,1,1,0.45724
-206,33,1168,551,45,101,1,1,0.43521
-207,33,1170,554,43,102,1,1,0.56818
-208,33,1170,553,43,103,1,1,0.49126
-209,33,1170,553,43,103,1,1,0.56818
-210,33,1170,552,44,103,1,1,0.57778
-211,33,1170,552,45,102,1,1,0.56522
-212,33,1170,551,45,106,1,1,0.58696
-213,33,1171,551,44,109,1,1,0.55556
-214,33,1172,551,44,112,1,1,0.57778
-215,33,1173,551,46,114,1,1,0.57447
-216,33,1175,551,48,117,1,1,0.61224
-217,33,1177,551,50,117,1,1,0.60784
-218,33,1180,556,48,111,1,1,0.59184
-219,33,1182,556,49,112,1,1,0.6
-220,33,1184,556,49,117,1,1,0.58
-221,33,1189,556,48,117,1,1,0.59184
-222,33,1191,556,49,118,1,1,0.58
-223,33,1193,556,50,119,1,1,0.58824
-224,33,1196,556,50,121,1,1,0.58824
-225,33,1198,556,51,122,1,1,0.59615
-226,33,1200,557,52,122,1,1,0.60377
-227,33,1203,557,52,124,1,1,0.60377
-228,33,1205,557,53,125,1,1,0.61111
-229,33,1207,557,54,126,1,1,0.6
-230,33,1210,558,55,127,1,1,0.625
-231,33,1211,557,56,129,1,1,0.61404
-232,33,1213,557,56,130,1,1,0.61404
-233,33,1218,556,56,132,1,1,0.61404
-234,33,1223,556,57,133,1,1,0.62069
-235,33,1225,556,57,132,1,1,0.56897
-236,33,1228,557,56,131,1,1,0.52632
-237,33,1235,557,57,135,1,1,0.55172
-238,33,1242,557,58,140,1,1,0.57627
-239,33,1246,560,59,140,1,1,0.53333
-240,33,1256,560,59,141,1,1,0.56667
-241,33,1262,562,60,141,1,1,0.54098
-242,33,1269,564,60,142,1,1,0.54098
-243,33,1275,566,61,142,1,1,0.51613
-244,33,1282,568,61,143,1,1,0.5
-245,33,1289,570,61,144,1,1,0.5
-246,33,1298,566,62,149,1,1,0.52381
-247,33,1307,568,62,148,1,1,0.53968
-248,33,1316,570,62,147,1,1,0.50794
-249,33,1325,572,62,147,1,1,0.47619
-250,33,1332,571,62,146,1,1,0.4127
-251,33,1340,571,62,144,1,1,0.36508
-252,33,1348,572,63,146,1,1,0.32812
-253,33,1357,574,63,148,1,1,0.29688
-254,33,1366,576,64,150,1,1,0.24615
-255,33,1375,574,65,157,1,1,0.21212
-256,33,1385,572,65,158,1,1,0.18182
-257,33,1397,575,65,159,1,1,0.16667
-258,33,1407,572,66,169,1,1,0.13433
-259,33,1419,573,66,170,1,1,0.1194
-260,33,1428,574,65,171,1,1,0.045455
-261,33,1443,575,65,173,1,1,0.075758
-262,33,1456,574,65,173,1,1,0.075758
-263,33,1468,574,66,177,1,1,0.074627
-264,33,1480,574,68,181,1,1,0.11594
-265,33,1492,576,73,181,1,1,0.17568
-266,33,1504,579,78,182,1,1,0.27848
-267,33,1520,581,78,182,1,1,0.35443
-268,33,1537,588,71,182,1,1,0.45833
-269,33,1553,594,64,179,1,1,0.53846
-270,33,1567,591,64,187,1,1,0.61538
-271,33,1588,594,65,195,1,1,0.57576
-272,33,1600,594,67,200,1,1,0.73529
-273,33,1612,595,69,205,1,1,0.77143
-274,33,1625,596,70,210,1,1,0.80282
-275,33,1640,600,80,209,1,1,0.7284
-276,33,1655,601,81,218,1,1,0.76829
-277,33,1671,606,90,216,1,1,0.72527
-278,33,1684,609,103,219,1,1,0.70192
-279,33,1700,611,103,225,1,1,0.77885
-280,33,1717,613,105,228,1,1,0.83962
-281,33,1734,614,101,230,1,1,0.94118
-282,33,1752,611,104,238,1,1,0.98095
-283,33,1776,614,101,239,1,1,0.96078
-284,33,1800,615,100,242,1,1,1
-285,33,1825,616,98,245,1,1,0.9697
-286,33,1850,617,96,249,1,1,0.73196
-287,33,1870,618,96,249,1,1,0.52577
-288,33,1892,616,96,249,1,1,0.29897
-13,34,1548,510,13,35,1,1,0.47222
-14,34,1548,506,11,37,1,1,0.34211
-15,34,1551,506,11,37,1,1,0.34211
-16,34,1551,509,11,37,1,1,0.42105
-17,34,1552,507,10,37,1,1,0.36603
-18,34,1551,506,15,40,1,1,0.30183
-19,34,1552,506,14,40,1,1,0.30407
-20,34,1552,504,12,32,1,1,0.53613
-21,34,1554,507,12,38,1,1,0.40237
-22,34,1552,506,14,34,1,1,0.50286
-23,34,1554,507,13,35,1,1,0.55556
-24,34,1552,504,18,42,1,1,0.68911
-25,34,1555,511,13,42,1,1,0.8505
-26,34,1555,511,14,43,1,1,0.73636
-27,34,1557,515,14,42,1,1,0.43256
-28,34,1558,514,12,45,1,1,0.45819
-29,34,1559,520,14,50,1,1,0.26013
-30,34,1558,519,14,49,1,1,0.35467
-31,34,1558,523,15,44,1,1,0.37917
-32,34,1561,527,14,43,1,1,0.27879
-33,34,1555,512,18,42,1,1,0.42595
-34,34,1558,516,19,50,1,1,0.23529
-35,34,1564,511,14,44,1,1,0.23704
-36,34,1561,508,15,54,1,1,0.4875
-37,34,1561,510,19,52,1,1,0.5434
-38,34,1561,502,15,58,1,1,0.90678
-39,34,1566,506,21,55,1,1,0.67857
-40,34,1565,506,16,48,1,1,1
-41,34,1568,509,16,48,1,1,1
-42,34,1569,510,17,48,1,1,1
-43,34,1569,512,15,50,1,1,1
-44,34,1571,510,19,54,1,1,0.81091
-45,34,1572,515,17,54,1,1,0.78081
-46,34,1572,515,18,54,1,1,0.6555
-47,34,1573,516,18,54,1,1,0.54928
-48,34,1574,519,18,54,1,1,0.46411
-49,34,1575,522,19,54,1,1,0.32091
-50,34,1570,516,23,53,1,1,0.073302
-51,34,1570,519,23,53,1,1,0.024691
-52,34,1571,520,23,53,1,1,0.027778
-53,34,1572,521,24,53,1,1,0.047407
-54,34,1574,522,24,53,1,1,0.044444
-55,34,1577,523,24,52,1,1,0.030189
-56,34,1576,521,24,53,1,1,0.041481
-57,34,1576,520,23,53,1,1,0.088735
-58,34,1576,518,22,54,1,1,0.19447
-59,34,1575,517,23,55,1,1,0.38095
-60,34,1575,515,22,56,1,1,0.53242
-61,34,1575,514,21,56,1,1,0.69537
-62,34,1575,513,21,57,1,1,0.82994
-63,34,1577,500,20,54,1,1,0.67792
-64,34,1578,514,20,54,1,1,0.92381
-65,34,1578,513,21,54,1,1,0.96116
-66,34,1576,507,22,54,1,1,0.69012
-67,34,1575,516,22,54,1,1,1
-68,34,1573,511,21,53,1,1,1
-69,34,1573,518,22,53,1,1,1
-70,34,1572,514,21,54,1,1,1
-71,34,1570,515,21,54,1,1,0.95455
-72,34,1568,516,21,54,1,1,1
-73,34,1567,517,21,54,1,1,1
-74,34,1565,518,21,54,1,1,1
-75,34,1564,520,21,53,1,1,1
-76,34,1561,519,21,53,1,1,1
-77,34,1558,519,21,53,1,1,1
-78,34,1555,518,21,53,1,1,1
-79,34,1553,518,21,53,1,1,1
-80,34,1550,518,21,53,1,1,1
-81,34,1547,517,21,53,1,1,1
-82,34,1545,517,21,53,1,1,1
-83,34,1542,516,21,53,1,1,1
-84,34,1539,516,21,53,1,1,1
-85,34,1537,516,21,53,1,1,1
-86,34,1533,517,21,53,1,1,1
-87,34,1530,518,21,53,1,1,1
-88,34,1526,519,22,53,1,1,1
-89,34,1523,520,22,53,1,1,1
-90,34,1520,521,22,53,1,1,1
-91,34,1516,522,22,53,1,1,1
-92,34,1513,523,22,53,1,1,1
-93,34,1509,524,23,53,1,1,1
-94,34,1506,525,23,53,1,1,1
-95,34,1503,527,23,53,1,1,1
-96,34,1499,527,23,53,1,1,0.25
-97,34,1496,527,22,54,1,1,1
-98,34,1493,527,22,55,1,1,1
-99,34,1490,527,21,56,1,1,1
-100,34,1486,528,22,55,1,1,1
-101,34,1483,528,21,56,1,1,1
-102,34,1480,528,21,57,1,1,1
-103,34,1477,528,20,58,1,1,1
-104,34,1474,529,20,58,1,1,1
-105,34,1469,531,21,59,1,1,1
-106,34,1469,530,19,58,1,1,1
-107,34,1464,529,19,58,1,1,1
-108,34,1460,529,19,58,1,1,1
-109,34,1455,529,20,57,1,1,1
-110,34,1451,529,20,57,1,1,1
-111,34,1447,529,20,57,1,1,1
-112,34,1443,530,20,57,1,1,1
-113,34,1440,531,19,57,1,1,1
-114,34,1436,532,19,57,1,1,1
-115,34,1433,533,19,57,1,1,1
-116,34,1428,530,20,58,1,1,1
-117,34,1424,530,20,58,1,1,1
-118,34,1420,530,20,58,1,1,0.95642
-119,34,1417,530,20,58,1,1,0.82244
-120,34,1413,530,20,58,1,1,0.77805
-121,34,1410,530,20,59,1,1,1
-122,34,1406,529,20,59,1,1,1
-123,34,1402,529,20,58,1,1,0.77805
-124,34,1398,528,20,58,1,1,0.64487
-125,34,1395,528,20,58,1,1,0.46731
-126,34,1392,528,20,58,1,1,0.33414
-127,34,1390,528,20,58,1,1,0.2155
-128,34,1386,528,20,58,1,1,0.18725
-129,34,1382,528,20,58,1,1,0.16061
-130,34,1378,528,20,57,1,1,0.17898
-131,34,1374,528,20,57,1,1,0.13793
-132,34,1370,528,20,57,1,1,0.13793
-133,34,1366,527,20,57,1,1,0.17241
-134,34,1363,527,20,57,1,1,0.15517
-135,34,1360,526,20,57,1,1,0.17241
-136,34,1357,526,20,57,1,1,0.15517
-137,34,1354,526,20,57,1,1,0.15517
-138,34,1350,526,20,57,1,1,0.13793
-139,34,1346,526,20,57,1,1,0.13136
-140,34,1343,526,20,57,1,1,0.15107
-141,34,1339,526,20,57,1,1,0.13957
-142,34,1336,527,20,57,1,1,0.19622
-143,34,1333,527,20,57,1,1,0.28325
-144,34,1330,528,20,57,1,1,0.36289
-145,34,1327,529,20,57,1,1,0.44581
-146,34,1325,530,20,57,1,1,0.57553
-147,34,1320,530,20,57,1,1,0.57389
-148,34,1316,531,20,57,1,1,0.61905
-149,34,1311,531,20,57,1,1,0.57143
-150,34,1307,532,20,57,1,1,0.52381
-151,34,1303,533,20,57,1,1,0.52381
-152,34,1297,532,20,57,1,1,0.42857
-153,34,1291,531,20,57,1,1,0.33333
-154,34,1285,530,20,57,1,1,0.2381
-155,34,1279,529,20,58,1,1,0.14609
-156,34,1274,529,21,58,1,1,0.13867
-157,34,1270,529,21,58,1,1,0.13867
-158,34,1266,529,21,59,1,1,0.13788
-159,34,1262,529,21,59,1,1,0.13788
-160,34,1258,529,21,60,1,1,0.13711
-161,34,1254,529,21,60,1,1,0.13636
-162,34,1250,529,21,60,1,1,0.13636
-163,34,1246,530,21,60,1,1,0.045455
-164,34,1242,530,21,60,1,1,0.045455
-165,34,1237,530,22,61,1,1,0.086957
-166,34,1233,530,22,61,1,1,0.086957
-167,34,1229,530,22,61,1,1,0.086957
-168,34,1225,530,22,62,1,1,0.17391
-169,34,1221,530,22,62,1,1,0.13941
-170,34,1217,531,22,62,1,1,0.18634
-171,34,1213,531,22,62,1,1,0.14079
-172,34,1209,531,22,63,1,1,0.11073
-173,34,1205,531,22,63,1,1,0.030571
-174,34,1201,531,22,63,1,1,0.040761
-175,34,1196,531,23,64,1,1,0.048077
-176,34,1192,531,23,64,1,1,0.069231
-177,34,1188,532,23,64,1,1,0.040385
-178,34,1184,532,23,64,1,1,0.029487
-179,34,1180,532,23,64,1,1,0.0012821
-180,34,1176,532,23,65,1,1,0.0031566
-181,34,1172,532,23,65,1,1,0
-182,34,1168,532,23,66,1,1,0
-183,34,1164,532,23,66,1,1,0
-184,34,1160,533,23,66,1,1,0
-185,34,1157,533,23,66,1,1,0
-186,34,1154,533,23,66,1,1,0
-187,34,1151,533,23,67,1,1,0
-188,34,1148,534,23,66,1,1,0
-189,34,1146,534,23,67,1,1,0.00061275
-190,34,1143,534,23,67,1,1,0
-191,34,1140,534,23,68,1,1,0
-192,34,1137,535,23,67,1,1,0.041667
-193,34,1134,535,23,68,1,1,0.047705
-194,34,1132,535,23,68,1,1,0.013889
-195,34,1129,535,23,69,1,1,0.29286
-196,34,1126,536,23,68,1,1,0.021739
-197,34,1123,536,23,69,1,1,0.45833
-198,34,1120,536,23,69,1,1,0.54167
-199,34,1118,537,23,69,1,1,0.58333
-200,34,1115,537,23,70,1,1,0.75
-201,34,1112,538,24,70,1,1,0.8
-202,34,1110,539,23,70,1,1,0.875
-203,34,1107,539,24,71,1,1,0.88
-204,34,1105,540,23,71,1,1,1
-205,34,1102,541,24,71,1,1,0.96444
-206,34,1100,542,24,71,1,1,0.98222
-207,34,1098,542,24,71,1,1,0.98333
-208,34,1096,542,24,71,1,1,0.013889
-209,34,1094,542,24,72,1,1,0.012603
-210,34,1092,542,25,72,1,1,0.027397
-211,34,1091,542,24,72,1,1,0.027397
-212,34,1089,542,24,73,1,1,0.034054
-213,34,1087,542,25,73,1,1,0.032744
-214,34,1085,542,25,73,1,1,0.045738
-215,34,1084,542,24,74,1,1,0.046933
-216,34,1082,542,24,74,1,1,0.061333
-217,34,1080,542,25,74,1,1,0.058974
-218,34,1078,542,25,75,1,1,0.058198
-219,34,1077,542,24,75,1,1,0.072632
-220,34,1075,542,25,75,1,1,0.072874
-221,34,1073,542,25,76,1,1,0.10939
-222,34,1071,542,25,76,1,1,0.077922
-223,34,1070,543,25,76,1,1,0.064935
-224,34,1070,543,24,78,1,1,0.063291
-225,34,1071,543,22,80,1,1,0.061728
-226,34,1072,544,20,81,1,1,0.036585
-227,34,1070,545,23,78,1,1,0.025316
-228,34,1069,546,25,75,1,1,0.011134
-229,34,1068,545,26,76,1,1,0.021164
-230,34,1068,545,26,77,1,1,0.019943
-231,34,1068,544,26,78,1,1,0.029536
-232,34,1068,544,26,79,1,1,0.029167
-233,34,1067,543,27,80,1,1,0.038801
-234,34,1067,543,27,81,1,1,0.04007
-235,34,1067,543,27,81,1,1,0.030052
-236,34,1067,542,27,83,1,1,0.040816
-237,34,1066,542,28,83,1,1,0.041051
-238,34,1066,541,28,85,1,1,0.05012
-239,34,1066,541,28,85,1,1,0.077787
-240,34,1066,541,29,86,1,1,0.076628
-241,34,1068,541,30,86,1,1,0.051539
-242,34,1071,541,30,86,1,1,0.046348
-243,34,1074,541,31,87,1,1,0.022727
-244,34,1077,541,31,87,1,1,0.034091
-245,34,1080,541,32,87,1,1,0.053719
-246,34,1083,541,32,88,1,1,0.052094
-247,34,1085,542,33,87,1,1,0.039439
-54,35,1053,502,13,29,1,1,1
-55,35,1052,502,13,30,1,1,1
-56,35,1050,500,14,30,1,1,1
-57,35,1049,499,14,30,1,1,1
-58,35,1048,497,14,31,1,1,1
-59,35,1047,496,14,31,1,1,1
-60,35,1044,495,14,31,1,1,1
-61,35,1042,494,14,31,1,1,1
-62,35,1040,494,14,31,1,1,1
-63,35,1038,495,15,30,1,1,1
-64,35,1037,494,16,32,1,1,1
-65,35,1036,496,16,29,1,1,1
-66,35,1034,496,15,29,1,1,1
-67,35,1032,496,14,29,1,1,1
-68,35,1031,496,13,30,1,1,1
-69,35,1031,497,14,31,1,1,1
-70,35,1028,495,14,32,1,1,0.95556
-71,35,1025,494,14,32,1,1,0.97374
-72,35,1022,493,14,32,1,1,1
-73,35,1019,492,14,33,1,1,0.97059
-74,35,1017,492,14,33,1,1,0.97059
-75,35,1013,493,17,36,1,1,0.86486
-76,35,1010,492,15,33,1,1,0.97059
-77,35,1007,492,13,32,1,1,0.9697
-78,35,1004,492,12,32,1,1,0.9697
-79,35,1001,491,11,32,1,1,1
-80,35,996,491,12,32,1,1,1
-81,35,991,491,13,32,1,1,1
-82,35,987,492,14,31,1,1,0.9375
-83,35,985,493,13,31,1,1,0.875
-84,35,980,493,13,31,1,1,0.78125
-85,35,976,494,13,31,1,1,0.78125
-86,35,972,494,13,31,1,1,0.84375
-87,35,968,495,13,31,1,1,0.875
-88,35,965,496,11,32,1,1,0.87879
-89,35,962,497,10,33,1,1,0.88235
-90,35,957,499,10,32,1,1,0.90909
-91,35,952,501,11,31,1,1,0.8125
-92,35,947,503,12,30,1,1,0.93548
-93,35,942,505,13,29,1,1,0.96667
-94,35,937,507,14,28,1,1,1
-95,35,933,509,14,28,1,1,0.93103
-96,35,930,510,13,29,1,1,0.86667
-97,35,926,510,12,29,1,1,0.86667
-98,35,921,513,12,30,1,1,0.77419
-99,35,918,512,11,30,1,1,0.80645
-100,35,913,511,11,30,1,1,0.87097
-101,35,908,510,12,31,1,1,0.875
-102,35,903,510,12,31,1,1,0.875
-103,35,898,509,13,32,1,1,0.84848
-104,35,894,508,12,32,1,1,0.84848
-105,35,889,508,13,32,1,1,0.81818
-106,35,884,507,13,33,1,1,0.79412
-107,35,879,506,14,34,1,1,0.77143
-108,35,875,506,14,34,1,1,0.74286
-109,35,871,507,14,34,1,1,0.68571
-110,35,866,505,14,34,1,1,0.74286
-111,35,861,505,13,34,1,1,0.82041
-112,35,856,506,13,33,1,1,0.79202
-113,35,851,507,13,32,1,1,0.80519
-114,35,846,511,11,30,1,1,0.77419
-115,35,841,511,12,30,1,1,0.76179
-116,35,834,508,14,32,1,1,0.8303
-117,35,827,507,15,32,1,1,0.89583
-118,35,821,507,16,32,1,1,0.89305
-119,35,818,507,15,31,1,1,0.89258
-120,35,813,507,15,31,1,1,0.91406
-121,35,808,507,16,32,1,1,0.89305
-122,35,802,508,18,33,1,1,0.87616
-123,35,796,509,17,32,1,1,1
-124,35,791,509,15,32,1,1,1
-125,35,785,509,15,32,1,1,1
-126,35,780,510,15,32,1,1,1
-127,35,775,511,15,32,1,1,1
-128,35,769,512,15,31,1,1,1
-129,35,764,513,15,31,1,1,1
-130,35,759,512,15,32,1,1,1
-131,35,754,511,16,33,1,1,1
-132,35,749,510,16,34,1,1,1
-133,35,744,510,17,34,1,1,1
-134,35,740,511,16,34,1,1,1
-135,35,735,512,15,34,1,1,1
-136,35,730,511,14,34,1,1,1
-137,35,725,511,13,33,1,1,1
-138,35,720,511,12,32,1,1,1
-139,35,715,511,12,32,1,1,0.53846
-140,35,710,510,12,32,1,1,0.46154
-141,35,705,510,12,32,1,1,0.38462
-142,35,700,510,12,32,1,1,0.30769
-143,35,695,510,12,32,1,1,0.23077
-144,35,691,510,11,32,1,1,0.16667
-145,35,686,509,11,33,1,1,0.083333
-146,35,681,509,11,33,1,1,0
-147,35,676,509,11,33,1,1,0
-148,35,671,509,11,33,1,1,0
-149,35,667,509,11,33,1,1,0
-150,35,662,509,11,33,1,1,0
-151,35,656,509,11,33,1,1,0
-152,35,650,510,12,32,1,1,0
-153,35,645,511,12,32,1,1,0
-154,35,638,511,12,32,1,1,0
-155,35,631,511,13,32,1,1,0
-156,35,625,511,13,32,1,1,0
-157,35,618,511,14,32,1,1,0
-158,35,612,512,14,32,1,1,0
-159,35,607,513,15,31,1,1,0
-160,35,601,513,15,32,1,1,0
-161,35,596,514,15,32,1,1,0
-162,35,591,515,14,32,1,1,0
-163,35,586,515,14,33,1,1,0
-164,35,581,516,13,33,1,1,0
-165,35,576,517,13,33,1,1,0
-166,35,571,518,13,34,1,1,0
-167,35,566,517,13,35,1,1,0
-168,35,562,517,12,35,1,1,0
-169,35,558,517,12,35,1,1,1
-170,35,553,516,12,35,1,1,1
-171,35,549,516,12,35,1,1,1
-172,35,545,515,12,35,1,1,0
-173,35,541,515,12,35,1,1,0
-174,35,537,514,12,35,1,1,0
-175,35,533,514,12,35,1,1,0
-176,35,529,513,12,35,1,1,0
-177,35,525,513,12,35,1,1,0
-178,35,521,512,12,35,1,1,0
-179,35,517,512,12,35,1,1,0
-180,35,513,513,12,35,1,1,0
-181,35,510,514,12,36,1,1,0.076923
-182,35,506,515,12,36,1,1,0.076923
-183,35,502,516,12,36,1,1,0.15385
-184,35,498,517,13,37,1,1,1
-185,35,494,518,13,37,1,1,1
-186,35,490,519,13,37,1,1,1
-187,35,486,520,14,38,1,1,1
-188,35,481,521,14,38,1,1,1
-189,35,476,522,14,38,1,1,1
-190,35,471,522,16,37,1,1,1
-191,35,467,522,18,37,1,1,1
-192,35,463,522,18,37,1,1,1
-193,35,460,523,17,37,1,1,1
-194,35,457,523,16,37,1,1,1
-195,35,454,524,16,37,1,1,1
-196,35,450,524,16,38,1,1,1
-197,35,447,525,15,37,1,1,1
-198,35,444,525,14,38,1,1,1
-199,35,441,526,14,38,1,1,1
-200,35,438,525,14,38,1,1,1
-201,35,435,525,14,38,1,1,1
-202,35,432,525,14,38,1,1,1
-203,35,430,526,15,37,1,1,1
-1,36,624,521,16,70,1,1,0.81442
-2,36,625,511,16,70,1,1,0.80116
-3,36,625,525,16,70,1,1,0.74316
-4,36,625,522,16,70,1,1,0.68683
-5,36,625,517,16,70,1,1,0.69677
-6,36,624,529,16,70,1,1,0.71168
-7,36,623,522,15,71,1,1,0.78819
-8,36,622,529,15,71,1,1,0.78125
-9,36,622,527,15,71,1,1,0.73958
-10,36,619,522,15,73,1,1,0.80405
-11,36,617,528,15,73,1,1,0.78378
-12,36,615,528,15,73,1,1,0.83784
-13,36,616,515,15,73,1,1,0.68074
-14,36,615,523,15,73,1,1,1
-15,36,615,521,14,72,1,1,0.49041
-16,36,612,521,17,71,1,1,0.52932
-17,36,610,524,17,71,1,1,0.55556
-18,36,610,523,16,73,1,1,0.53498
-19,36,609,523,13,71,1,1,0.625
-20,36,607,523,14,77,1,1,0.65128
-21,36,607,523,14,76,1,1,0.55671
-22,36,603,526,17,75,1,1,0.63743
-23,36,602,527,17,75,1,1,0.59211
-24,36,599,529,17,75,1,1,0.63743
-25,36,599,532,17,75,1,1,0.58553
-26,36,598,532,17,75,1,1,0.50146
-27,36,595,534,17,75,1,1,0.53947
-28,36,595,537,17,75,1,1,0.53216
-29,36,595,537,17,75,1,1,0.45614
-30,36,592,541,16,79,1,1,0.5
-31,36,592,553,16,79,1,1,0.45809
-32,36,588,549,18,78,1,1,0.50167
-33,36,586,538,18,78,1,1,0.2072
-34,36,585,544,18,78,1,1,0.46436
-35,36,584,533,19,77,1,1,0.47949
-36,36,582,533,21,76,1,1,0.47757
-37,36,579,527,21,76,1,1,0.57025
-38,36,578,528,21,76,1,1,0.54723
-39,36,578,522,21,76,1,1,0.54545
-40,36,575,524,21,76,1,1,0.56257
-41,36,576,522,20,79,1,1,0.525
-42,36,574,524,20,79,1,1,0.5
-43,36,571,527,19,81,1,1,0.56402
-44,36,570,529,18,79,1,1,0.52237
-45,36,568,528,18,79,1,1,0.57237
-46,36,567,529,18,79,1,1,0.51513
-47,36,567,533,18,79,1,1,0.42763
-48,36,564,532,17,82,1,1,0.56961
-49,36,561,530,16,87,1,1,0.76939
-50,36,559,530,17,88,1,1,0.6985
-51,36,557,529,16,90,1,1,0.73626
-52,36,555,531,18,87,1,1,0.65012
-53,36,553,531,18,86,1,1,0.21839
-54,36,552,531,17,86,1,1,0.20498
-55,36,552,531,19,85,1,1,0.16686
-56,36,547,531,22,84,1,1,0.17903
-57,36,545,530,22,84,1,1,0.19437
-58,36,543,528,22,84,1,1,0.17391
-59,36,540,528,22,84,1,1,0.16931
-60,36,536,528,22,84,1,1,0.20614
-61,36,533,530,22,84,1,1,0.16368
-62,36,533,524,22,84,1,1,0.14987
-63,36,528,538,22,84,1,1,0.16368
-64,36,527,523,22,84,1,1,0.2046
-65,36,524,529,22,84,1,1,0.15806
-66,36,523,537,22,84,1,1,0.16164
-67,36,519,525,22,84,1,1,0.094118
-68,36,513,533,22,84,1,1,0.10588
-69,36,510,528,22,84,1,1,0.12174
-70,36,506,529,22,84,1,1,0.12327
-71,36,504,529,22,84,1,1,0.10588
-72,36,500,529,22,84,1,1,0.093095
-73,36,495,526,22,84,1,1,0.11049
-74,36,492,527,22,84,1,1,0.086445
-75,36,488,527,22,84,1,1,0.10639
-76,36,484,526,22,84,1,1,0.10128
-77,36,478,526,22,84,1,1,0.10281
-78,36,473,525,22,84,1,1,0.13606
-79,36,469,524,22,84,1,1,0.1468
-80,36,464,525,22,84,1,1,0.18977
-81,36,458,528,22,84,1,1,0.16266
-82,36,454,528,22,84,1,1,0.1376
-83,36,447,528,22,84,1,1,0.15396
-84,36,440,528,22,84,1,1,0.1156
-85,36,433,528,26,83,1,1,0.14286
-86,36,426,529,26,83,1,1,0.15476
-87,36,424,529,26,83,1,1,0.16667
-88,36,418,534,26,83,1,1,0.10714
-89,36,414,531,26,83,1,1,0.14286
-90,36,409,533,23,82,1,1,0.18072
-91,36,400,535,25,79,1,1,0.2
-92,36,395,534,27,91,1,1,0.18245
-93,36,389,540,25,91,1,1,0.18102
-94,36,380,544,26,93,1,1,0.14894
-95,36,378,544,23,94,1,1,0.21623
-96,36,372,548,24,95,1,1,0.19292
-97,36,366,546,24,95,1,1,0.1775
-98,36,358,548,23,95,1,1,0.20443
-99,36,350,548,25,95,1,1,0.16627
-100,36,341,551,27,93,1,1,0.17021
-101,36,335,546,27,93,1,1,0.24658
-102,36,327,549,27,93,1,1,0.20061
-103,36,321,550,27,93,1,1,0.17477
-104,36,314,548,27,93,1,1,0.18617
-105,36,306,549,27,93,1,1,0.17021
-106,36,299,547,27,93,1,1,0.22188
-107,36,292,546,27,93,1,1,0.2367
-108,36,286,545,27,93,1,1,0.28419
-109,36,277,547,27,93,1,1,0.2747
-110,36,271,545,27,93,1,1,0.30319
-111,36,262,546,27,93,1,1,0.30091
-112,36,254,547,27,93,1,1,0.31117
-113,36,246,549,28,92,1,1,0.3274
-114,36,237,551,29,91,1,1,0.32283
-115,36,229,548,29,91,1,1,0.37971
-116,36,219,552,32,90,1,1,0.36663
-117,36,209,552,35,89,1,1,0.4284
-118,36,200,553,39,88,1,1,0.51039
-119,36,191,554,42,87,1,1,0.56527
-120,36,183,556,41,94,1,1,0.58396
-121,36,172,555,46,97,1,1,0.62571
-122,36,165,557,46,103,1,1,0.61129
-123,36,155,559,46,107,1,1,0.57801
-124,36,145,560,46,105,1,1,0.556
-125,36,139,561,45,114,1,1,0.58015
-126,36,130,563,44,121,1,1,0.54171
-127,36,122,565,43,122,1,1,0.52365
-128,36,114,564,42,125,1,1,0.53027
-129,36,105,564,42,125,1,1,0.53008
-130,36,95,565,42,125,1,1,0.49631
-131,36,86,567,42,125,1,1,0.45681
-132,36,76,568,42,125,1,1,0.42986
-133,36,69,569,42,125,1,1,0.3935
-134,36,58,571,46,124,1,1,0.34945
-135,36,49,573,46,124,1,1,0.31438
-136,36,41,571,45,119,1,1,0.31667
-137,36,32,573,45,119,1,1,0.30833
-138,36,21,570,47,112,1,1,0.35398
-139,36,12,570,47,106,1,1,0.38318
-140,36,4,572,47,106,1,1,0.37383
-141,36,-7,573,47,106,1,1,0.31153
-142,36,-13,575,47,106,1,1,0.33002
-143,36,-22,572,47,106,1,1,0.52083
-144,36,-30,577,47,106,1,1,0.35417
-66,37,762,511,17,45,1,1,0.78261
-67,37,763,502,17,48,1,1,1
-68,37,760,506,17,48,1,1,0.90023
-69,37,761,507,15,47,1,1,0.8776
-70,37,756,509,16,45,1,1,0.88235
-71,37,754,507,16,45,1,1,0.8312
-72,37,750,509,16,45,1,1,0.94118
-73,37,749,506,16,45,1,1,0.94373
-74,37,747,509,15,42,1,1,1
-75,37,743,507,15,42,1,1,1
-76,37,742,505,15,42,1,1,1
-77,37,738,506,15,42,1,1,1
-78,37,734,505,15,42,1,1,1
-79,37,732,505,15,42,1,1,1
-80,37,728,506,15,42,1,1,1
-81,37,724,504,15,42,1,1,1
-82,37,720,506,15,42,1,1,1
-83,37,718,506,15,42,1,1,1
-84,37,712,506,14,42,1,1,1
-85,37,708,509,17,41,1,1,1
-86,37,704,509,17,41,1,1,1
-87,37,700,511,17,41,1,1,1
-88,37,698,512,17,41,1,1,1
-89,37,693,512,17,41,1,1,1
-90,37,688,515,17,41,1,1,1
-91,37,684,519,17,41,1,1,1
-92,37,682,519,17,41,1,1,1
-93,37,676,521,17,41,1,1,1
-94,37,672,522,17,41,1,1,1
-95,37,668,523,17,41,1,1,1
-96,37,661,522,17,47,1,1,1
-97,37,659,520,17,47,1,1,1
-98,37,655,523,17,47,1,1,1
-99,37,649,521,17,47,1,1,1
-100,37,645,523,17,47,1,1,1
-101,37,642,521,17,47,1,1,1
-102,37,636,523,17,47,1,1,1
-103,37,631,521,17,47,1,1,1
-104,37,627,522,17,47,1,1,0.94444
-105,37,622,522,17,47,1,1,0.94444
-106,37,617,521,17,47,1,1,0.94444
-107,37,612,522,17,47,1,1,1
-108,37,608,521,17,47,1,1,0.94444
-109,37,605,522,17,47,1,1,0.83333
-110,37,598,521,17,47,1,1,0.94444
-111,37,594,520,17,47,1,1,0.94444
-112,37,589,521,17,47,1,1,0.88889
-113,37,583,522,17,47,1,1,0.94444
-114,37,576,523,17,47,1,1,1
-115,37,571,521,17,47,1,1,1
-116,37,564,526,17,47,1,1,1
-117,37,560,524,17,47,1,1,1
-118,37,553,526,17,47,1,1,1
-119,37,549,527,17,47,1,1,1
-120,37,543,528,17,47,1,1,1
-121,37,537,530,17,47,1,1,1
-122,37,531,531,17,47,1,1,1
-123,37,527,532,17,47,1,1,1
-124,37,521,529,17,47,1,1,1
-125,37,514,529,17,47,1,1,1
-126,37,509,531,17,47,1,1,1
-127,37,500,530,20,53,1,1,0.95238
-128,37,496,529,18,55,1,1,1
-129,37,490,530,15,55,1,1,1
-130,37,486,529,15,57,1,1,1
-131,37,480,529,15,59,1,1,1
-132,37,476,530,18,58,1,1,1
-133,37,469,530,18,58,1,1,1
-134,37,462,532,18,58,1,1,1
-135,37,457,532,18,58,1,1,1
-136,37,450,531,18,58,1,1,1
-137,37,447,531,18,58,1,1,1
-138,37,441,530,18,58,1,1,1
-139,37,437,530,18,58,1,1,1
-140,37,431,530,18,58,1,1,1
-141,37,428,531,18,58,1,1,1
-142,37,423,529,18,58,1,1,1
-143,37,417,527,18,58,1,1,0.94737
-144,37,411,530,18,58,1,1,0.94737
-145,37,408,528,18,58,1,1,0.84211
-146,37,402,528,18,58,1,1,0.89474
-147,37,396,529,18,58,1,1,0.89474
-148,37,390,530,18,58,1,1,0.94737
-149,37,385,530,18,58,1,1,0.89474
-150,37,377,531,17,60,1,1,0.94627
-151,37,369,534,20,59,1,1,0.85714
-152,37,364,534,20,59,1,1,0.95238
-153,37,357,536,20,59,1,1,0.90476
-154,37,350,535,19,57,1,1,0.90172
-155,37,339,537,22,59,1,1,0.69565
-156,37,335,539,18,60,1,1,0.73684
-157,37,330,540,18,60,1,1,0.84211
-158,37,323,542,18,60,1,1,0.78947
-159,37,315,543,18,60,1,1,0.73684
-160,37,309,546,18,60,1,1,0.73684
-161,37,301,547,19,62,1,1,0.65
-162,37,299,546,19,62,1,1,0.85
-163,37,290,548,19,62,1,1,0.65
-164,37,285,547,19,62,1,1,0.7
-165,37,279,550,19,62,1,1,0.65
-166,37,273,550,19,62,1,1,0.65
-167,37,266,550,19,62,1,1,0.55
-168,37,261,549,19,62,1,1,0.55
-169,37,256,550,19,62,1,1,0.6
-170,37,249,550,19,62,1,1,0.5
-171,37,243,550,19,62,1,1,0.45
-172,37,236,548,18,64,1,1,0.31579
-173,37,234,547,18,64,1,1,0.47368
-174,37,231,545,17,66,1,1,0.56882
-175,37,228,544,17,67,1,1,0.68627
-176,37,224,545,17,67,1,1,0.73856
-177,37,217,543,17,67,1,1,0.64542
-178,37,212,546,17,67,1,1,0.63399
-179,37,207,545,17,67,1,1,0.63971
-180,37,201,547,17,67,1,1,0.5817
-181,37,198,547,17,67,1,1,0.69118
-182,37,190,548,21,66,1,1,0.57598
-183,37,185,550,21,66,1,1,0.56988
-184,37,181,552,21,66,1,1,0.60923
-185,37,173,555,21,66,1,1,0.47083
-186,37,168,555,21,66,1,1,0.43555
-187,37,163,558,21,66,1,1,0.41791
-188,37,151,559,21,66,1,1,0.11805
-189,37,150,563,21,66,1,1,0.22727
-190,37,146,559,19,64,1,1,0.24923
-191,37,142,561,21,66,1,1,0.31615
-192,37,137,559,20,70,1,1,0.30248
-193,37,132,562,20,68,1,1,0.23741
-194,37,125,564,20,71,1,1,0.12037
-195,37,122,564,20,71,1,1,0.17857
-196,37,116,567,20,71,1,1,0.060847
-197,37,110,566,20,72,1,1,0.027397
-198,37,108,567,20,72,1,1,0.12003
-199,37,102,569,20,72,1,1,0.013699
-200,37,96,569,20,72,1,1,0.013699
-201,37,87,568,20,75,1,1,0.085213
-202,37,81,568,20,77,1,1,0.18681
-203,37,72,571,23,75,1,1,0.30099
-204,37,66,574,25,74,1,1,0.34615
-205,37,62,574,25,75,1,1,0.30769
-206,37,58,575,25,75,1,1,0.30769
-207,37,53,577,25,76,1,1,0.30769
-208,37,49,577,26,78,1,1,0.2963
-209,37,43,578,18,75,1,1,0.47368
-210,37,38,579,20,77,1,1,0.47619
-211,37,34,581,20,77,1,1,0.47619
-212,37,28,580,20,77,1,1,0.57143
-213,37,24,580,19,80,1,1,0.6
-214,37,18,583,20,77,1,1,0.71429
-215,37,15,580,20,77,1,1,0.66667
-216,37,8,584,20,77,1,1,0.85714
-217,37,5,584,20,77,1,1,0.80952
-218,37,1,585,20,77,1,1,0.85714
-219,37,-2,585,20,77,1,1,0.66667
-220,37,-6,589,20,77,1,1,0.52381
-221,37,-9,590,20,77,1,1,0.33333
-15,38,639,518,20,68,1,1,0.16356
-16,38,637,519,20,68,1,1,0.12974
-17,38,635,521,20,68,1,1,0.14838
-18,38,635,521,20,68,1,1,0.14769
-19,38,635,525,16,67,1,1,0.10294
-20,38,634,524,16,67,1,1,0.11851
-21,38,630,525,16,67,1,1,0.12803
-22,38,627,525,16,67,1,1,0.16349
-23,38,627,526,16,67,1,1,0.1583
-24,38,625,529,16,67,1,1,0.1436
-25,38,623,530,16,67,1,1,0.16349
-26,38,621,532,16,67,1,1,0.16263
-27,38,618,534,16,67,1,1,0.16782
-28,38,616,534,16,67,1,1,0.19983
-29,38,615,535,16,67,1,1,0.21453
-30,38,613,537,16,67,1,1,0.22318
-31,38,613,554,16,67,1,1,0.14533
-32,38,612,546,16,67,1,1,0.16696
-33,38,611,539,18,66,1,1,0.16182
-34,38,608,543,18,66,1,1,0.2718
-35,38,609,534,18,66,1,1,0.31186
-36,38,607,530,19,81,1,1,0.27866
-37,38,607,528,19,81,1,1,0.26585
-38,38,604,529,19,81,1,1,0.23354
-39,38,604,522,19,81,1,1,0.24634
-40,38,601,521,19,81,1,1,0.26524
-41,38,600,522,19,81,1,1,0.29024
-42,38,598,524,19,81,1,1,0.27683
-43,38,596,528,19,81,1,1,0.25
-44,38,593,528,19,81,1,1,0.21098
-45,38,591,527,21,80,1,1,0.22503
-46,38,588,527,23,87,1,1,0.20502
-47,38,584,527,27,86,1,1,0.20567
-48,38,581,531,27,84,1,1,0.1916
-49,38,578,532,28,83,1,1,0.18924
-50,38,577,530,26,85,1,1,0.22351
-51,38,573,531,26,85,1,1,0.22653
-52,38,573,532,26,85,1,1,0.23428
-53,38,570,533,25,95,1,1,0.22276
-54,38,567,533,28,94,1,1,0.20871
-55,38,565,533,27,95,1,1,0.19531
-56,38,563,533,27,96,1,1,0.18704
-57,38,562,531,27,97,1,1,0.20262
-58,38,557,530,29,98,1,1,0.20404
-59,38,554,529,31,98,1,1,0.20455
-60,38,554,529,28,97,1,1,0.19986
-61,38,549,529,30,96,1,1,0.21151
-62,38,548,525,29,98,1,1,0.18316
-63,38,543,538,30,98,1,1,0.19062
-64,38,543,527,30,98,1,1,0.1942
-65,38,537,530,30,98,1,1,0.22874
-66,38,536,540,30,98,1,1,0.18866
-67,38,525,527,37,105,1,1,0.24975
-68,38,521,534,37,105,1,1,0.22195
-69,38,518,530,37,105,1,1,0.22617
-70,38,512,534,36,102,1,1,0.23039
-71,38,509,533,36,102,1,1,0.20703
-72,38,502,535,36,102,1,1,0.2603
-73,38,498,532,36,102,1,1,0.21595
-74,38,494,532,36,102,1,1,0.21622
-75,38,492,531,33,101,1,1,0.19723
-76,38,487,531,32,98,1,1,0.20386
-77,38,482,530,32,98,1,1,0.2112
-78,38,476,534,32,106,1,1,0.15916
-79,38,473,533,32,106,1,1,0.17134
-80,38,466,540,32,106,1,1,0.11215
-81,38,461,540,32,106,1,1,0.11385
-82,38,455,539,31,105,1,1,0.13149
-83,38,450,539,30,109,1,1,0.12786
-84,38,441,537,32,111,1,1,0.15476
-85,38,430,540,39,110,1,1,0.13739
-86,38,424,542,39,110,1,1,0.13153
-87,38,416,543,39,110,1,1,0.14324
-88,38,410,543,39,110,1,1,0.15946
-89,38,402,543,40,111,1,1,0.17618
-90,38,392,548,42,112,1,1,0.15188
-91,38,387,551,42,114,1,1,0.14803
-92,38,380,550,41,118,1,1,0.18487
-93,38,372,556,41,118,1,1,0.15526
-94,38,366,558,41,118,1,1,0.16086
-95,38,359,564,41,118,1,1,0.13325
-96,38,352,566,43,117,1,1,0.12173
-97,38,344,560,42,122,1,1,0.17262
-98,38,336,566,42,122,1,1,0.15409
-99,38,320,562,52,121,1,1,0.23384
-100,38,312,567,56,120,1,1,0.18037
-101,38,304,568,55,117,1,1,0.17872
-102,38,296,566,54,118,1,1,0.18044
-103,38,287,563,55,126,1,1,0.21344
-104,38,287,561,47,127,1,1,0.23014
-105,38,279,560,47,127,1,1,0.24512
-106,38,269,565,52,126,1,1,0.23117
-107,38,260,564,52,126,1,1,0.22092
-108,38,256,564,45,130,1,1,0.26303
-109,38,254,568,41,129,1,1,0.26648
-110,38,245,563,39,133,1,1,0.28451
-111,38,237,565,39,133,1,1,0.25261
-112,38,228,565,38,136,1,1,0.21636
-113,38,217,567,38,136,1,1,0.20251
-114,38,207,566,38,136,1,1,0.21636
-115,38,198,569,38,136,1,1,0.22197
-116,38,188,574,38,136,1,1,0.19502
-117,38,178,573,38,136,1,1,0.22965
-118,38,165,571,37,139,1,1,0.25282
-119,38,158,572,38,141,1,1,0.2472
-120,38,142,577,42,140,1,1,0.22464
-121,38,134,577,42,140,1,1,0.25449
-122,38,120,577,44,139,1,1,0.26603
-123,38,112,583,44,139,1,1,0.23571
-124,38,99,582,46,142,1,1,0.24952
-125,38,89,584,46,142,1,1,0.24877
-126,38,80,587,46,142,1,1,0.24104
-127,38,65,587,50,146,1,1,0.25877
-128,38,55,591,50,146,1,1,0.22529
-129,38,43,589,49,154,1,1,0.22374
-130,38,29,587,48,157,1,1,0.21157
-131,38,18,586,47,160,1,1,0.23163
-132,38,6,589,47,160,1,1,0.54581
-133,38,-1,591,47,160,1,1,0.41278
-134,38,-7,593,47,160,1,1,0.18219
-135,38,-22,601,47,160,1,1,0.05823
-136,38,-30,607,47,160,1,1,0.028597
-137,38,-37,609,47,160,1,1,0.20833
-1,39,1183,490,13,35,1,1,0.72222
-2,39,1184,482,15,35,1,1,0.86111
-3,39,1185,485,15,35,1,1,0.80556
-4,39,1189,483,12,34,1,1,0.94286
-5,39,1190,488,14,33,1,1,0.85294
-6,39,1192,499,14,35,1,1,0.86111
-7,39,1194,490,14,35,1,1,0.88889
-8,39,1193,500,14,35,1,1,0.95556
-9,39,1195,500,14,35,1,1,1
-10,39,1197,506,14,35,1,1,1
-11,39,1196,498,13,37,1,1,1
-12,39,1197,501,13,37,1,1,1
-13,39,1199,493,13,38,1,1,1
-14,39,1197,495,15,37,1,1,1
-15,39,1200,494,15,37,1,1,1
-16,39,1200,494,15,37,1,1,1
-17,39,1201,494,15,37,1,1,1
-18,39,1202,494,15,37,1,1,1
-19,39,1203,493,15,37,1,1,1
-20,39,1204,493,15,37,1,1,1
-21,39,1204,494,15,37,1,1,1
-22,39,1205,495,15,37,1,1,1
-23,39,1206,495,15,37,1,1,1
-24,39,1205,494,15,37,1,1,1
-25,39,1207,498,15,37,1,1,1
-26,39,1209,499,15,37,1,1,1
-27,39,1209,501,15,37,1,1,1
-28,39,1210,502,15,37,1,1,1
-29,39,1212,506,15,37,1,1,1
-30,39,1210,509,15,37,1,1,1
-31,39,1212,515,15,37,1,1,1
-32,39,1213,516,15,37,1,1,1
-33,39,1212,504,15,37,1,1,1
-34,39,1213,507,15,37,1,1,1
-35,39,1214,500,15,37,1,1,1
-36,39,1216,498,15,37,1,1,1
-37,39,1216,497,15,36,1,1,1
-38,39,1215,492,16,37,1,1,1
-39,39,1219,493,16,37,1,1,1
-40,39,1217,489,16,40,1,1,1
-41,39,1219,490,16,40,1,1,0.92826
-42,39,1220,491,16,40,1,1,0.87805
-43,39,1221,495,15,38,1,1,0.87179
-44,39,1221,497,16,37,1,1,0.89474
-45,39,1224,496,15,39,1,1,0.925
-46,39,1224,496,14,41,1,1,0.88095
-47,39,1225,497,16,40,1,1,0.90244
-48,39,1225,499,16,40,1,1,0.87805
-49,39,1226,502,16,40,1,1,0.82927
-50,39,1227,498,16,40,1,1,0.92683
-51,39,1227,502,16,40,1,1,0.87805
-52,39,1228,500,16,40,1,1,0.95122
-53,39,1228,500,16,40,1,1,0.95122
-54,39,1229,500,16,40,1,1,0.92683
-55,39,1230,500,16,40,1,1,0.90244
-56,39,1230,499,16,40,1,1,0.90244
-57,39,1230,498,16,40,1,1,0.85366
-58,39,1230,497,16,40,1,1,0.82927
-59,39,1229,495,17,40,1,1,0.82927
-60,39,1229,494,17,39,1,1,0.85
-61,39,1229,493,18,39,1,1,0.86184
-62,39,1231,492,16,41,1,1,0.94958
-63,39,1231,487,16,41,1,1,1
-64,39,1232,493,16,41,1,1,1
-65,39,1230,492,16,41,1,1,1
-66,39,1231,490,16,41,1,1,1
-67,39,1232,495,16,41,1,1,1
-68,39,1230,493,16,41,1,1,1
-69,39,1230,496,16,41,1,1,1
-70,39,1227,496,16,41,1,1,1
-71,39,1226,495,16,41,1,1,1
-72,39,1224,496,16,41,1,1,1
-73,39,1223,495,16,41,1,1,1
-74,39,1222,494,16,41,1,1,1
-75,39,1221,495,14,42,1,1,1
-76,39,1219,494,16,41,1,1,1
-77,39,1216,496,17,40,1,1,1
-78,39,1213,495,17,40,1,1,1
-79,39,1212,494,17,40,1,1,1
-80,39,1210,495,17,40,1,1,1
-81,39,1207,493,17,40,1,1,1
-82,39,1204,494,17,40,1,1,1
-83,39,1201,494,17,40,1,1,1
-84,39,1199,494,17,40,1,1,1
-85,39,1196,495,17,40,1,1,1
-86,39,1194,494,16,42,1,1,1
-87,39,1192,495,16,42,1,1,1
-88,39,1186,496,18,43,1,1,1
-89,39,1184,495,18,43,1,1,1
-90,39,1180,498,18,43,1,1,1
-91,39,1178,500,17,42,1,1,1
-92,39,1176,500,17,42,1,1,1
-93,39,1176,504,13,40,1,1,1
-94,39,1171,502,15,44,1,1,1
-95,39,1169,504,15,44,1,1,1
-96,39,1165,504,15,44,1,1,1
-97,39,1161,503,15,44,1,1,1
-98,39,1158,505,15,44,1,1,1
-99,39,1156,506,15,44,1,1,1
-100,39,1152,506,14,45,1,1,1
-101,39,1149,506,14,45,1,1,1
-102,39,1145,505,14,45,1,1,1
-103,39,1141,506,16,44,1,1,1
-104,39,1136,508,18,43,1,1,1
-105,39,1133,509,17,42,1,1,1
-106,39,1130,509,17,42,1,1,1
-107,39,1127,505,16,45,1,1,1
-108,39,1123,506,18,44,1,1,1
-109,39,1120,506,18,44,1,1,1
-110,39,1116,506,18,44,1,1,1
-111,39,1112,507,18,41,1,1,1
-112,39,1110,505,17,44,1,1,1
-113,39,1106,505,17,44,1,1,1
-114,39,1102,506,19,43,1,1,1
-115,39,1098,505,19,43,1,1,1
-116,39,1092,508,19,43,1,1,1
-117,39,1090,508,19,43,1,1,1
-118,39,1085,506,19,43,1,1,1
-119,39,1083,506,19,43,1,1,1
-120,39,1078,507,19,43,1,1,1
-121,39,1075,506,19,43,1,1,1
-122,39,1072,506,19,43,1,1,1
-123,39,1070,504,16,43,1,1,1
-124,39,1067,506,16,43,1,1,1
-125,39,1063,506,16,43,1,1,1
-126,39,1059,505,16,43,1,1,1
-127,39,1054,506,16,43,1,1,1
-128,39,1051,506,16,43,1,1,1
-129,39,1047,506,16,43,1,1,1
-130,39,1043,506,17,44,1,1,1
-131,39,1039,509,16,41,1,1,1
-132,39,1034,508,17,43,1,1,1
-133,39,1031,509,16,41,1,1,1
-134,39,1026,508,16,41,1,1,1
-135,39,1022,509,16,41,1,1,1
-136,39,1018,508,16,41,1,1,1
-137,39,1014,508,16,42,1,1,1
-138,39,1011,506,16,42,1,1,1
-139,39,1007,506,16,42,1,1,1
-140,39,1004,505,17,45,1,1,1
-141,39,999,503,19,44,1,1,1
-142,39,997,502,18,46,1,1,1
-143,39,995,501,18,46,1,1,1
-144,39,991,503,18,46,1,1,1
-145,39,988,504,18,46,1,1,1
-146,39,985,503,18,46,1,1,1
-147,39,982,504,18,46,1,1,1
-148,39,978,505,18,46,1,1,1
-149,39,973,503,19,47,1,1,1
-150,39,968,504,21,46,1,1,1
-151,39,966,506,19,47,1,1,1
-152,39,962,506,19,47,1,1,1
-153,39,958,504,19,47,1,1,1
-154,39,953,503,19,47,1,1,1
-155,39,949,504,19,47,1,1,1
-156,39,944,504,19,47,1,1,1
-157,39,940,504,19,47,1,1,1
-158,39,936,505,19,47,1,1,1
-159,39,932,504,19,47,1,1,1
-160,39,929,506,20,48,1,1,1
-161,39,925,505,20,48,1,1,1
-162,39,921,505,20,48,1,1,1
-163,39,918,506,20,48,1,1,1
-164,39,916,505,19,47,1,1,1
-165,39,913,505,19,47,1,1,1
-166,39,909,504,19,47,1,1,1
-167,39,906,507,19,47,1,1,1
-168,39,903,506,19,47,1,1,1
-169,39,901,506,19,47,1,1,1
-170,39,898,505,19,47,1,1,1
-171,39,895,505,19,47,1,1,1
-172,39,892,505,19,47,1,1,1
-173,39,890,504,19,47,1,1,1
-174,39,888,504,19,47,1,1,1
-175,39,885,504,19,47,1,1,1
-176,39,882,504,19,47,1,1,1
-177,39,881,504,19,47,1,1,1
-178,39,879,506,19,47,1,1,1
-179,39,877,506,19,47,1,1,1
-180,39,874,505,19,47,1,1,1
-181,39,871,506,19,47,1,1,1
-182,39,870,504,19,50,1,1,1
-183,39,867,505,19,50,1,1,1
-184,39,864,505,19,50,1,1,1
-185,39,863,508,18,48,1,1,1
-186,39,861,509,18,48,1,1,1
-187,39,859,510,18,46,1,1,1
-188,39,856,510,19,48,1,1,1
-189,39,855,510,18,46,1,1,1
-190,39,854,510,18,45,1,1,1
-191,39,850,510,19,48,1,1,1
-192,39,849,510,19,48,1,1,1
-193,39,848,511,19,48,1,1,1
-194,39,846,511,19,48,1,1,1
-195,39,844,511,19,48,1,1,1
-196,39,843,512,19,48,1,1,1
-197,39,841,514,18,46,1,1,1
-198,39,840,513,17,49,1,1,1
-199,39,838,513,17,49,1,1,1
-200,39,837,513,17,49,1,1,1
-201,39,837,514,17,49,1,1,1
-202,39,836,515,17,49,1,1,1
-203,39,834,514,17,49,1,1,1
-204,39,833,514,17,49,1,1,1
-205,39,832,514,17,49,1,1,1
-206,39,832,514,17,49,1,1,1
-207,39,831,517,13,48,1,1,1
-208,39,829,518,15,47,1,1,1
-209,39,827,518,15,47,1,1,1
-210,39,826,519,15,47,1,1,1
-211,39,825,521,15,47,1,1,1
-212,39,825,522,15,46,1,1,1
-213,39,825,523,15,45,1,1,1
-214,39,825,524,15,45,1,1,1
-215,39,825,523,14,45,1,1,1
-216,39,825,522,14,46,1,1,1
-217,39,825,521,14,47,1,1,1
-218,39,825,520,14,48,1,1,1
-219,39,825,519,14,49,1,1,1
-220,39,825,519,13,52,1,1,1
-221,39,825,519,15,51,1,1,1
-222,39,824,518,16,51,1,1,1
-223,39,824,518,16,51,1,1,1
-224,39,824,518,16,51,1,1,1
-225,39,825,518,16,51,1,1,1
-226,39,825,519,16,51,1,1,1
-227,39,826,521,16,51,1,1,1
-228,39,827,520,16,51,1,1,1
-229,39,827,521,16,51,1,1,1
-230,39,828,520,17,51,1,1,1
-231,39,829,522,17,51,1,1,1
-232,39,829,520,17,51,1,1,1
-233,39,831,520,17,51,1,1,1
-234,39,832,519,17,51,1,1,1
-235,39,833,519,17,51,1,1,1
-236,39,836,521,16,48,1,1,1
-237,39,836,522,17,47,1,1,1
-238,39,838,520,19,49,1,1,1
-239,39,839,518,19,49,1,1,1
-240,39,841,517,19,49,1,1,1
-241,39,844,518,19,49,1,1,1
-242,39,846,517,19,49,1,1,1
-243,39,850,516,19,49,1,1,1
-244,39,853,517,19,49,1,1,1
-245,39,856,517,19,49,1,1,1
-246,39,858,518,19,49,1,1,1
-247,39,862,517,19,49,1,1,1
-248,39,865,517,19,49,1,1,1
-249,39,870,517,18,51,1,1,1
-250,39,871,517,19,50,1,1,0.97745
-251,39,875,517,19,50,1,1,0.97843
-252,39,878,519,21,49,1,1,0.91636
-253,39,882,519,21,49,1,1,0.87455
-254,39,887,518,21,49,1,1,0.84
-255,39,893,520,21,49,1,1,0.83273
-256,39,897,519,21,49,1,1,0.8
-257,39,899,518,23,48,1,1,0.7449
-258,39,906,517,23,48,1,1,0.77381
-259,39,911,518,23,48,1,1,0.75765
-260,39,916,517,22,50,1,1,0.71014
-261,39,921,517,22,50,1,1,0.69309
-262,39,927,517,22,50,1,1,0.69224
-263,39,931,517,22,50,1,1,0.62745
-264,39,936,518,22,50,1,1,0.62745
-265,39,941,519,22,50,1,1,0.62745
-266,39,948,519,22,49,1,1,0.66
-267,39,952,518,22,49,1,1,0.68
-268,39,957,520,22,49,1,1,0.64
-269,39,964,520,22,49,1,1,0.64
-270,39,967,517,25,48,1,1,0.73469
-271,39,973,517,25,48,1,1,0.71429
-272,39,978,518,25,48,1,1,0.69388
-273,39,983,518,25,48,1,1,0.69388
-274,39,990,516,20,41,1,1,0.85714
-275,39,995,515,20,41,1,1,0.90476
-276,39,1000,515,20,41,1,1,0.90476
-277,39,1006,515,22,40,1,1,0.95122
-278,39,1010,514,22,40,1,1,0.97561
-279,39,1015,514,22,40,1,1,1
-280,39,1021,516,21,41,1,1,0.92857
-281,39,1026,515,21,40,1,1,1
-282,39,1029,515,25,41,1,1,0.97619
-283,39,1034,515,25,41,1,1,0.97619
-284,39,1041,516,25,41,1,1,0.95238
-285,39,1047,516,25,41,1,1,0.95238
-286,39,1053,514,24,44,1,1,0.93333
-287,39,1058,515,24,44,1,1,0.91111
-288,39,1063,512,24,44,1,1,0.97778
-289,39,1068,514,24,44,1,1,0.93333
-290,39,1073,511,24,46,1,1,0.95745
-291,39,1079,513,24,46,1,1,0.91489
-292,39,1083,510,23,48,1,1,0.95918
-293,39,1090,511,22,49,1,1,0.92
-294,39,1094,511,23,48,1,1,0.95918
-295,39,1098,512,24,51,1,1,0.90385
-296,39,1103,514,23,54,1,1,0.84318
-297,39,1107,514,23,54,1,1,0.86364
-298,39,1113,513,23,54,1,1,0.90455
-299,39,1117,514,23,54,1,1,0.92576
-300,39,1122,516,23,54,1,1,0.93333
-301,39,1126,517,23,54,1,1,0.95758
-302,39,1131,515,22,56,1,1,0.98169
-303,39,1134,516,22,56,1,1,1
-304,39,1138,521,25,55,1,1,1
-305,39,1143,522,25,55,1,1,1
-306,39,1147,526,25,56,1,1,1
-307,39,1151,526,25,56,1,1,1
-308,39,1154,525,25,56,1,1,1
-309,39,1161,526,24,57,1,1,1
-310,39,1165,528,24,57,1,1,1
-311,39,1168,527,24,57,1,1,1
-312,39,1173,527,24,57,1,1,1
-313,39,1177,528,24,57,1,1,1
-314,39,1180,529,24,57,1,1,1
-315,39,1185,529,24,57,1,1,1
-316,39,1189,529,24,57,1,1,1
-317,39,1193,529,24,57,1,1,1
-318,39,1196,529,24,57,1,1,1
-319,39,1200,528,24,57,1,1,1
-320,39,1202,529,24,57,1,1,1
-321,39,1205,528,24,57,1,1,1
-322,39,1210,527,24,57,1,1,1
-323,39,1212,526,24,57,1,1,1
-324,39,1216,527,24,57,1,1,1
-325,39,1220,526,24,57,1,1,1
-326,39,1222,525,24,57,1,1,1
-327,39,1224,524,24,57,1,1,1
-328,39,1226,523,24,57,1,1,1
-329,39,1230,522,24,57,1,1,1
-330,39,1231,520,24,57,1,1,0.33103
-331,39,1235,516,24,57,1,1,0.38621
-332,39,1235,515,24,57,1,1,0.34759
-333,39,1238,509,24,57,1,1,0.34
-334,39,1239,509,24,57,1,1,0.35517
-335,39,1241,508,24,57,1,1,0.31034
-336,39,1243,502,24,57,1,1,0.25172
-337,39,1250,504,19,56,1,1,0.28421
-338,39,1251,504,19,56,1,1,0.24561
-339,39,1253,502,19,56,1,1,0.19649
-340,39,1254,501,19,56,1,1,0.15263
-341,39,1257,503,19,56,1,1,0.17807
-342,39,1258,501,19,56,1,1,0.10526
-343,39,1260,509,18,55,1,1,0.10902
-344,39,1261,513,18,55,1,1,0.058271
-345,39,1261,516,19,54,1,1,0.027273
-346,39,1262,525,18,55,1,1,0.071429
-347,39,1266,520,18,55,1,1,0
-348,39,1263,532,20,54,1,1,0.2026
-349,39,1268,524,18,53,1,1,0.081871
-350,39,1269,523,18,54,1,1,0.11962
-351,39,1269,529,18,55,1,1,0.16917
-352,39,1270,534,18,55,1,1,0.21711
-353,39,1272,534,20,53,1,1,0.17901
-354,39,1273,538,20,53,1,1,0.21869
-355,39,1275,538,20,53,1,1,0.17284
-356,39,1275,539,20,53,1,1,0.21429
-357,39,1276,541,20,53,1,1,0.2381
-358,39,1276,543,20,53,1,1,0.28571
-359,39,1277,545,20,53,1,1,0.28571
-360,39,1277,546,20,53,1,1,0.30864
-361,39,1278,548,20,53,1,1,0.33069
-362,39,1278,550,20,53,1,1,0.37478
-363,39,1279,552,20,53,1,1,0.37478
-364,39,1280,554,20,53,1,1,0.39683
-365,39,1279,554,20,53,1,1,0.40741
-366,39,1278,554,20,53,1,1,0.37037
-367,39,1277,555,20,53,1,1,0.35185
-368,39,1278,555,19,54,1,1,0.32727
-369,39,1279,556,19,54,1,1,0.34364
-370,39,1280,556,19,56,1,1,0.35263
-371,39,1281,557,19,56,1,1,0.29825
-372,39,1282,557,19,58,1,1,0.32203
-373,39,1283,558,19,58,1,1,0.33898
-374,39,1284,559,19,59,1,1,0.36667
-375,39,1283,553,19,60,1,1,0.27869
-376,39,1283,548,19,61,1,1,0.20968
-377,39,1283,543,19,62,1,1,0.14286
-378,39,1280,541,20,63,1,1,0.125
-379,39,1278,540,21,63,1,1,0.14986
-380,39,1275,539,23,63,1,1,0.24479
-381,39,1273,537,23,64,1,1,0.30769
-382,39,1270,536,25,64,1,1,0.28994
-383,39,1268,535,26,64,1,1,0.27009
-384,39,1266,534,27,64,1,1,0.22912
-385,39,1264,531,25,65,1,1,0.21678
-386,39,1262,528,24,66,1,1,0.2
-387,39,1260,525,23,68,1,1,0.083333
-388,39,1255,526,24,68,1,1,0.14551
-389,39,1251,527,24,68,1,1,0.17101
-390,39,1246,528,25,68,1,1,0.22742
-391,39,1242,530,25,68,1,1,0.14994
-392,39,1233,528,25,67,1,1,0.20362
-393,39,1225,526,24,67,1,1,0.21176
-394,39,1216,524,24,67,1,1,0.32
-395,39,1208,522,23,67,1,1,0.29167
-396,39,1199,520,23,67,1,1,0.29167
-112,40,1507,522,32,67,1,1,1
-113,40,1503,522,32,67,1,1,1
-114,40,1499,522,32,67,1,1,1
-115,40,1495,522,32,68,1,1,1
-116,40,1491,522,31,68,1,1,1
-117,40,1488,523,30,68,1,1,1
-118,40,1483,522,29,64,1,1,1
-119,40,1480,522,27,64,1,1,1
-120,40,1478,522,25,64,1,1,1
-121,40,1473,519,24,67,1,1,1
-122,40,1467,518,24,67,1,1,1
-123,40,1463,518,23,67,1,1,1
-124,40,1460,519,21,67,1,1,1
-125,40,1455,517,18,68,1,1,1
-126,40,1450,517,18,68,1,1,0.043478
-127,40,1445,517,18,69,1,1,0.10677
-128,40,1440,517,19,70,1,1,0.1507
-129,40,1435,517,19,71,1,1,0.25556
-130,40,1431,517,19,71,1,1,0.25556
-131,40,1427,518,19,71,1,1,0.24444
-132,40,1423,518,19,71,1,1,0.25556
-133,40,1416,518,19,71,1,1,0.39514
-134,40,1411,518,19,71,1,1,0.49583
-135,40,1406,518,19,71,1,1,0.53472
-136,40,1397,519,24,70,1,1,0.62254
-137,40,1392,519,27,70,1,1,0.59557
-138,40,1387,520,31,70,1,1,0.58099
-139,40,1383,519,31,71,1,1,0.58681
-140,40,1379,519,32,71,1,1,0.57071
-141,40,1374,519,31,71,1,1,0.64583
-142,40,1369,519,31,71,1,1,0.67535
-143,40,1365,520,30,70,1,1,0.69105
-144,40,1360,520,30,70,1,1,0.75284
-145,40,1356,520,29,70,1,1,0.70845
-146,40,1351,521,28,70,1,1,0.72802
-147,40,1347,521,27,70,1,1,0.6831
-148,40,1342,521,27,70,1,1,0.6831
-149,40,1338,522,26,69,1,1,0.62963
-150,40,1333,522,26,69,1,1,0.017989
-151,40,1329,523,25,69,1,1,0.57692
-152,40,1324,523,24,68,1,1,0.6
-153,40,1319,523,24,68,1,1,0.6
-154,40,1314,523,24,68,1,1,0.6
-155,40,1309,523,24,67,1,1,0.56
-156,40,1305,523,23,67,1,1,0.54167
-157,40,1300,523,22,67,1,1,0.52174
-158,40,1295,523,22,66,1,1,0.52174
-159,40,1290,523,22,66,1,1,0.52174
-160,40,1285,523,22,66,1,1,0.47826
-161,40,1281,523,21,66,1,1,0.45455
-162,40,1277,518,24,70,1,1,0.34873
-163,40,1269,524,25,70,1,1,1
-164,40,1266,518,24,70,1,1,0.38535
-165,40,1260,521,24,70,1,1,0.28
-1,41,979,498,29,24,0,3,1
-2,41,981,490,29,24,0,3,1
-3,41,982,491,29,24,0,3,1
-4,41,984,493,29,24,0,3,1
-5,41,986,495,29,24,0,3,1
-6,41,989,508,29,24,0,3,1
-7,41,988,498,30,24,0,3,1
-8,41,988,504,29,24,0,3,1
-9,41,990,506,29,25,0,3,1
-10,41,992,509,29,25,0,3,1
-11,41,988,505,29,24,0,3,0.89867
-12,41,988,503,29,24,0,3,1
-13,41,989,501,29,24,0,3,0.84
-14,41,990,500,29,24,0,3,0.88
-15,41,990,499,29,24,0,3,0.92
-16,41,991,499,29,24,0,3,0.92
-17,41,992,499,29,24,0,3,0.92
-18,41,993,499,29,24,0,3,0.96
-19,41,994,499,29,24,0,3,0.96
-20,41,995,499,29,24,0,3,0.97733
-21,41,996,499,29,24,0,3,1
-22,41,996,500,29,24,0,3,1
-23,41,997,502,29,23,0,3,1
-24,41,997,503,30,24,0,3,1
-25,41,998,505,30,23,0,3,1
-26,41,998,506,31,23,0,3,1
-27,41,999,508,31,23,0,3,1
-28,41,999,508,31,23,0,3,1
-29,41,999,511,31,22,0,3,1
-30,41,1000,513,29,23,0,3,1
-31,41,1000,521,30,24,0,3,1
-32,41,999,514,31,24,0,3,1
-33,41,999,508,32,23,0,3,1
-34,41,1001,513,30,22,0,3,1
-35,41,1000,503,34,23,0,3,1
-36,41,1000,501,34,23,0,3,1
-37,41,1001,499,33,23,0,3,1
-38,41,1002,496,31,23,0,3,1
-39,41,1002,495,31,23,0,3,1
-40,41,1003,494,30,23,0,3,1
-41,41,1004,493,30,23,0,3,1
-42,41,1004,493,30,24,0,3,1
-43,41,1005,494,30,24,0,3,1
-44,41,1006,495,30,24,0,3,1
-45,41,1007,496,30,24,0,3,1
-46,41,1008,497,30,24,0,3,1
-47,41,1009,498,30,24,0,3,1
-48,41,1009,500,29,24,0,3,1
-49,41,1009,502,29,24,0,3,1
-50,41,1009,502,29,24,0,3,1
-51,41,1009,502,29,24,0,3,1
-52,41,1009,501,30,24,0,3,1
-53,41,1009,501,32,23,0,3,1
-54,41,1009,500,31,23,0,3,1
-55,41,1009,500,31,23,0,3,1
-56,41,1009,499,31,23,0,3,1
-57,41,1009,499,31,23,0,3,1
-58,41,1008,497,31,23,0,3,1
-59,41,1008,495,30,23,0,3,1
-60,41,1008,493,29,23,0,3,1
-61,41,1008,491,29,24,0,3,1
-62,41,1008,491,29,24,0,3,1
-63,41,1009,491,28,24,0,3,1
-64,41,1010,492,28,24,0,3,0.93655
-65,41,1010,492,28,23,0,3,0.91379
-66,41,1010,492,28,23,0,3,0.85632
-67,41,1010,492,28,23,0,3,0.79885
-68,41,1008,492,28,23,0,3,0.82759
-69,41,1006,493,29,23,0,3,0.86111
-70,41,1004,493,29,24,0,3,0.816
-71,41,1003,494,29,24,0,3,0.73333
-72,41,1000,493,29,24,0,3,0.73333
-73,41,998,492,29,24,0,3,0.7
-74,41,995,492,29,24,0,3,0.73333
-75,41,993,491,29,24,0,3,0.69333
-76,41,990,491,29,24,0,3,0.68
-77,41,988,490,29,24,0,3,0.66267
-78,41,985,489,29,24,0,3,0.67733
-79,41,983,489,29,24,0,3,0.632
-80,41,980,488,29,24,0,3,0.61867
-81,41,978,488,29,24,0,3,0.58933
-82,41,978,489,30,24,0,3,0.57419
-83,41,974,489,30,24,0,3,0.62065
-84,41,971,490,30,23,0,3,0.60484
-85,41,968,490,30,24,0,3,0.62065
-86,41,965,491,30,23,0,3,0.60484
-87,41,962,491,29,24,0,3,0.608
-88,41,959,492,29,23,0,3,0.66667
-89,41,956,492,29,24,0,3,0.70667
-90,41,953,493,29,23,0,3,0.725
-91,41,950,494,29,23,0,3,0.71667
-92,41,946,495,29,23,0,3,0.71111
-93,41,942,497,29,23,0,3,0.68889
-94,41,938,498,29,23,0,3,0.70833
-95,41,934,500,29,23,0,3,0.70833
-96,41,931,502,29,23,0,3,0.71111
-97,41,927,501,29,24,0,3,0.744
-98,41,923,501,29,24,0,3,0.80933
-99,41,919,501,29,24,0,3,0.79467
-100,41,915,501,29,24,0,3,0.8
-101,41,912,501,29,24,0,3,0.808
-102,41,909,500,29,24,0,3,0.86
-103,41,906,500,29,24,0,3,0.872
-104,41,903,500,29,24,0,3,0.90933
-105,41,898,499,29,24,0,3,0.89333
-106,41,894,499,29,24,0,3,0.90933
-107,41,890,499,29,24,0,3,0.904
-108,41,886,499,29,24,0,3,0.904
-109,41,881,499,29,24,0,3,0.88667
-110,41,877,499,29,24,0,3,0.89867
-111,41,873,499,29,24,0,3,0.94933
-112,41,870,499,28,24,0,3,1
-113,41,865,499,28,23,0,3,1
-114,41,860,499,29,23,0,3,1
-115,41,855,499,29,23,0,3,1
-116,41,851,499,29,23,0,3,1
-117,41,846,499,30,23,0,3,1
-118,41,841,499,30,23,0,3,1
-119,41,836,499,31,23,0,3,1
-120,41,832,499,31,23,0,3,1
-121,41,825,499,29,24,0,3,1
-122,41,820,498,30,24,0,3,0.98065
-123,41,816,498,30,24,0,3,1
-124,41,812,498,30,24,0,3,1
-125,41,808,498,30,23,0,3,1
-126,41,804,498,30,23,0,3,1
-127,41,800,498,31,23,0,3,1
-128,41,794,498,31,23,0,3,1
-129,41,789,498,30,23,0,3,1
-130,41,783,498,30,23,0,3,1
-131,41,778,498,29,24,0,3,1
-132,41,773,498,29,24,0,3,1
-133,41,768,498,29,24,0,3,1
-134,41,763,499,30,24,0,3,1
-135,41,758,498,30,24,0,3,1
-136,41,753,498,30,24,0,3,1
-137,41,749,498,29,24,0,3,1
-138,41,744,498,30,24,0,3,1
-139,41,740,498,29,24,0,3,1
-140,41,735,498,29,24,0,3,0.95467
-141,41,731,498,29,24,0,3,0.97867
-142,41,729,497,30,24,0,3,0.97677
-143,41,724,497,30,24,0,3,0.95871
-144,41,719,497,30,24,0,3,1
-145,41,714,497,30,24,0,3,1
-146,41,709,497,30,24,0,3,1
-147,41,704,497,30,24,0,3,1
-148,41,699,497,30,24,0,3,1
-149,41,694,497,30,24,0,3,1
-150,41,689,497,30,24,0,3,1
-151,41,685,498,29,24,0,3,1
-152,41,679,498,29,24,0,3,1
-153,41,673,498,29,24,0,3,1
-154,41,667,498,29,24,0,3,1
-155,41,662,499,29,24,0,3,1
-156,41,656,500,29,23,0,3,1
-157,41,651,501,29,23,0,3,1
-158,41,646,502,29,23,0,3,1
-159,41,641,503,29,23,0,3,1
-160,41,636,504,29,23,0,3,1
-161,41,628,504,29,24,0,3,1
-162,41,623,504,29,24,0,3,1
-163,41,618,504,29,24,0,3,0.96667
-164,41,613,504,29,24,0,3,0.93333
-165,41,609,504,29,24,0,3,0.93333
-166,41,604,504,29,24,0,3,0.9
-167,41,599,504,29,24,0,3,0.83333
-168,41,595,504,29,24,0,3,0.8
-169,41,590,504,29,24,0,3,0.73333
-170,41,585,504,29,24,0,3,0.66667
-171,41,581,504,29,24,0,3,0.63333
-172,41,578,502,29,24,0,3,0.63333
-173,41,576,501,29,24,0,3,0.63333
-174,41,570,500,29,24,0,3,0.53333
-175,41,566,499,29,24,0,3,0.46667
-176,41,562,499,29,24,0,3,0.43333
-177,41,559,499,29,24,0,3,0.4
-178,41,555,499,29,24,0,3,0.36667
-179,41,552,499,29,24,0,3,0.33333
-180,41,549,500,29,24,0,3,0.33333
-181,41,546,502,29,24,0,3,0.3
-182,41,540,502,29,24,0,3,0.2
-183,41,536,502,29,24,0,3,0.16667
-184,41,533,502,29,24,0,3,0.16667
-185,41,528,502,29,24,0,3,0.1
-186,41,527,502,29,24,0,3,0.16667
-187,41,519,504,29,24,0,3,0
-188,41,517,503,29,24,0,3,0.033333
-189,41,513,504,29,24,0,3,0
-600,42,296,499,17,44,1,1,0.79259
-601,42,291,499,19,48,1,1,0.77143
-602,42,286,500,22,52,1,1,0.75636
-603,42,281,501,24,56,1,1,0.7614
-604,42,277,502,26,60,1,1,0.73406
-605,42,275,500,26,60,1,1,0.66788
-606,42,274,499,25,59,1,1,0.67564
-607,42,273,498,25,58,1,1,0.6884
-608,42,271,496,25,58,1,1,0.69883
-609,42,270,495,24,58,1,1,0.69085
-610,42,268,494,24,58,1,1,0.68
-611,42,267,493,23,57,1,1,0.6681
-612,42,265,492,23,57,1,1,0.62284
-613,42,264,491,22,57,1,1,0.65442
-614,42,262,490,22,58,1,1,0.59985
-615,42,260,490,23,58,1,1,0.57133
-616,42,258,489,23,59,1,1,0.56667
-617,42,257,489,23,60,1,1,0.52459
-618,42,255,488,21,62,1,1,0.52381
-619,42,253,488,20,63,1,1,0.54688
-620,42,251,488,19,64,1,1,0.38769
-621,42,248,489,22,64,1,1,0.40936
-622,42,245,491,25,63,1,1,0.35577
-623,42,240,492,30,65,1,1,0.29912
-624,42,241,491,27,62,1,1,0.28571
-625,42,242,494,27,63,1,1,0.24107
-626,42,243,498,27,63,1,1,0.26562
-627,42,245,502,26,63,1,1,0.31597
-628,42,246,501,25,65,1,1,0.23776
-629,42,248,504,24,63,1,1,0.28875
-630,42,250,507,23,61,1,1,0.34274
-631,42,252,510,22,59,1,1,0.35942
-632,42,254,514,21,56,1,1,0.43381
-633,42,245,508,27,68,1,1,0.24845
-634,42,248,509,27,69,1,1,0.26122
-635,42,251,510,28,70,1,1,0.30112
-636,42,254,513,27,67,1,1,0.30462
-637,42,257,517,26,64,1,1,0.39886
-638,42,260,521,25,61,1,1,0.45099
-639,42,263,525,24,58,1,1,0.5478
-640,42,264,524,24,59,1,1,0.45267
-641,42,266,523,24,60,1,1,0.44721
-642,42,268,523,24,60,1,1,0.5377
-643,42,270,522,25,60,1,1,0.48928
-644,42,273,521,25,61,1,1,0.58065
-645,42,276,521,26,61,1,1,0.60633
-646,42,279,521,26,61,1,1,0.64695
-647,42,282,522,27,61,1,1,0.59677
-648,42,286,523,27,61,1,1,0.6371
-649,42,289,523,28,62,1,1,0.57033
-650,42,293,524,28,62,1,1,0.54132
-651,42,297,525,28,63,1,1,0.54364
-652,42,302,514,29,70,1,1,0.54648
-653,42,308,516,29,70,1,1,0.56526
-654,42,314,518,29,71,1,1,0.58148
-655,42,319,521,29,71,1,1,0.56481
-656,42,324,525,29,71,1,1,0.62315
-657,42,333,526,29,73,1,1,0.6482
-658,42,341,528,29,74,1,1,0.65778
-659,42,344,531,30,74,1,1,0.74882
-660,42,348,534,30,74,1,1,0.69677
-661,42,352,537,30,75,1,1,0.73769
-662,42,356,535,30,76,1,1,0.80436
-663,42,361,534,30,76,1,1,0.82195
-664,42,366,531,30,77,1,1,0.84574
-665,42,372,528,30,78,1,1,0.87505
-666,42,376,522,30,79,1,1,0.85081
-667,42,382,523,30,79,1,1,0.84274
-668,42,388,523,30,80,1,1,0.85344
-669,42,393,519,29,81,1,1,0.77561
-670,42,398,516,29,82,1,1,0.82851
-671,42,403,513,30,83,1,1,0.88479
-672,42,408,510,31,84,1,1,0.91618
-673,42,414,508,31,84,1,1,0.91618
-674,42,419,502,32,84,1,1,0.93155
-675,42,425,496,33,85,1,1,0.95383
-676,42,429,500,34,85,1,1,0.93688
-677,42,435,497,34,86,1,1,1
-678,42,440,499,34,86,1,1,1
-679,42,446,511,34,86,1,1,1
-680,42,454,507,33,86,1,1,1
-681,42,452,532,35,86,1,1,1
-682,42,459,558,35,87,1,1,1
-683,42,460,523,36,88,1,1,1
-684,42,464,514,36,88,1,1,1
-685,42,468,515,36,89,1,1,1
-686,42,474,505,36,89,1,1,1
-687,42,478,504,36,90,1,1,1
-688,42,482,504,37,90,1,1,1
-689,42,487,504,37,90,1,1,1
-690,42,492,500,37,90,1,1,1
-691,42,496,499,37,90,1,1,1
-692,42,500,498,37,91,1,1,1
-693,42,504,497,38,92,1,1,1
-694,42,508,497,39,92,1,1,1
-695,42,513,497,39,93,1,1,1
-696,42,517,498,40,93,1,1,1
-697,42,522,498,40,94,1,1,1
-698,42,526,498,41,95,1,1,1
-699,42,531,499,41,95,1,1,1
-700,42,536,504,41,94,1,1,1
-701,42,540,503,42,95,1,1,1
-702,42,545,503,42,95,1,1,1
-703,42,550,503,42,96,1,1,1
-704,42,552,505,42,97,1,1,1
-705,42,554,508,42,97,1,1,1
-706,42,555,508,43,97,1,1,1
-707,42,557,512,44,97,1,1,1
-708,42,560,516,44,98,1,1,1
-709,42,563,521,44,99,1,1,1
-710,42,566,527,44,99,1,1,1
-711,42,568,528,44,100,1,1,1
-712,42,571,530,44,100,1,1,1
-713,42,574,532,44,101,1,1,1
-714,42,576,545,43,102,1,1,1
-715,42,576,545,43,102,1,1,1
-716,42,577,545,43,102,1,1,1
-717,42,578,545,43,103,1,1,1
-718,42,577,547,47,106,1,1,1
-719,42,578,545,47,107,1,1,1
-720,42,580,550,47,108,1,1,1
-721,42,581,550,48,109,1,1,1
-722,42,583,550,48,111,1,1,1
-723,42,585,551,48,112,1,1,1
-724,42,587,561,48,112,1,1,1
-725,42,589,558,48,114,1,1,1
-726,42,591,556,49,116,1,1,1
-727,42,591,565,48,117,1,1,1
-728,42,592,563,49,119,1,1,1
-729,42,594,562,49,120,1,1,1
-730,42,596,565,48,121,1,1,1
-731,42,597,564,48,122,1,1,1
-732,42,598,563,49,123,1,1,1
-733,42,600,563,49,124,1,1,1
-734,42,602,559,50,124,1,1,1
-735,42,603,565,49,122,1,1,1
-736,42,604,558,50,123,1,1,1
-737,42,605,560,50,124,1,1,1
-738,42,607,563,50,124,1,1,1
-739,42,608,564,49,126,1,1,1
-740,42,609,566,49,127,1,1,1
-741,42,608,567,49,128,1,1,1
-742,42,607,568,49,129,1,1,1
-743,42,606,569,50,131,1,1,1
-744,42,605,570,50,132,1,1,1
-745,42,604,571,51,134,1,1,1
-746,42,603,572,51,135,1,1,1
-747,42,602,573,51,136,1,1,1
-748,42,601,574,52,138,1,1,1
-749,42,600,575,52,139,1,1,1
-750,42,599,576,53,141,1,1,1
-658,43,452,516,23,48,1,1,1
-659,43,452,520,22,43,1,1,1
-660,43,456,516,22,44,1,1,1
-661,43,461,515,22,44,1,1,1
-662,43,467,514,22,44,1,1,1
-663,43,474,509,23,46,1,1,1
-664,43,482,505,23,48,1,1,1
-665,43,488,503,23,48,1,1,1
-666,43,495,502,23,48,1,1,1
-667,43,502,500,22,48,1,1,1
-668,43,509,499,22,48,1,1,1
-669,43,516,498,22,48,1,1,1
-670,43,522,496,22,48,1,1,1
-671,43,529,494,22,48,1,1,1
-672,43,535,492,23,48,1,1,1
-673,43,542,490,23,48,1,1,1
-674,43,548,484,23,48,1,1,1
-675,43,555,478,23,48,1,1,0.82143
-676,43,560,481,23,48,1,1,1
-677,43,569,479,23,48,1,1,0.85714
-678,43,576,482,23,48,1,1,0.77551
-679,43,583,491,23,48,1,1,1
-680,43,590,487,23,48,1,1,1
-681,43,593,511,23,48,1,1,1
-682,43,597,531,23,48,1,1,1
-683,43,602,502,23,48,1,1,0.79592
-684,43,608,495,23,48,1,1,0.82568
-685,43,614,490,23,48,1,1,0.82993
-686,43,621,486,23,48,1,1,0.78571
-687,43,627,484,23,48,1,1,1
-688,43,633,482,23,48,1,1,0.85714
-689,43,640,480,22,48,1,1,0.84738
-690,43,646,478,22,48,1,1,0.84738
-691,43,652,477,22,48,1,1,1
-692,43,658,476,22,48,1,1,0.92014
-693,43,664,476,21,48,1,1,1
-694,43,670,477,21,48,1,1,0.92022
-695,43,676,478,21,48,1,1,0.92022
-696,43,682,478,21,49,1,1,0.96
-697,43,688,479,21,49,1,1,0.92
-698,43,694,480,21,49,1,1,0.87455
-699,43,700,481,21,49,1,1,0.87455
-700,43,705,481,21,50,1,1,0.918
-701,43,711,482,21,50,1,1,0.87968
-702,43,716,483,21,50,1,1,0.918
-703,43,722,484,21,51,1,1,0.79021
-704,43,725,485,21,52,1,1,0.91938
-705,43,729,487,21,52,1,1,0.83533
-706,43,733,489,21,52,1,1,0.87393
-707,43,737,491,21,52,1,1,0.88165
-708,43,741,493,21,53,1,1,0.87626
-709,43,745,496,21,53,1,1,0.83838
-710,43,748,499,22,53,1,1,0.85507
-711,43,752,502,22,53,1,1,0.77295
-712,43,756,505,22,54,1,1,0.81028
-713,43,758,503,22,55,1,1,0.8882
-714,43,762,511,22,55,1,1,0.88587
-715,43,765,510,22,56,1,1,1
-716,43,768,510,22,56,1,1,0.81312
-717,43,771,510,22,57,1,1,1
-718,43,772,511,22,57,1,1,1
-719,43,779,512,19,56,1,1,1
-720,43,781,513,20,56,1,1,1
-721,43,784,514,21,56,1,1,1
-722,43,787,515,21,56,1,1,1
-723,43,790,516,22,56,1,1,1
-724,43,793,524,22,56,1,1,0.92372
-725,43,796,523,23,56,1,1,0.92836
-726,43,800,523,23,56,1,1,0.96418
-727,43,802,530,24,56,1,1,1
-728,43,806,529,24,56,1,1,0.89684
-729,43,810,529,24,55,1,1,1
-730,43,813,532,25,56,1,1,1
-731,43,814,528,25,56,1,1,0.83131
-732,43,818,529,25,56,1,1,0.86235
-733,43,820,527,26,57,1,1,0.84036
-734,43,823,526,26,57,1,1,0.83078
-735,43,826,524,26,58,1,1,0.80414
-736,43,829,523,26,58,1,1,0.80038
-737,43,832,522,26,58,1,1,1
-738,43,834,523,26,58,1,1,1
-739,43,836,524,26,58,1,1,0.73384
-740,43,837,525,26,58,1,1,0.70621
-741,43,838,526,26,58,1,1,0.83679
-742,43,840,527,26,59,1,1,0.84568
-743,43,841,527,25,59,1,1,0.83974
-744,43,842,528,25,59,1,1,0.80769
-745,43,843,529,25,59,1,1,0.80385
-746,43,844,529,25,60,1,1,0.83922
-747,43,845,530,25,60,1,1,0.83291
-748,43,846,531,25,60,1,1,0.82976
-749,43,847,532,25,60,1,1,0.86381
-750,43,847,532,25,60,1,1,0.86381
-9,44,1285,503,15,45,1,1,1
-10,44,1285,512,14,45,1,1,1
-11,44,1288,499,15,43,1,1,1
-12,44,1288,507,15,43,1,1,1
-13,44,1292,499,15,43,1,1,1
-14,44,1292,498,15,43,1,1,1
-15,44,1293,498,15,43,1,1,1
-16,44,1294,497,15,44,1,1,1
-17,44,1295,497,14,44,1,1,1
-18,44,1296,496,14,45,1,1,1
-19,44,1297,496,14,45,1,1,1
-20,44,1298,497,14,45,1,1,1
-21,44,1299,498,14,45,1,1,1
-22,44,1300,500,14,45,1,1,1
-23,44,1302,501,14,45,1,1,1
-24,44,1303,503,14,45,1,1,1
-25,44,1304,504,14,45,1,1,1
-26,44,1306,505,14,45,1,1,1
-27,44,1307,507,14,45,1,1,1
-28,44,1308,508,14,45,1,1,1
-29,44,1310,510,14,45,1,1,1
-30,44,1310,514,14,45,1,1,0.97246
-233,45,1136,526,27,79,1,1,0.0875
-234,45,1139,525,27,80,1,1,0.28219
-235,45,1142,524,27,81,1,1,0.48432
-236,45,1146,523,26,82,1,1,0.66979
-237,45,1149,522,26,83,1,1,0.83466
-238,45,1153,522,26,83,1,1,1
-239,45,1157,522,25,83,1,1,1
-240,45,1161,522,25,83,1,1,1
-241,45,1165,522,25,83,1,1,1
-242,45,1169,522,24,83,1,1,1
-243,45,1173,522,24,83,1,1,1
-244,45,1177,522,24,84,1,1,1
-245,45,1181,522,24,85,1,1,0.86977
-246,45,1185,522,25,86,1,1,0.67286
-247,45,1189,522,26,87,1,1,0.55682
-248,45,1193,523,27,87,1,1,0.53409
-249,45,1197,522,28,85,1,1,0.55814
-250,45,1202,521,28,84,1,1,0.56471
-251,45,1207,521,28,82,1,1,0.56627
-252,45,1212,520,28,81,1,1,0.58537
-253,45,1217,519,28,80,1,1,0.59259
-254,45,1222,519,28,78,1,1,0.58228
-255,45,1229,518,26,78,1,1,0.58228
-256,45,1236,518,25,78,1,1,0.55696
-257,45,1243,518,24,74,1,1,0.57333
-258,45,1250,517,24,75,1,1,0.56579
-259,45,1257,517,25,75,1,1,0.1913
-260,45,1264,516,25,76,1,1,0.16783
-261,45,1272,516,25,77,1,1,0.22239
-262,45,1280,519,24,74,1,1,0.19733
-263,45,1287,519,24,80,1,1,0.16444
-264,45,1294,519,24,86,1,1,0.13609
-265,45,1302,519,23,92,1,1,0.19892
-266,45,1305,519,26,93,1,1,0.41411
-267,45,1312,525,30,87,1,1,0.54839
-268,45,1321,520,26,78,1,1,0.48148
-269,45,1326,529,33,87,1,1,0.55882
-270,45,1334,528,32,87,1,1,0.54545
-271,45,1342,527,31,87,1,1,0.53125
-272,45,1350,526,30,87,1,1,0.48387
-273,45,1358,525,29,87,1,1,0.46667
-274,45,1366,524,28,87,1,1,0.44828
-275,45,1374,523,27,87,1,1,0.42857
-276,45,1383,523,25,86,1,1,0.38462
-277,45,1392,522,24,90,1,1,0.28
-43,46,1666,505,21,53,1,1,0.7037
-44,46,1667,506,21,53,1,1,0.7037
-45,46,1668,507,22,54,1,1,0.69091
-46,46,1669,508,22,54,1,1,0.67273
-47,46,1670,509,23,55,1,1,0.66071
-48,46,1672,510,23,56,1,1,0.64912
-49,46,1671,510,24,56,1,1,0.73333
-50,46,1670,511,26,56,1,1,0.92982
-51,46,1669,512,28,56,1,1,0.81246
-52,46,1668,513,29,55,1,1,0.75
-53,46,1667,514,31,55,1,1,0.6702
-54,46,1667,515,32,55,1,1,0.59524
-55,46,1666,514,32,55,1,1,0.50649
-56,46,1665,513,32,55,1,1,0.41937
-57,46,1664,512,32,55,1,1,0.33929
-58,46,1664,511,32,56,1,1,0.35088
-59,46,1666,508,27,55,1,1,0.45281
-60,46,1668,506,22,53,1,1,0.51691
-61,46,1671,504,17,52,1,1,0.60377
-62,46,1665,511,29,55,1,1,0.64762
-63,46,1662,491,31,57,1,1,0.88739
-64,46,1662,510,31,57,1,1,0.85668
-65,46,1662,504,31,57,1,1,0.94828
-66,46,1663,498,30,58,1,1,1
-67,46,1662,513,29,58,1,1,0.91695
-68,46,1658,503,29,59,1,1,0.72778
-69,46,1662,513,27,57,1,1,0.66749
-70,46,1660,509,26,57,1,1,0.553
-1,47,792,509,16,45,1,1,0.79156
-2,47,792,497,16,46,1,1,0.85357
-3,47,792,507,16,46,1,1,0.97121
-4,47,792,504,17,45,1,1,0.78744
-5,47,795,503,16,46,1,1,0.82353
-6,47,797,514,16,45,1,1,0.76471
-7,47,795,505,16,45,1,1,0.88491
-8,47,795,513,16,45,1,1,0.85678
-9,47,795,512,16,45,1,1,0.88235
-10,47,795,511,16,45,1,1,0.88235
-11,47,794,510,16,45,1,1,0.94118
-12,47,795,515,16,45,1,1,1
-13,47,793,502,20,44,1,1,1
-14,47,792,506,20,44,1,1,1
-15,47,793,506,19,44,1,1,1
-16,47,794,504,19,45,1,1,1
-17,47,793,504,19,45,1,1,1
-18,47,793,505,18,45,1,1,1
-19,47,792,506,18,45,1,1,1
-20,47,792,507,17,45,1,1,1
-21,47,792,508,16,45,1,1,1
-22,47,791,509,17,45,1,1,1
-23,47,793,507,16,46,1,1,0.85982
-24,47,792,509,16,46,1,1,0.40426
-25,47,792,511,16,46,1,1,0.48936
-26,47,792,513,16,46,1,1,0.42553
-27,47,792,516,16,45,1,1,0.45652
-28,47,791,518,16,46,1,1,0.46809
-29,47,792,519,16,45,1,1,0.43478
-30,47,791,522,17,46,1,1,0.40426
-31,47,792,534,17,45,1,1,0.3913
-32,47,791,526,17,46,1,1,0.48936
-33,47,790,519,17,47,1,1,0.85532
-34,47,790,526,16,47,1,1,1
-35,47,791,517,16,48,1,1,1
-36,47,790,514,17,48,1,1,1
-37,47,790,511,17,49,1,1,1
-38,47,790,508,17,50,1,1,1
-39,47,790,506,18,50,1,1,1
-40,47,790,506,18,50,1,1,1
-41,47,791,506,18,51,1,1,1
-42,47,791,506,17,51,1,1,1
-43,47,791,507,17,51,1,1,1
-44,47,791,508,17,51,1,1,1
-45,47,791,509,17,51,1,1,1
-46,47,791,510,17,51,1,1,0.66667
-47,47,791,511,17,51,1,1,0.61111
-48,47,791,512,17,51,1,1,0.61111
-49,47,791,513,17,51,1,1,0.55556
-50,47,791,514,17,51,1,1,0.55556
-51,47,791,515,17,51,1,1,0.55556
-52,47,790,515,17,51,1,1,0.55556
-53,47,789,515,17,51,1,1,0.61111
-54,47,788,515,17,51,1,1,0.61111
-55,47,788,515,17,51,1,1,0.61111
-56,47,787,514,17,51,1,1,0.66667
-57,47,786,513,17,51,1,1,0.66667
-58,47,786,512,17,51,1,1,0.61111
-59,47,785,511,17,51,1,1,0.61111
-60,47,784,510,17,51,1,1,0.61111
-61,47,784,509,17,51,1,1,0.55556
-62,47,784,505,17,52,1,1,0.55556
-63,47,782,512,18,51,1,1,0.57895
-64,47,783,507,17,51,1,1,0.5
-65,47,779,510,17,51,1,1,0.66667
-66,47,780,514,18,51,1,1,0.52632
-67,47,781,506,18,56,1,1,0.42105
-68,47,778,507,18,55,1,1,0.42105
-69,47,775,508,19,54,1,1,0.4
-70,47,772,509,20,53,1,1,0.47619
-71,47,769,510,21,52,1,1,0.5
-72,47,767,509,20,52,1,1,0.42857
-73,47,765,508,20,53,1,1,0.47619
-74,47,763,508,20,53,1,1,0.42857
-75,47,761,507,20,54,1,1,0.42857
-76,47,759,507,20,53,1,1,0.42857
-77,47,757,506,20,54,1,1,0.42857
-78,47,755,506,20,54,1,1,0.42857
-79,47,753,505,20,55,1,1,0.42857
-80,47,751,505,20,55,1,1,0.42857
-81,47,746,504,21,55,1,1,0.45455
-82,47,742,505,21,55,1,1,0.45455
-83,47,739,506,20,55,1,1,0.42857
-84,47,735,507,20,56,1,1,0.42857
-85,47,732,508,20,56,1,1,0.42857
-86,47,728,510,20,56,1,1,0.42857
-87,47,725,511,19,56,1,1,0.4
-88,47,721,512,20,56,1,1,0.42857
-89,47,718,513,19,57,1,1,1
-90,47,714,514,19,57,1,1,0.4
-91,47,711,516,19,57,1,1,0.4
-92,47,707,516,19,58,1,1,0.45
-93,47,703,517,19,58,1,1,0.55
-94,47,699,518,19,58,1,1,0.6
-95,47,695,519,19,58,1,1,0.5
-96,47,691,520,19,58,1,1,0.45
-97,47,687,520,19,59,1,1,0.5
-98,47,683,521,19,59,1,1,0.55
-99,47,679,522,19,59,1,1,0.65
-100,47,675,523,19,59,1,1,0.6
-101,47,671,524,19,60,1,1,0.75
-102,47,666,523,19,61,1,1,0.55
-103,47,662,523,19,61,1,1,0.55
-104,47,658,523,19,61,1,1,0.7
-105,47,653,522,19,62,1,1,0.6
-106,47,649,522,19,62,1,1,1
-107,47,645,522,19,62,1,1,0.7
-108,47,640,521,19,63,1,1,0.65
-109,47,636,521,19,63,1,1,0.75
-110,47,632,521,19,63,1,1,0.8
-111,47,628,521,19,64,1,1,0.85
-112,47,623,521,19,64,1,1,0.85462
-113,47,618,521,19,64,1,1,0.85462
-114,47,613,521,19,64,1,1,0.85538
-115,47,609,521,19,64,1,1,0.91077
-116,47,604,522,19,64,1,1,0.91077
-117,47,599,522,19,64,1,1,0.86615
-118,47,595,522,19,64,1,1,0.82154
-119,47,590,522,19,64,1,1,0.82462
-120,47,585,522,19,64,1,1,0.82462
-121,47,581,523,19,64,1,1,0.78077
-122,47,576,523,19,64,1,1,0.73692
-123,47,571,524,19,64,1,1,0.73231
-124,47,566,525,19,64,1,1,0.73231
-125,47,561,525,19,64,1,1,0.73231
-126,47,557,526,19,64,1,1,0.68231
-127,47,552,527,19,64,1,1,0.68231
-128,47,547,527,19,64,1,1,0.68231
-129,47,542,528,19,64,1,1,0.63077
-130,47,537,529,19,64,1,1,0.63077
-131,47,533,530,19,64,1,1,0.57769
-132,47,528,530,19,64,1,1,0.57769
-133,47,523,530,19,64,1,1,0.58462
-134,47,518,530,19,64,1,1,0.58462
-135,47,513,530,20,64,1,1,0.56044
-136,47,509,530,19,64,1,1,0.54615
-137,47,504,531,19,63,1,1,0.49297
-138,47,499,531,20,63,1,1,0.47321
-139,47,494,531,20,63,1,1,0.48214
-140,47,490,531,19,64,1,1,0.45538
-141,47,485,531,19,64,1,1,0.45538
-142,47,480,531,20,64,1,1,0.44762
-143,47,475,532,20,63,1,1,0.43899
-144,47,471,532,19,63,1,1,0.36562
-145,47,466,532,20,63,1,1,0.29613
-146,47,461,532,20,63,1,1,0.29092
-147,47,456,532,20,63,1,1,0.29092
-148,47,452,533,20,63,1,1,0.2381
-149,47,447,534,19,63,1,1,0.25
-150,47,442,535,19,63,1,1,0.30859
-151,47,437,536,19,64,1,1,0.30769
-152,47,430,536,19,65,1,1,0.25455
-153,47,424,537,19,65,1,1,0.25455
-154,47,418,538,19,65,1,1,0.31818
-155,47,411,539,20,65,1,1,0.29582
-156,47,405,540,20,66,1,1,0.30064
-157,47,399,540,19,67,1,1,0.27941
-158,47,392,541,20,67,1,1,0.31723
-159,47,386,542,20,67,1,1,0.32353
-160,47,380,543,20,67,1,1,0.32353
-161,47,374,544,20,68,1,1,0.33402
-162,47,369,544,20,68,1,1,0.2864
-163,47,364,544,20,69,1,1,0.2898
-164,47,359,544,20,69,1,1,0.27823
-165,47,355,544,19,70,1,1,0.24155
-166,47,350,545,19,69,1,1,0.23286
-167,47,345,545,19,70,1,1,0.23239
-168,47,341,545,18,70,1,1,0.19199
-169,47,336,545,18,71,1,1,0.19371
-170,47,331,545,18,71,1,1,0.19371
-171,47,327,546,18,71,1,1,0.14181
-172,47,322,546,18,71,1,1,0.25439
-173,47,317,546,19,71,1,1,0.29167
-174,47,313,546,18,71,1,1,0.29825
-175,47,308,546,19,71,1,1,0.33333
-176,47,303,546,20,71,1,1,0.36508
-177,47,299,546,19,71,1,1,0.33333
-178,47,294,546,20,71,1,1,0.36508
-179,47,290,546,20,72,1,1,0.26288
-180,47,285,547,20,73,1,1,0.29537
-181,47,281,549,19,74,1,1,0.25
-182,47,276,549,19,75,1,1,0.3
-183,47,272,550,19,75,1,1,0.3
-184,47,268,551,19,75,1,1,0.34868
-185,47,264,552,19,75,1,1,0.34868
-186,47,260,553,19,75,1,1,0.30526
-187,47,256,554,19,75,1,1,0.30526
-188,47,251,555,20,76,1,1,0.29561
-189,47,247,556,20,76,1,1,0.29561
-190,47,243,557,20,76,1,1,0.25417
-191,47,239,558,20,76,1,1,0.25417
-192,47,235,558,19,77,1,1,0.21538
-193,47,231,559,19,77,1,1,0.21538
-194,47,227,560,19,77,1,1,0.21538
-195,47,222,561,20,78,1,1,0.25136
-196,47,218,562,20,78,1,1,0.25136
-197,47,214,563,20,78,1,1,0.25136
-198,47,210,564,20,78,1,1,0.25136
-199,47,206,565,20,78,1,1,0.25136
-200,47,202,566,20,78,1,1,0.25136
-201,47,198,567,20,79,1,1,0.25
-202,47,194,567,20,80,1,1,0.21811
-203,47,190,568,21,80,1,1,0.21437
-204,47,186,569,21,80,1,1,0.21437
-205,47,183,570,21,80,1,1,0.17508
-206,47,179,571,21,80,1,1,0.17508
-207,47,175,571,22,81,1,1,0.18346
-208,47,172,572,21,81,1,1,0.14634
-209,47,168,573,22,81,1,1,0.14634
-210,47,164,574,22,81,1,1,0.14634
-211,47,161,575,22,82,1,1,0.14458
-212,47,158,575,22,82,1,1,0.15663
-213,47,155,575,23,83,1,1,0.10863
-214,47,153,576,22,83,1,1,0.11077
-215,47,150,576,23,83,1,1,0.17857
-216,47,148,577,23,83,1,1,0.17857
-217,47,145,577,23,84,1,1,0.14118
-218,47,142,577,24,84,1,1,0.15294
-219,47,140,578,23,84,1,1,0.15294
-220,47,137,578,24,85,1,1,0.16279
-221,47,135,579,24,85,1,1,0.17442
-222,47,132,580,25,85,1,1,0.17442
-223,47,130,581,25,85,1,1,0.17442
-224,47,128,582,25,85,1,1,0.18605
-225,47,126,583,25,86,1,1,0.17241
-226,47,124,584,25,86,1,1,0.19319
-227,47,122,585,25,86,1,1,0.22546
-228,47,120,586,25,87,1,1,0.15909
-229,47,118,587,25,87,1,1,0.067308
-230,47,116,588,25,87,1,1,0.0625
-231,47,114,590,26,87,1,1,0.050926
-232,47,113,589,26,87,1,1,0.050505
-233,47,112,589,26,87,1,1,0.055556
-234,47,111,588,26,88,1,1,0.059509
-235,47,110,588,27,88,1,1,0.0626
-236,47,110,587,26,89,1,1,0.21811
-237,47,109,587,26,88,1,1,0.20932
-238,47,108,586,27,89,1,1,0.20556
-239,47,107,586,27,89,1,1,0.072222
-240,47,106,585,27,90,1,1,0.066327
-241,47,106,585,27,90,1,1,0.061224
-242,47,106,585,27,91,1,1,0.050466
-243,47,107,586,27,91,1,1,0.040373
-244,47,107,587,27,91,1,1,0.035326
-245,47,108,587,27,92,1,1,0.043011
-246,47,108,588,27,92,1,1,0.037634
-247,47,109,589,27,92,1,1,0.039939
-248,47,109,589,27,93,1,1,0.053191
-249,47,110,590,27,93,1,1,0.058511
-250,47,110,591,27,93,1,1,0.069149
-251,47,111,592,27,93,1,1,0.074468
-252,47,113,593,27,93,1,1,0.074468
-253,47,115,594,28,93,1,1,0.0719
-254,47,118,595,27,94,1,1,0.068421
-255,47,120,596,28,94,1,1,0.071143
-256,47,123,597,27,95,1,1,0.067708
-257,47,125,598,28,95,1,1,0.065374
-258,47,127,599,28,95,1,1,0.065374
-259,47,130,600,28,96,1,1,0.075009
-260,47,132,601,28,96,1,1,0.0647
-261,47,135,603,28,96,1,1,0.15393
-262,47,137,602,28,96,1,1,0.055457
-263,47,139,602,29,96,1,1,0.053608
-264,47,142,601,28,97,1,1,0.063336
-265,47,144,601,29,97,1,1,0.061905
-266,47,147,600,29,98,1,1,0.17003
-267,47,149,600,29,97,1,1,0.071429
-268,47,152,599,29,98,1,1,0.075421
-269,47,154,599,30,98,1,1,0.046595
-270,47,157,598,29,99,1,1,0.023333
-271,47,159,598,30,99,1,1,0.032258
-272,47,162,597,30,100,1,1,0.044714
-273,47,164,597,30,99,1,1,0.089677
-274,47,167,596,30,100,1,1,0.073778
-275,47,169,596,31,100,1,1,0.11077
-276,47,172,595,30,101,1,1,0.1303
-277,47,174,595,31,101,1,1,0.16728
-278,47,177,595,31,101,1,1,0.1636
-279,47,179,596,31,102,1,1,0.16292
-280,47,181,598,32,102,1,1,0.15799
-281,47,184,600,32,102,1,1,0.13122
-282,47,186,601,33,102,1,1,0.13678
-283,47,189,602,33,103,1,1,0.12048
-284,47,192,603,33,104,1,1,0.090196
-285,47,195,604,33,105,1,1,0.091565
-286,47,198,605,34,106,1,1,0.08972
-287,47,201,606,34,107,1,1,0.089947
-288,47,204,607,34,108,1,1,0.094364
-289,47,207,608,34,109,1,1,0.33818
-290,47,210,609,34,110,1,1,0.37761
-291,47,213,610,35,111,1,1,0.41716
-292,47,214,610,35,112,1,1,0.39921
-293,47,215,611,35,112,1,1,0.10914
-294,47,216,612,35,112,1,1,0.068584
-295,47,218,613,35,112,1,1,0.071288
-296,47,219,614,35,113,1,1,0.075292
-297,47,220,614,35,114,1,1,0.078986
-298,47,222,615,35,114,1,1,0.081643
-299,47,223,616,35,114,1,1,0.081643
-300,47,224,617,35,114,1,1,0.083816
-301,47,226,618,35,115,1,1,0.11207
-302,47,226,619,35,115,1,1,0.11398
-303,47,226,621,35,115,1,1,0.11638
-304,47,226,622,36,116,1,1,0.12566
-305,47,226,624,36,116,1,1,0.099099
-306,47,227,625,36,117,1,1,0.095282
-307,47,227,627,36,117,1,1,0.12437
-308,47,227,628,36,118,1,1,0.10629
-309,47,227,630,37,118,1,1,0.10349
-310,47,227,631,37,119,1,1,0.11118
-311,47,228,633,37,119,1,1,0.10548
-312,47,227,633,38,120,1,1,0.10468
-313,47,227,634,38,121,1,1,0.10656
-314,47,227,635,38,121,1,1,0.10025
-315,47,227,635,38,123,1,1,0.1005
-316,47,227,636,39,123,1,1,0.094355
-317,47,227,637,39,124,1,1,0.0936
-318,47,227,637,39,125,1,1,0.093254
-319,47,227,638,39,126,1,1,0.090354
-320,47,227,639,39,126,1,1,0.088189
-321,47,227,640,40,127,1,1,0.082698
-322,47,224,639,40,128,1,1,0.093212
-323,47,222,638,40,130,1,1,0.096071
-324,47,220,638,39,130,1,1,0.1145
-325,47,217,637,40,132,1,1,0.12195
-326,47,215,637,40,132,1,1,0.10526
-327,47,213,636,39,134,1,1,0.1063
-328,47,210,635,40,135,1,1,0.11029
-329,47,208,635,39,136,1,1,0.10182
-330,47,206,634,39,137,1,1,0.10054
-331,47,204,634,39,138,1,1,0.1223
-332,47,200,632,39,139,1,1,0.12321
-333,47,196,631,39,139,1,1,0.12321
-334,47,193,630,39,139,1,1,0.12161
-335,47,189,629,39,139,1,1,0.12161
-336,47,186,628,39,139,1,1,0.10321
-337,47,181,631,39,139,1,1,0.10821
-338,47,177,634,39,139,1,1,0.10554
-339,47,173,637,38,140,1,1,0.11057
-340,47,169,640,38,140,1,1,0.10329
-341,47,165,643,38,141,1,1,0.099675
-342,47,160,646,38,142,1,1,0.10454
-343,47,155,650,38,142,1,1,0.11655
-344,47,150,654,38,142,1,1,0.10974
-345,47,145,659,38,143,1,1,0.10897
-346,47,140,664,38,144,1,1,0.10504
-347,47,135,670,38,145,1,1,0.11661
-348,47,130,671,38,146,1,1,0.10413
-349,47,125,673,38,147,1,1,0.10049
-350,47,120,675,38,148,1,1,0.091378
-351,47,115,677,38,149,1,1,0.084274
-352,47,109,677,38,151,1,1,0.087045
-353,47,104,678,38,152,1,1,0.09033
-354,47,98,679,37,153,1,1,0.090567
-355,47,92,680,37,154,1,1,0.095076
-356,47,86,681,37,155,1,1,0.10138
-357,47,80,682,37,157,1,1,0.1001
-358,47,74,683,37,158,1,1,0.10377
-359,47,68,684,37,159,1,1,0.10625
-360,47,62,685,37,160,1,1,0.10788
-361,47,56,686,37,162,1,1,0.22054
-362,47,48,690,37,163,1,1,0.21438
-363,47,41,694,37,164,1,1,0.10526
-364,47,34,698,37,165,1,1,0.25428
-365,47,27,702,36,166,1,1,0.23353
-366,47,20,706,36,167,1,1,0.25193
-367,47,12,710,37,168,1,1,0.2711
-368,47,5,714,36,169,1,1,0.24595
-369,47,-2,718,36,170,1,1,0.26174
-370,47,-9,722,36,171,1,1,0.26398
-291,48,218,621,33,99,1,1,0.088235
-292,48,219,621,33,100,1,1,0
-293,48,221,622,33,101,1,1,0.11765
-294,48,222,623,33,102,1,1,0.43033
-295,48,224,624,33,103,1,1,0.42986
-296,48,226,625,33,104,1,1,0.45658
-297,48,227,625,33,105,1,1,0.43479
-298,48,229,626,33,106,1,1,0.4343
-299,48,230,627,33,107,1,1,0.43382
-300,48,232,628,33,108,1,1,0.43335
-301,48,234,629,33,109,1,1,0.43289
-302,48,234,630,33,110,1,1,0.438
-303,48,235,632,33,111,1,1,0.4375
-304,48,236,634,33,111,1,1,0.46429
-305,48,236,635,33,113,1,1,0.44195
-306,48,237,637,33,114,1,1,0.48005
-307,48,238,639,33,114,1,1,0.51202
-308,48,238,640,33,116,1,1,0.49849
-309,48,239,642,33,116,1,1,0.54274
-310,48,240,644,33,117,1,1,0.5653
-311,48,241,646,33,118,1,1,0.58848
-312,48,240,646,33,119,1,1,0.56078
-313,48,240,647,33,119,1,1,0.56078
-314,48,240,647,33,121,1,1,0.59137
-315,48,239,648,34,121,1,1,0.57283
-316,48,239,648,33,122,1,1,0.56385
-317,48,239,649,33,123,1,1,0.56357
-318,48,238,649,34,124,1,1,0.55314
-319,48,238,650,34,124,1,1,0.60229
-320,48,238,651,34,125,1,1,0.6254
-321,48,240,651,33,127,1,1,0.69669
-322,48,237,650,33,128,1,1,0.64729
-323,48,234,650,33,129,1,1,0.59276
-324,48,232,650,33,130,1,1,0.56533
-325,48,229,650,33,130,1,1,0.51504
-326,48,227,650,33,131,1,1,0.56863
-327,48,224,649,33,133,1,1,0.57155
-328,48,221,649,33,133,1,1,0.57155
-329,48,219,649,33,134,1,1,0.61874
-330,48,216,649,33,135,1,1,0.61548
-331,48,214,649,33,136,1,1,0.63997
-332,48,210,647,33,137,1,1,0.64258
-333,48,206,646,33,137,1,1,0.61509
-334,48,202,645,33,137,1,1,0.5876
-335,48,198,644,33,137,1,1,0.5601
-336,48,193,646,33,137,1,1,0.55669
-337,48,189,649,33,137,1,1,0.54987
-338,48,185,651,33,138,1,1,0.58421
-339,48,181,654,32,137,1,1,0.60035
-340,48,177,656,32,138,1,1,0.60323
-341,48,173,659,32,138,1,1,0.60323
-342,48,167,663,32,139,1,1,0.54286
-343,48,162,668,32,140,1,1,0.59983
-344,48,156,672,33,142,1,1,0.61415
-345,48,151,677,33,142,1,1,0.64171
-346,48,145,681,34,144,1,1,0.62759
-347,48,140,686,34,145,1,1,0.64892
-348,48,134,688,34,147,1,1,0.65116
-349,48,129,689,34,147,1,1,0.67799
-350,48,124,690,34,148,1,1,0.7047
-351,48,120,691,33,149,1,1,0.75118
-352,48,113,692,33,150,1,1,0.69575
-353,48,107,694,33,151,1,1,0.69563
-354,48,100,695,33,153,1,1,0.66769
-355,48,94,697,33,153,1,1,0.63751
-356,48,87,699,34,154,1,1,0.61806
-357,48,81,700,33,156,1,1,0.60659
-358,48,74,702,34,156,1,1,0.56324
-359,48,68,703,33,158,1,1,0.60895
-360,48,61,705,34,159,1,1,0.6225
-361,48,55,707,34,160,1,1,0.67844
-362,48,47,710,34,161,1,1,0.6515
-363,48,39,714,34,162,1,1,0.64908
-364,48,31,717,34,163,1,1,0.62195
-365,48,24,721,34,164,1,1,0.64658
-366,48,16,724,34,165,1,1,0.61928
-367,48,8,728,34,166,1,1,0.62156
-368,48,1,731,34,167,1,1,1
-369,48,-7,735,34,168,1,1,0.77143
-370,48,-15,738,34,169,1,1,0.54286
-1,49,828,513,16,42,1,1,1
-2,49,828,506,16,42,1,1,1
-3,49,827,511,16,42,1,1,1
-4,49,829,510,16,42,1,1,1
-5,49,830,509,16,42,1,1,1
-6,49,831,520,16,42,1,1,1
-7,49,833,512,16,42,1,1,1
-8,49,831,519,16,43,1,1,1
-9,49,830,519,16,43,1,1,1
-10,49,830,519,16,43,1,1,1
-11,49,830,519,16,44,1,1,1
-12,49,831,522,16,44,1,1,1
-13,49,831,510,16,44,1,1,1
-14,49,831,514,16,44,1,1,1
-15,49,831,514,16,44,1,1,1
-16,49,830,514,16,44,1,1,1
-17,49,830,514,16,44,1,1,1
-18,49,830,514,16,45,1,1,1
-19,49,829,514,16,45,1,1,1
-20,49,829,514,16,45,1,1,1
-21,49,829,514,16,46,1,1,0.67584
-22,49,829,515,16,46,1,1,0.21277
-23,49,829,516,16,46,1,1,0.21277
-24,49,829,517,16,47,1,1,0.22917
-25,49,829,519,16,47,1,1,0.3125
-26,49,829,521,16,47,1,1,0.25
-27,49,829,524,16,47,1,1,0.27083
-28,49,829,524,16,47,1,1,0.33333
-29,49,830,524,16,48,1,1,0.30612
-30,49,829,531,16,48,1,1,0.20408
-31,49,828,538,16,48,1,1,0.83193
-32,49,828,532,16,49,1,1,1
-33,49,828,527,17,49,1,1,1
-34,49,828,530,17,50,1,1,1
-35,49,827,521,17,50,1,1,1
-36,49,827,518,17,50,1,1,1
-37,49,827,515,17,51,1,1,1
-38,49,827,512,17,52,1,1,1
-39,49,827,510,18,52,1,1,1
-40,49,827,509,18,53,1,1,1
-41,49,827,509,19,53,1,1,1
-42,49,826,510,19,53,1,1,1
-43,49,825,511,19,53,1,1,1
-44,49,825,513,19,53,1,1,1
-45,49,825,513,19,54,1,1,1
-46,49,825,514,19,54,1,1,1
-47,49,825,515,19,54,1,1,1
-48,49,825,516,19,54,1,1,1
-49,49,825,517,19,54,1,1,1
-50,49,825,518,19,54,1,1,1
-51,49,826,519,19,54,1,1,1
-52,49,825,518,19,54,1,1,1
-53,49,824,517,19,54,1,1,1
-54,49,823,517,19,53,1,1,1
-55,49,822,516,19,54,1,1,1
-56,49,822,516,18,53,1,1,1
-57,49,821,515,18,53,1,1,1
-58,49,820,514,18,54,1,1,1
-59,49,819,514,18,53,1,1,1
-60,49,818,513,18,53,1,1,1
-61,49,818,513,18,53,1,1,1
-62,49,817,515,18,53,1,1,1
-63,49,816,517,18,53,1,1,1
-64,49,817,511,18,53,1,1,1
-65,49,814,514,18,53,1,1,1
-66,49,814,518,18,53,1,1,1
-67,49,813,512,18,53,1,1,1
-68,49,811,512,18,54,1,1,1
-69,49,809,513,18,54,1,1,1
-70,49,807,513,18,55,1,1,1
-71,49,805,514,18,55,1,1,1
-72,49,802,513,18,55,1,1,1
-73,49,799,513,18,55,1,1,1
-74,49,796,513,18,55,1,1,1
-75,49,793,513,18,55,1,1,1
-76,49,790,513,19,55,1,1,1
-77,49,787,512,19,56,1,1,1
-78,49,784,512,19,56,1,1,1
-79,49,781,512,19,56,1,1,1
-80,49,778,512,19,56,1,1,1
-81,49,775,512,20,56,1,1,1
-82,49,771,512,20,56,1,1,1
-83,49,767,513,20,56,1,1,1
-84,49,763,513,20,57,1,1,1
-85,49,760,514,20,57,1,1,1
-86,49,756,515,20,57,1,1,1
-87,49,752,516,20,57,1,1,1
-88,49,748,517,20,57,1,1,1
-89,49,744,518,20,57,1,1,1
-90,49,740,519,20,57,1,1,1
-91,49,737,520,20,58,1,1,1
-92,49,732,521,20,58,1,1,1
-93,49,728,523,20,58,1,1,1
-94,49,723,524,20,59,1,1,1
-95,49,719,526,20,59,1,1,1
-96,49,715,527,20,59,1,1,1
-97,49,711,528,20,60,1,1,1
-98,49,707,530,20,60,1,1,1
-99,49,702,529,20,60,1,1,1
-100,49,698,529,20,60,1,1,1
-101,49,694,529,20,60,1,1,1
-102,49,689,528,20,61,1,1,1
-103,49,684,528,20,61,1,1,1
-104,49,680,528,20,61,1,1,1
-105,49,675,528,20,61,1,1,1
-106,49,671,528,20,61,1,1,1
-107,49,666,527,20,62,1,1,1
-108,49,661,527,20,62,1,1,1
-109,49,657,527,20,62,1,1,1
-110,49,652,527,20,62,1,1,1
-111,49,648,527,20,62,1,1,1
-112,49,642,527,20,62,1,1,1
-113,49,637,527,20,63,1,1,1
-114,49,632,528,20,62,1,1,1
-115,49,627,528,20,63,1,1,1
-116,49,622,529,20,63,1,1,1
-117,49,616,529,21,63,1,1,1
-118,49,611,529,21,64,1,1,1
-119,49,606,530,21,63,1,1,1
-120,49,601,530,21,64,1,1,1
-121,49,596,531,21,64,1,1,1
-122,49,590,531,21,64,1,1,1
-123,49,585,531,21,65,1,1,1
-124,49,580,532,21,64,1,1,1
-125,49,575,532,21,65,1,1,1
-126,49,570,532,21,65,1,1,1
-127,49,565,533,21,65,1,1,1
-128,49,560,533,21,65,1,1,1
-129,49,554,533,22,66,1,1,1
-130,49,549,534,22,65,1,1,1
-131,49,544,534,22,66,1,1,1
-132,49,539,534,21,66,1,1,1
-133,49,534,535,21,66,1,1,1
-134,49,529,535,21,66,1,1,1
-135,49,524,535,21,67,1,1,1
-136,49,519,536,21,66,1,1,1
-137,49,513,536,22,67,1,1,1
-138,49,508,536,22,67,1,1,1
-139,49,503,537,22,67,1,1,1
-140,49,498,537,22,67,1,1,1
-141,49,493,537,22,68,1,1,1
-142,49,488,538,21,67,1,1,1
-143,49,483,538,21,68,1,1,1
-144,49,477,538,22,68,1,1,1
-145,49,472,539,22,68,1,1,1
-146,41,1,1,1
-226,49,125,598,27,82,1,1,1
-227,49,124,599,27,82,1,1,1
-228,49,120,600,27,83,1,1,1
-229,49,117,601,27,84,1,1,1
-230,49,115,601,27,84,1,1,1
-231,49,114,601,27,84,1,1,1
-232,49,112,601,27,85,1,1,1
-233,49,111,601,27,85,1,1,1
-234,49,109,601,27,86,1,1,1
-235,49,108,601,27,86,1,1,1
-236,49,107,601,27,87,1,1,1
-237,49,106,600,27,87,1,1,1
-238,49,106,599,27,88,1,1,1
-239,49,105,599,28,87,1,1,1
-240,49,105,598,28,88,1,1,1
-241,49,105,598,28,88,1,1,1
-242,49,105,598,28,89,1,1,1
-243,49,105,599,29,89,1,1,1
-244,49,106,600,28,89,1,1,1
-245,49,106,601,29,89,1,1,1
-246,49,107,602,28,90,1,1,1
-247,49,107,602,29,91,1,1,1
-248,49,107,603,29,91,1,1,1
-249,49,108,604,29,91,1,1,1
-250,49,108,605,29,91,1,1,1
-251,49,109,606,29,92,1,1,1
-252,49,111,607,29,92,1,1,1
-253,49,114,608,29,93,1,1,1
-254,49,116,609,29,93,1,1,1
-255,49,119,610,29,94,1,1,1
-256,49,121,611,29,95,1,1,1
-257,49,124,612,29,95,1,1,1
-258,49,126,613,29,96,1,1,1
-259,49,129,615,29,96,1,1,1
-260,49,131,615,29,96,1,1,1
-261,49,133,615,29,97,1,1,1
-262,49,136,615,29,97,1,1,1
-263,49,138,615,29,98,1,1,1
-264,49,141,616,29,98,1,1,1
-265,49,143,615,29,98,1,1,1
-266,49,146,614,29,99,1,1,1
-267,49,149,614,29,99,1,1,1
-268,49,152,613,29,99,1,1,1
-269,49,154,612,29,100,1,1,1
-270,49,157,612,29,100,1,1,1
-271,49,160,611,29,101,1,1,1
-272,49,163,610,29,101,1,1,1
-273,49,166,610,29,101,1,1,1
-274,49,168,609,29,102,1,1,1
-275,49,171,608,29,102,1,1,1
-276,49,174,608,29,102,1,1,1
-277,49,177,607,29,103,1,1,1
-278,49,180,607,29,103,1,1,1
-279,49,182,608,29,104,1,1,1
-280,49,184,610,29,104,1,1,1
-281,49,186,612,29,104,1,1,1
-282,49,188,614,30,104,1,1,1
-283,49,190,616,30,104,1,1,1
-284,49,192,617,30,106,1,1,1
-285,49,194,619,30,106,1,1,1
-286,49,196,621,31,106,1,1,1
-287,49,198,623,31,106,1,1,1
-288,49,200,625,31,106,1,1,1
-289,49,203,627,31,107,1,1,1
-290,49,204,627,31,108,1,1,1
-291,49,206,628,31,108,1,1,1
-292,49,207,629,32,108,1,1,1
-293,49,209,630,31,109,1,1,1
-294,49,210,631,32,109,1,1,1
-295,49,212,632,32,109,1,1,1
-296,49,214,633,31,109,1,1,1
-297,49,215,634,32,110,1,1,1
-298,49,217,635,32,110,1,1,1
-299,49,218,636,32,110,1,1,1
-300,49,220,637,32,110,1,1,1
-301,49,222,638,32,111,1,1,1
-302,49,222,640,32,111,1,1,1
-303,49,223,642,32,112,1,1,1
-304,49,223,644,32,112,1,1,1
-305,49,224,646,32,113,1,1,1
-306,49,223,645,32,113,1,1,1
-307,49,223,648,32,114,1,1,1
-308,49,224,652,32,114,1,1,1
-309,49,223,652,32,115,1,1,1
-310,49,223,653,32,115,1,1,1
-311,49,223,654,32,115,1,1,1
-312,49,223,654,32,117,1,1,1
-313,49,223,655,32,117,1,1,1
-314,49,223,656,31,117,1,1,1
-315,49,223,656,31,119,1,1,1
-316,49,223,657,31,119,1,1,1
-317,49,223,658,31,119,1,1,1
-318,49,223,659,31,120,1,1,1
-319,49,222,659,30,121,1,1,1
-320,49,221,659,30,122,1,1,1
-321,49,220,659,30,123,1,1,1
-322,49,219,660,30,123,1,1,1
-323,49,218,660,30,124,1,1,1
-324,49,217,660,30,125,1,1,1
-325,49,216,661,30,126,1,1,1
-326,49,212,661,30,126,1,1,1
-327,49,209,661,30,126,1,1,1
-328,49,206,661,30,127,1,1,1
-329,49,202,659,30,128,1,1,1
-330,49,198,658,31,129,1,1,1
-331,49,194,657,32,130,1,1,1
-332,49,190,656,32,130,1,1,1
-333,49,186,655,33,131,1,1,1
-334,49,182,654,34,132,1,1,1
-335,49,178,653,35,133,1,1,1
-336,49,173,654,35,134,1,1,1
-337,49,168,655,36,136,1,1,1
-338,49,162,659,37,136,1,1,1
-339,49,158,662,36,136,1,1,1
-340,49,154,665,36,137,1,1,1
-341,49,150,668,36,138,1,1,1
-342,49,146,671,36,139,1,1,1
-343,49,139,676,36,141,1,1,1
-344,49,133,681,36,141,1,1,1
-345,49,127,686,36,142,1,1,1
-346,49,122,691,36,143,1,1,1
-347,49,116,694,36,143,1,1,1
-348,49,110,697,36,144,1,1,1
-349,49,103,698,37,145,1,1,1
-350,49,97,699,37,147,1,1,1
-351,49,91,700,37,149,1,1,1
-352,49,84,701,39,151,1,1,1
-353,49,78,703,39,152,1,1,1
-354,49,72,704,39,154,1,1,1
-355,49,65,705,41,156,1,1,1
-356,49,59,706,41,158,1,1,1
-357,49,53,707,41,160,1,1,1
-358,49,47,709,42,161,1,1,1
-359,49,38,711,43,162,1,1,1
-360,49,30,714,44,163,1,1,1
-361,49,21,717,45,163,1,1,1
-362,49,13,720,46,164,1,1,1
-363,49,5,723,46,165,1,1,1
-364,49,-4,726,48,165,1,1,0.89796
-365,49,-12,729,48,166,1,1,0.73469
-366,49,-20,732,49,167,1,1,0.58
-367,49,-28,737,49,167,1,1,0.42
-1,50,776,508,15,46,1,1,0.46809
-2,50,776,498,14,45,1,1,0.5
-3,50,774,509,15,44,1,1,0.48889
-4,50,775,506,15,44,1,1,0.57222
-5,50,776,503,16,45,1,1,0.54348
-6,50,779,515,16,48,1,1,0.5006
-7,50,776,506,16,47,1,1,0.56863
-8,50,776,514,17,48,1,1,0.56463
-9,50,776,513,16,48,1,1,0.55822
-10,50,776,512,16,48,1,1,0.53061
-11,50,776,511,16,48,1,1,0.57143
-12,50,775,515,16,49,1,1,0.5
-13,50,774,506,17,47,1,1,0.46875
-14,50,773,506,17,47,1,1,0.5625
-15,50,773,507,17,47,1,1,0.54745
-16,50,772,507,17,47,1,1,0.54745
-17,50,772,508,17,47,1,1,0.52778
-18,50,772,509,17,47,1,1,0.47917
-19,50,771,509,17,47,1,1,0.5081
-20,50,771,510,17,46,1,1,0.49764
-21,50,770,511,18,46,1,1,0.52408
-22,50,770,511,17,46,1,1,0.51773
-23,50,769,512,18,45,1,1,0.57208
-24,50,769,513,18,45,1,1,0.59153
-25,50,768,514,18,45,1,1,0.53776
-26,50,768,515,18,45,1,1,0.3913
-27,50,767,516,18,45,1,1,0.45652
-28,50,767,518,18,45,1,1,0.47826
-29,50,767,519,18,43,1,1,0.45455
-30,50,765,523,18,46,1,1,0.38298
-31,50,765,535,18,41,1,1,0.40476
-32,50,764,527,19,46,1,1,0.46809
-33,50,764,520,20,50,1,1,0.43137
-34,50,764,524,20,50,1,1,0.48926
-35,50,763,519,20,50,1,1,0.55556
-36,50,762,514,21,50,1,1,0.63636
-37,50,761,510,22,49,1,1,0.68957
-38,50,762,509,21,49,1,1,0.67545
-39,50,762,507,21,49,1,1,0.64455
-40,50,762,506,21,48,1,1,0.65306
-41,50,762,505,22,48,1,1,0.69831
-42,50,761,505,22,49,1,1,0.70435
-43,50,761,506,21,49,1,1,0.69091
-44,50,760,507,22,49,1,1,0.71913
-45,50,760,508,21,49,1,1,0.69091
-46,50,759,509,22,49,1,1,0.70435
-47,50,759,510,21,49,1,1,0.69091
-48,50,758,511,21,49,1,1,0.70636
-49,50,758,512,21,49,1,1,0.72182
-50,50,757,513,21,49,1,1,0.69091
-51,50,757,514,21,49,1,1,0.69091
-52,50,756,513,21,49,1,1,0.70636
-53,50,755,512,21,49,1,1,0.73727
-54,50,754,511,21,49,1,1,0.73727
-55,50,754,511,21,49,1,1,0.73727
-56,50,753,510,21,49,1,1,0.75273
-57,50,752,509,21,49,1,1,0.76818
-58,50,752,509,21,49,1,1,0.72182
-59,50,751,508,21,49,1,1,0.72182
-60,50,750,507,21,49,1,1,0.72182
-61,50,750,507,21,49,1,1,0.74091
-62,50,748,504,22,50,1,1,0.75448
-63,50,746,512,22,51,1,1,0.70151
-64,50,747,504,21,52,1,1,0.69383
-65,50,744,507,21,54,1,1,0.70496
-66,50,744,512,21,55,1,1,0.67532
-67,50,741,505,21,54,1,1,0.69091
-68,50,740,511,21,56,1,1,0.66826
-69,50,738,509,20,56,1,1,0.68672
-70,50,736,508,20,56,1,1,0.68672
-71,50,734,507,20,56,1,1,0.7193
-72,50,730,506,20,56,1,1,0.6792
-73,50,727,506,20,56,1,1,0.65915
-74,50,724,505,19,57,1,1,0.65517
-75,50,720,505,20,57,1,1,0.65107
-76,50,717,504,20,58,1,1,0.67716
-77,50,714,504,19,57,1,1,0.66897
-78,50,710,503,20,58,1,1,0.69007
-79,50,707,503,19,58,1,1,0.67458
-80,50,704,502,19,59,1,1,0.68
-81,50,701,502,19,59,1,1,0.70833
-82,50,698,501,20,61,1,1,0.7404
-83,50,694,502,19,61,1,1,0.70645
-84,50,691,502,19,62,1,1,0.7619
-85,50,687,502,19,63,1,1,0.76562
-86,50,683,503,19,63,1,1,0.77656
-87,50,680,504,19,63,1,1,0.77656
-88,50,675,508,19,62,1,1,0.73333
-89,50,671,509,19,62,1,1,0.75556
-90,50,667,510,19,62,1,1,0.79365
-91,50,663,511,20,63,1,1,0.83929
-92,50,656,515,19,61,1,1,0.75806
-93,50,651,516,19,61,1,1,0.75806
-94,50,647,518,19,60,1,1,0.78361
-95,50,642,520,19,59,1,1,0.78
-96,50,638,522,19,58,1,1,0.79661
-97,50,633,524,19,57,1,1,0.77241
-98,50,629,526,19,56,1,1,0.81842
-99,50,625,523,19,59,1,1,0.84
-100,50,622,520,19,63,1,1,0.86875
-101,50,617,523,19,62,1,1,0.85556
-102,50,612,522,19,62,1,1,0.88571
-103,50,607,522,19,62,1,1,0.86667
-104,50,602,521,19,62,1,1,0.88095
-105,50,598,521,19,62,1,1,0.90476
-106,50,593,521,19,62,1,1,0.92063
-107,50,588,520,19,62,1,1,0.88571
-108,50,584,520,19,62,1,1,0.92063
-109,50,579,519,19,62,1,1,0.90476
-110,50,574,519,19,62,1,1,0.94048
-111,50,570,519,19,62,1,1,0.98095
-112,50,564,519,19,62,1,1,0.96349
-113,50,558,520,19,62,1,1,0.98175
-114,50,552,520,19,62,1,1,0.98175
-115,50,546,521,19,62,1,1,1
-116,50,541,522,19,62,1,1,1
-117,50,535,522,19,62,1,1,1
-118,50,529,523,19,62,1,1,1
-119,50,523,523,19,62,1,1,1
-120,50,517,524,19,62,1,1,1
-121,50,512,525,19,62,1,1,1
-122,50,506,525,19,62,1,1,1
-123,50,501,525,19,63,1,1,1
-124,50,496,525,19,63,1,1,1
-125,50,490,526,20,63,1,1,1
-126,50,485,526,20,63,1,1,1
-127,50,480,526,20,64,1,1,1
-128,50,475,527,20,64,1,1,1
-129,50,468,527,20,64,1,1,1
-130,50,462,527,19,64,1,1,1
-131,50,456,527,19,65,1,1,1
-132,50,450,527,19,66,1,1,1
-133,50,444,528,20,66,1,1,1
-134,50,438,529,21,67,1,1,1
-135,50,432,530,22,67,1,1,1
-136,50,427,531,22,68,1,1,1
-137,50,421,530,22,68,1,1,1
-138,50,416,530,22,68,1,1,1
-139,50,411,530,22,68,1,1,1
-140,50,407,530,22,68,1,1,1
-141,50,403,530,22,68,1,1,1
-142,50,397,529,23,68,1,1,1
-143,50,392,529,23,68,1,1,1
-144,50,387,529,23,68,1,1,1
-145,50,382,529,23,68,1,1,1
-146,50,377,529,24,68,1,1,1
-147,50,370,530,25,67,1,1,1
-148,50,364,531,25,67,1,1,1
-149,50,358,532,25,67,1,1,1
-150,50,352,533,25,67,1,1,1
-151,50,346,534,25,67,1,1,1
-152,50,339,534,25,68,1,1,1
-153,50,333,535,25,69,1,1,1
-154,50,327,536,24,69,1,1,1
-155,50,320,537,25,70,1,1,1
-156,50,314,538,25,70,1,1,1
-157,50,308,539,24,71,1,1,1
-158,50,301,540,25,71,1,1,1
-159,50,295,541,24,72,1,1,1
-160,50,289,542,24,72,1,1,1
-161,50,283,543,24,73,1,1,1
-162,50,277,543,24,73,1,1,1
-163,50,272,543,24,73,1,1,1
-164,50,266,543,24,73,1,1,1
-165,50,261,544,24,73,1,1,1
-166,50,255,544,24,73,1,1,1
-167,50,250,544,24,73,1,1,1
-168,50,245,545,24,73,1,1,1
-169,50,239,545,24,73,1,1,1
-170,50,234,545,24,73,1,1,1
-171,50,229,546,24,73,1,1,1
-172,50,224,546,24,73,1,1,1
-173,50,219,547,24,73,1,1,1
-174,50,214,547,24,73,1,1,1
-175,50,209,548,24,73,1,1,1
-176,50,204,549,24,73,1,1,1
-177,50,199,549,24,73,1,1,1
-178,50,194,550,24,73,1,1,1
-179,50,189,550,24,73,1,1,1
-180,50,184,551,24,73,1,1,1
-181,50,179,552,24,73,1,1,1
-182,50,174,553,24,73,1,1,1
-183,50,169,554,24,73,1,1,1
-184,50,165,555,24,73,1,1,1
-185,50,160,557,24,73,1,1,1
-186,50,156,558,24,73,1,1,1
-187,50,151,559,24,73,1,1,1
-188,50,146,561,24,73,1,1,1
-189,50,142,562,24,73,1,1,1
-190,50,137,563,24,73,1,1,1
-191,50,133,565,24,73,1,1,1
-192,50,128,565,24,74,1,1,1
-193,50,124,566,24,74,1,1,1
-194,50,119,566,24,75,1,1,1
-195,50,115,567,24,76,1,1,1
-196,50,110,568,25,76,1,1,1
-197,50,106,568,24,77,1,1,1
-198,50,101,569,25,77,1,1,1
-199,50,97,570,25,78,1,1,1
-200,50,92,570,25,79,1,1,1
-201,50,88,571,25,79,1,1,1
-202,50,84,572,25,79,1,1,1
-203,50,79,572,25,81,1,1,1
-204,50,75,573,25,81,1,1,1
-205,50,70,574,26,81,1,1,1
-206,50,66,574,25,82,1,1,1
-207,50,61,575,26,83,1,1,1
-208,50,57,576,26,83,1,1,1
-209,50,52,576,26,84,1,1,1
-210,50,48,577,26,84,1,1,1
-211,50,44,578,26,85,1,1,1
-212,50,40,578,26,85,1,1,1
-213,50,36,578,27,86,1,1,1
-214,50,33,579,27,86,1,1,1
-215,50,29,579,28,87,1,1,1
-216,50,26,580,28,87,1,1,1
-217,50,22,580,29,88,1,1,1
-218,50,19,581,29,88,1,1,1
-219,50,15,582,30,89,1,1,1
-220,50,12,583,30,90,1,1,1
-221,50,8,579,29,93,1,1,1
-222,50,5,580,29,93,1,1,1
-223,50,3,581,29,93,1,1,1
-224,50,1,583,29,93,1,1,1
-225,50,-2,586,29,89,1,1,0.26296
-226,50,-5,591,31,91,1,1,0.8125
-227,50,-5,591,31,91,1,1,0.8125
-228,50,-5,591,31,91,1,1,0.8125
-229,50,-9,592,30,92,1,1,0.67742
-230,50,-15,591,32,93,1,1,0.066409
-231,50,-13,593,31,88,1,1,0.037921
-101,51,661,516,20,60,1,1,0.27557
-102,51,654,516,19,59,1,1,0.45
-103,51,649,515,19,59,1,1,0.5
-104,51,644,515,19,59,1,1,0.45
-105,51,639,515,20,59,1,1,0.52381
-106,51,634,515,20,59,1,1,0.43413
-107,51,630,514,19,60,1,1,0.45
-108,51,625,514,20,60,1,1,0.47619
-109,51,620,514,20,60,1,1,0.42857
-110,51,615,514,20,60,1,1,0.42857
-111,51,611,514,20,60,1,1,0.38642
-112,51,605,514,20,60,1,1,0.43404
-113,51,600,514,20,60,1,1,0.43404
-114,51,594,515,20,60,1,1,0.42857
-115,51,589,515,20,60,1,1,0.43326
-116,51,584,516,20,60,1,1,0.43326
-117,51,578,516,20,60,1,1,0.47619
-118,51,573,516,20,60,1,1,0.47619
-119,51,567,517,20,60,1,1,0.47619
-120,51,562,517,20,60,1,1,0.47619
-121,51,557,518,20,60,1,1,0.47619
-122,51,551,518,20,60,1,1,0.47619
-123,51,546,519,20,60,1,1,0.47619
-124,51,540,520,20,60,1,1,0.47619
-125,51,535,521,20,60,1,1,0.47619
-126,51,529,521,20,60,1,1,0.47619
-127,51,524,522,20,60,1,1,0.47619
-128,51,518,523,20,60,1,1,0.52381
-129,51,513,524,20,60,1,1,0.47619
-130,51,508,525,20,60,1,1,0.47619
-131,51,500,526,20,60,1,1,0.57143
-132,51,495,526,21,60,1,1,0.54545
-133,51,491,526,21,60,1,1,0.5
-134,51,485,525,21,61,1,1,0.5
-135,51,479,525,22,61,1,1,0.52174
-136,51,474,525,21,61,1,1,0.5
-137,51,468,525,22,61,1,1,0.52174
-138,51,462,525,22,61,1,1,0.56522
-139,51,457,525,22,61,1,1,0.56522
-140,51,451,525,22,61,1,1,0.6087
-141,51,446,525,22,61,1,1,0.56942
-142,51,440,525,22,61,1,1,0.57083
-143,51,435,525,22,62,1,1,0.65217
-144,51,429,525,23,63,1,1,0.62826
-145,51,424,525,23,64,1,1,0.66667
-146,51,419,525,23,65,1,1,0.66667
-147,51,413,525,23,65,1,1,0.70833
-148,51,408,525,23,66,1,1,0.75
-149,51,402,525,24,67,1,1,0.68
-150,51,397,525,24,68,1,1,0.64
-151,51,392,525,24,69,1,1,0.56
-152,51,385,526,24,69,1,1,0.6
-153,51,378,527,24,69,1,1,0.64
-154,51,372,528,24,69,1,1,0.6
-155,51,365,529,24,69,1,1,0.64
-156,51,359,531,24,69,1,1,0.6
-157,51,352,532,24,69,1,1,0.64
-158,51,345,533,24,69,1,1,0.68
-159,51,339,534,24,69,1,1,0.68
-160,51,332,535,24,69,1,1,0.72
-161,51,326,537,24,69,1,1,0.76
-162,51,320,538,24,68,1,1,0.76
-163,51,314,539,24,68,1,1,0.8
-164,51,309,540,24,68,1,1,0.76
-165,51,303,541,24,67,1,1,0.76
-166,51,297,542,24,67,1,1,0.8
-167,51,292,543,24,67,1,1,0.76
-168,51,286,543,24,67,1,1,0.8
-169,51,281,543,24,67,1,1,0.8
-170,51,275,543,24,67,1,1,0.84
-171,51,270,544,24,67,1,1,0.84
-172,51,264,543,25,68,1,1,0.88462
-173,51,259,543,25,68,1,1,0.88462
-174,51,253,542,26,69,1,1,0.88889
-175,51,248,542,26,69,1,1,0.92593
-176,51,243,541,26,71,1,1,0.92593
-177,51,237,541,27,71,1,1,0.92857
-178,51,232,540,27,72,1,1,1
-179,51,226,540,28,72,1,1,1
-180,51,221,539,28,73,1,1,1
-181,51,216,539,28,74,1,1,1
-182,51,211,540,28,74,1,1,0.9692
-183,51,206,541,28,75,1,1,0.9696
-184,51,201,542,28,75,1,1,0.94011
-185,51,196,543,28,76,1,1,1
-186,51,191,545,28,76,1,1,1
-187,51,186,546,28,76,1,1,1
-188,51,181,547,28,77,1,1,1
-189,51,176,548,28,77,1,1,1
-190,51,171,549,28,78,1,1,1
-191,51,167,551,27,78,1,1,1
-192,51,162,552,27,78,1,1,1
-193,51,157,553,27,79,1,1,1
-194,51,152,554,27,79,1,1,1
-195,51,147,555,27,80,1,1,1
-196,51,142,556,27,80,1,1,1
-197,51,137,557,27,81,1,1,1
-198,51,132,558,27,81,1,1,1
-199,51,127,559,27,82,1,1,1
-200,51,122,560,27,82,1,1,1
-201,51,118,561,26,83,1,1,1
-202,51,112,561,27,84,1,1,1
-203,51,107,562,27,84,1,1,1
-204,51,102,563,27,84,1,1,1
-205,51,96,564,28,84,1,1,0.96957
-206,51,91,565,28,85,1,1,0.96913
-207,51,86,565,28,86,1,1,0.93896
-208,51,80,566,29,86,1,1,0.88199
-209,51,75,567,29,86,1,1,0.88046
-210,51,70,568,29,86,1,1,0.85057
-211,51,65,569,29,87,1,1,0.82045
-212,51,61,569,29,87,1,1,0.82045
-213,51,57,570,29,87,1,1,0.78788
-214,51,53,570,29,88,1,1,0.7603
-215,51,50,571,28,87,1,1,0.74922
-216,51,46,571,28,88,1,1,0.72104
-217,51,42,572,28,88,1,1,0.68617
-218,51,39,572,27,88,1,1,0.67897
-219,51,35,573,27,88,1,1,0.64687
-220,51,31,573,27,89,1,1,0.61905
-221,51,28,574,27,89,1,1,0.6627
-222,51,23,575,27,89,1,1,0.59524
-223,51,18,577,28,88,1,1,0.50601
-224,51,14,579,28,88,1,1,0.07284
-225,51,10,581,27,88,1,1,0.072231
-226,51,6,583,27,88,1,1,0.092697
-227,51,2,585,27,88,1,1,0.069823
-228,51,-2,587,27,89,1,1,0.039683
-229,51,-8,587,27,89,1,1,0.037698
-230,51,-13,587,27,89,1,1,0.022222
-231,51,-16,586,27,89,1,1,0.030556
-224,52,10,589,32,85,1,1,0.36364
-225,52,8,590,31,85,1,1,0.375
-226,52,7,592,29,85,1,1,0.33333
-227,52,6,593,28,86,1,1,0.27586
-228,52,5,595,26,86,1,1,0.18519
-229,52,3,596,25,86,1,1,0.26923
-230,52,2,598,24,86,1,1,0.36
-231,52,1,599,22,87,1,1,1
-232,52,0,601,21,87,1,1,0.95455
-233,52,-1,596,25,90,1,1,0.92308
-234,52,-5,596,22,91,1,1,0.73913
-235,52,-5,596,23,88,1,1,0.75
-236,52,-9,596,24,89,1,1,0.6
-237,52,-7,596,23,90,1,1,0.66667
-238,52,-10,601,23,83,1,1,0.54167
-239,52,-11,596,22,88,1,1,0.47826
-240,52,-11,594,22,90,1,1,0.47826
-241,52,-12,596,22,91,1,1,0.43478
-242,52,-12,596,21,88,1,1,0.40909
-243,52,-11,593,20,90,1,1,0.42857
-244,52,-10,594,21,90,1,1,0.5
-245,52,-11,598,22,89,1,1,0.47826
-246,52,-11,594,23,89,1,1,0.5
-247,52,-11,604,23,83,1,1,0.5
-248,52,-11,602,25,85,1,1,0.53846
-249,52,-9,594,23,98,1,1,0.58333
-250,52,-12,601,25,91,1,1,0.5
-251,52,-13,597,25,96,1,1,0.46154
-252,52,-12,599,23,98,1,1,0.45833
-253,52,-10,604,24,91,1,1,0.56
-254,52,-10,597,28,101,1,1,0.62069
-255,52,-10,603,33,99,1,1,0.67647
-256,52,-5,606,30,99,1,1,0.80645
-257,52,-4,607,31,100,1,1,0.84375
-258,52,-2,606,30,100,1,1,0.39221
-259,52,0,606,30,100,1,1,0.39285
-260,52,0,607,29,100,1,1,0.3
-261,52,5,611,32,97,1,1,0.42424
-262,52,6,611,32,97,1,1,0.39394
-263,52,8,611,31,98,1,1,0.375
-264,52,10,611,30,98,1,1,0.45161
-265,52,12,611,30,99,1,1,1
-266,52,14,611,30,101,1,1,0.58065
-267,52,17,612,30,102,1,1,1
-268,52,17,613,34,103,1,1,1
-269,52,22,608,28,102,1,1,0.51724
-270,52,26,608,31,101,1,1,0.59375
-271,52,28,606,30,99,1,1,0.51613
-272,52,29,606,30,99,1,1,0.3871
-273,52,30,606,31,100,1,1,1
-274,52,31,604,31,101,1,1,0.28125
-275,52,35,602,24,103,1,1,0.14538
-276,52,35,603,30,103,1,1,0.23325
-277,52,35,601,32,104,1,1,0.31631
-278,52,35,601,39,104,1,1,0.41143
-279,52,35,604,41,102,1,1,0.38095
-280,52,40,606,38,103,1,1,0.38462
-281,52,43,610,38,103,1,1,0.38462
-282,52,43,611,39,103,1,1,0.375
-283,52,43,613,41,103,1,1,0.38095
-284,52,43,612,40,104,1,1,0.31707
-285,52,46,614,40,105,1,1,0.21951
-286,52,50,616,39,106,1,1,0.125
-287,52,55,616,40,111,1,1,1
-288,52,55,617,41,111,1,1,0.2619
-289,52,56,618,41,111,1,1,0.33333
-290,52,57,619,41,111,1,1,0.19048
-291,52,57,620,42,111,1,1,0.16279
-292,52,58,621,42,112,1,1,0.25581
-293,52,59,622,42,112,1,1,0.23256
-294,52,60,623,42,112,1,1,0.18605
-295,52,60,624,43,112,1,1,0.18182
-296,52,61,625,43,112,1,1,0.15909
-297,52,62,626,43,113,1,1,0.18182
-298,52,63,627,43,113,1,1,0.18182
-299,52,63,628,44,113,1,1,0.22222
-300,52,64,629,44,113,1,1,0.24444
-301,52,65,630,44,113,1,1,0.26667
-302,52,66,631,44,114,1,1,0.28889
-303,52,65,633,44,115,1,1,0.26667
-304,52,66,632,44,115,1,1,0.33487
-305,52,64,638,46,118,1,1,0.30377
-306,52,63,636,46,119,1,1,0.31915
-307,52,62,639,46,120,1,1,1
-308,52,62,643,45,120,1,1,0.32609
-309,52,62,642,45,121,1,1,0.34783
-310,52,60,643,47,121,1,1,0.33333
-311,52,59,645,48,121,1,1,0.38776
-312,52,59,645,47,121,1,1,0.35417
-313,52,56,651,50,117,1,1,0.35294
-314,52,54,650,49,119,1,1,0.32
-315,52,52,650,49,121,1,1,0.32
-316,52,50,651,49,121,1,1,0.32
-317,52,49,652,49,122,1,1,0.34
-318,52,48,653,48,122,1,1,0.30612
-319,52,47,654,48,123,1,1,0.30612
-320,52,43,653,49,124,1,1,0.28
-321,52,45,652,44,128,1,1,0.31111
-322,52,40,652,50,128,1,1,0.33333
-323,52,40,653,49,128,1,1,0.36
-324,52,36,652,50,129,1,1,0.33333
-325,52,33,651,50,130,1,1,0.29412
-326,52,30,653,50,131,1,1,0.35294
-327,52,27,651,50,132,1,1,0.39216
-328,52,26,654,49,131,1,1,0.44
-329,52,22,649,49,133,1,1,0.3
-330,52,16,649,49,135,1,1,0.26
-331,52,10,649,49,138,1,1,0.24
-332,52,5,646,51,133,1,1,0.34615
-333,52,1,647,50,133,1,1,0.37255
-334,52,-4,644,51,133,1,1,0.33123
-335,52,-9,646,50,132,1,1,0.35294
-336,52,-15,646,51,141,1,1,0.38462
-337,52,-20,648,51,141,1,1,0.59615
-338,52,-24,652,51,141,1,1,0.51923
-339,52,-29,655,51,142,1,1,0.42308
-531,53,1905,538,24,70,1,1,0.34254
-532,53,1883,542,21,73,1,1,0.48649
-533,53,1862,544,21,72,1,1,0.47945
-534,53,1841,545,21,72,1,1,0.49315
-535,53,1819,544,21,72,1,1,0.52055
-536,53,1802,545,21,72,1,1,0.52055
-537,53,1781,537,21,72,1,1,0.52055
-538,53,1763,546,21,72,1,1,0.57534
-539,53,1741,543,25,73,1,1,0.56757
-540,53,1722,546,28,75,1,1,0.52632
-541,53,1703,545,28,75,1,1,0.55263
-542,53,1684,555,28,75,1,1,0.5
-543,53,1667,553,30,73,1,1,0.54054
-544,53,1650,550,29,71,1,1,0.59722
-545,53,1633,550,30,73,1,1,0.55405
-546,53,1618,548,30,73,1,1,0.56757
-547,53,1602,546,30,73,1,1,0.58108
-548,53,1587,547,30,73,1,1,0.55405
-549,53,1570,539,29,75,1,1,0.61842
-550,53,1558,539,29,68,1,1,0.66667
-551,53,1545,537,24,70,1,1,0.66197
-552,53,1533,537,21,70,1,1,0.64789
-553,53,1521,536,22,73,1,1,0.62162
-554,53,1506,536,24,71,1,1,0.625
-555,53,1492,533,24,71,1,1,0.66667
-556,53,1482,533,24,71,1,1,0.68056
-557,53,1468,527,24,71,1,1,0.76389
-558,53,1458,529,24,71,1,1,0.73611
-559,53,1446,528,23,75,1,1,0.69737
-560,53,1435,529,23,75,1,1,0.69737
-561,53,1425,528,23,75,1,1,0.72368
-562,53,1413,527,23,75,1,1,0.75
-563,53,1400,526,25,77,1,1,0.75641
-564,53,1393,524,23,78,1,1,0.78481
-565,53,1377,524,30,81,1,1,0.76829
-566,53,1369,521,30,82,1,1,0.80723
-567,53,1359,526,30,82,1,1,0.77108
-568,53,1352,525,30,82,1,1,0.79518
-569,53,1343,526,29,75,1,1,0.86842
-570,53,1335,524,31,73,1,1,0.94595
-571,53,1326,527,31,73,1,1,0.91892
-572,53,1320,527,31,73,1,1,0.93243
-573,53,1310,526,30,81,1,1,0.86585
-574,53,1304,525,30,82,1,1,0.89157
-575,53,1298,524,30,82,1,1,0.91566
-576,53,1292,527,30,82,1,1,0.90361
-577,53,1285,527,32,82,1,1,0.92771
-578,53,1276,526,32,82,1,1,0.95181
-579,53,1271,524,31,82,1,1,1
-580,53,1266,526,31,85,1,1,0.96512
-581,53,1261,526,31,85,1,1,0.97674
-582,53,1257,524,31,83,1,1,1
-583,53,1251,524,31,82,1,1,1
-584,53,1249,522,30,84,1,1,1
-585,53,1247,526,30,84,1,1,1
-586,53,1242,524,30,82,1,1,1
-587,53,1239,522,30,82,1,1,1
-588,53,1234,522,30,82,1,1,1
-589,53,1232,521,30,85,1,1,1
-590,53,1230,521,31,88,1,1,1
-591,53,1227,521,34,87,1,1,1
-592,53,1227,521,34,88,1,1,1
-593,53,1227,522,34,88,1,1,1
-594,53,1226,521,34,88,1,1,1
-595,53,1226,523,34,88,1,1,1
-596,53,1226,519,32,90,1,1,1
-597,53,1227,519,32,90,1,1,1
-598,53,1228,519,32,90,1,1,1
-599,53,1227,518,32,90,1,1,1
-600,53,1230,518,32,90,1,1,1
-601,53,1232,519,32,90,1,1,1
-602,53,1231,521,33,89,1,1,1
-603,53,1233,521,33,89,1,1,1
-604,53,1236,521,32,89,1,1,1
-605,53,1242,521,32,89,1,1,1
-606,53,1244,521,29,88,1,1,1
-607,53,1248,521,29,92,1,1,1
-608,53,1252,521,29,92,1,1,1
-609,53,1254,519,29,93,1,1,1
-610,53,1256,520,31,93,1,1,1
-611,53,1259,521,30,94,1,1,1
-612,53,1263,522,30,94,1,1,1
-613,53,1266,523,31,93,1,1,1
-614,53,1270,525,31,93,1,1,1
-615,53,1272,526,31,95,1,1,1
-616,53,1274,527,31,98,1,1,1
-617,53,1277,528,30,100,1,1,1
-618,53,1279,529,30,103,1,1,1
-619,53,1282,531,30,105,1,1,1
-620,53,1287,531,30,103,1,1,1
-621,53,1290,532,30,104,1,1,1
-622,53,1293,533,31,105,1,1,1
-623,53,1296,534,31,106,1,1,1
-624,53,1299,535,32,108,1,1,1
-625,53,1302,532,32,109,1,1,1
-626,53,1308,531,39,110,1,1,1
-627,53,1314,533,39,110,1,1,1
-628,53,1321,533,39,111,1,1,1
-629,53,1325,534,40,103,1,1,1
-630,53,1334,531,39,111,1,1,0.94107
-631,53,1341,532,40,111,1,1,0.80836
-632,53,1347,535,40,112,1,1,0.66976
-633,53,1354,533,41,113,1,1,0.58208
-634,53,1363,534,40,119,1,1,0.47642
-635,53,1372,533,42,118,1,1,0.37756
-636,53,1383,539,38,119,1,1,0.25299
-637,53,1391,544,40,120,1,1,0.22314
-638,53,1399,545,40,120,1,1,0.23967
-639,53,1413,547,41,121,1,1,0.2459
-640,53,1420,550,41,121,1,1,0.2541
-641,53,1428,553,43,123,1,1,0.25
-642,53,1436,556,48,119,1,1,0.25833
-643,53,1448,560,49,118,1,1,0.2521
-644,53,1459,562,49,118,1,1,0.2605
-645,53,1471,562,50,124,1,1,0.28
-646,53,1480,562,48,128,1,1,0.29457
-647,53,1492,564,52,132,1,1,0.30075
-648,53,1506,566,51,131,1,1,0.30303
-649,53,1519,569,49,131,1,1,0.2803
-650,53,1532,563,48,131,1,1,0.37121
-651,53,1549,566,49,139,1,1,0.32143
-652,53,1562,566,49,133,1,1,0.3209
-653,53,1582,563,50,130,1,1,0.32061
-654,53,1600,556,49,132,1,1,0.33835
-655,53,1619,562,51,139,1,1,0.32857
-656,53,1635,559,51,148,1,1,0.31544
-657,53,1655,563,51,150,1,1,0.33775
-658,53,1672,568,54,145,1,1,0.37671
-659,53,1690,581,54,150,1,1,0.34437
-660,53,1714,593,51,153,1,1,0.32468
-661,53,1730,596,51,151,1,1,0.375
-662,53,1751,603,52,143,1,1,0.41667
-663,53,1772,612,52,142,1,1,0.42657
-664,53,1790,621,51,144,1,1,0.43448
-665,53,1812,622,51,144,1,1,0.48966
-666,53,1831,631,54,147,1,1,0.47973
-667,53,1852,632,54,148,1,1,0.49664
-668,53,1873,635,53,150,1,1,0.42973
-669,53,1896,645,53,152,1,1,0.19971
-652,54,934,491,24,55,1,1,0.71429
-653,54,941,488,21,58,1,1,0.74576
-654,54,948,485,19,61,1,1,0.74194
-655,54,958,485,21,61,1,1,0.74194
-656,54,967,486,21,62,1,1,0.7619
-657,54,977,488,21,63,1,1,0.8125
-658,54,986,497,21,63,1,1,0.76562
-659,54,995,506,21,64,1,1,0.72308
-660,54,1001,505,22,64,1,1,0.75385
-661,54,1008,505,22,64,1,1,0.76923
-662,54,1016,506,21,65,1,1,0.77273
-663,54,1024,508,21,66,1,1,0.79104
-664,54,1032,507,19,65,1,1,0.83333
-665,54,1040,506,18,64,1,1,0.87692
-666,54,1047,505,21,63,1,1,0.9375
-667,54,1056,508,22,61,1,1,0.90323
-668,54,1064,508,22,61,1,1,0.90323
-669,54,1072,508,23,62,1,1,0.87831
-670,54,1080,506,24,63,1,1,0.90375
-671,54,1089,504,24,64,1,1,0.89662
-672,54,1098,503,23,63,1,1,0.91341
-673,54,1107,503,23,62,1,1,0.89947
-674,54,1114,499,23,62,1,1,0.93254
-675,54,1122,498,23,64,1,1,0.70128
-676,54,1131,497,22,66,1,1,0.74951
-677,54,1140,497,22,68,1,1,0.78324
-678,54,1147,496,22,70,1,1,0.78077
-679,54,1155,496,23,69,1,1,0.83929
-680,54,1165,503,23,69,1,1,0.80833
-681,54,1168,517,24,70,1,1,0.79775
-682,54,1176,513,24,71,1,1,0.80111
-683,54,1184,506,24,69,1,1,0.81257
-684,54,1192,500,25,66,1,1,0.84615
-685,54,1200,494,25,67,1,1,0.99095
-686,54,1208,488,25,66,1,1,0.99656
-687,54,1216,483,26,70,1,1,0.99791
-688,54,1223,484,27,72,1,1,0.99511
-689,54,1230,485,27,72,1,1,1
-690,54,1241,487,24,70,1,1,1
-691,54,1248,481,25,76,1,1,1
-692,54,1256,489,29,72,1,1,1
-693,54,1265,488,29,74,1,1,1
-694,54,1272,498,28,70,1,1,1
-695,54,1284,503,26,68,1,1,1
-696,54,1292,507,24,69,1,1,1
-697,54,1299,509,24,69,1,1,1
-698,54,1309,509,24,69,1,1,1
-699,54,1317,516,24,69,1,1,1
-700,54,1323,515,24,69,1,1,1
-701,54,1331,523,26,68,1,1,1
-702,54,1340,522,27,68,1,1,1
-703,54,1345,529,28,68,1,1,1
-704,54,1353,532,28,69,1,1,1
-705,54,1358,531,28,69,1,1,1
-706,54,1365,540,28,69,1,1,1
-707,54,1372,537,27,66,1,1,1
-708,54,1379,539,27,67,1,1,1
-709,54,1387,536,26,63,1,1,1
-710,54,1393,550,26,64,1,1,1
-711,54,1398,540,26,65,1,1,1
-712,54,1408,544,26,66,1,1,1
-713,54,1415,535,26,66,1,1,1
-714,54,1421,529,27,66,1,1,1
-715,54,1426,533,27,67,1,1,1
-716,54,1433,526,28,67,1,1,1
-717,54,1438,527,28,68,1,1,1
-718,54,1443,525,28,69,1,1,1
-719,54,1451,533,28,70,1,1,1
-720,54,1457,528,28,71,1,1,1
-721,54,1465,529,28,72,1,1,1
-722,54,1468,529,33,78,1,1,1
-723,54,1476,533,28,74,1,1,1
-724,54,1481,538,28,75,1,1,1
-725,54,1490,538,29,73,1,1,1
-726,54,1498,541,28,77,1,1,1
-727,54,1503,542,28,77,1,1,1
-728,54,1510,552,30,76,1,1,1
-729,54,1518,552,30,76,1,1,1
-730,54,1526,554,30,76,1,1,1
-731,54,1531,558,30,76,1,1,1
-732,54,1538,558,30,76,1,1,1
-733,54,1546,554,30,76,1,1,1
-734,54,1551,558,30,76,1,1,1
-735,54,1556,554,30,76,1,1,1
-736,54,1560,552,34,80,1,1,1
-737,54,1564,552,34,80,1,1,1
-738,54,1571,555,35,79,1,1,1
-739,54,1576,556,35,79,1,1,1
-740,54,1582,556,35,79,1,1,1
-741,54,1585,559,35,79,1,1,1
-742,54,1592,563,35,79,1,1,1
-743,54,1596,565,35,79,1,1,1
-744,54,1600,565,35,79,1,1,1
-745,54,1604,565,35,79,1,1,1
-746,54,1608,573,35,79,1,1,1
-747,54,1613,573,35,79,1,1,1
-748,54,1619,567,34,85,1,1,1
-749,54,1627,568,34,85,1,1,1
-750,54,1632,567,34,85,1,1,1
-670,55,540,503,15,38,1,1,0.6875
-671,55,546,501,15,39,1,1,0.625
-672,55,553,499,15,40,1,1,0.625
-673,55,560,493,14,41,1,1,0.6
-674,55,567,488,14,41,1,1,0.66667
-675,55,574,485,14,42,1,1,1
-676,55,581,485,14,43,1,1,0.74242
-677,55,589,486,14,43,1,1,1
-678,55,594,487,14,44,1,1,1
-679,55,600,493,14,44,1,1,0.53333
-680,55,611,493,13,41,1,1,0.78571
-681,55,611,516,13,41,1,1,0.57143
-682,55,616,536,15,42,1,1,0.6875
-683,55,620,511,15,42,1,1,1
-684,55,627,503,15,42,1,1,1
-685,55,633,499,15,42,1,1,1
-686,55,639,493,15,42,1,1,1
-687,55,645,489,15,42,1,1,0.625
-688,55,653,489,15,42,1,1,1
-689,55,659,486,15,42,1,1,0.75
-690,55,665,484,15,42,1,1,0.75
-691,55,671,482,15,42,1,1,0.75
-692,55,679,480,14,47,1,1,1
-693,55,686,480,14,47,1,1,1
-694,55,690,483,14,47,1,1,1
-695,55,696,484,14,47,1,1,1
-696,55,703,484,14,47,1,1,1
-697,55,708,485,14,47,1,1,1
-698,55,713,484,14,47,1,1,1
-699,55,719,485,14,47,1,1,1
-700,55,725,486,14,47,1,1,1
-701,55,730,488,14,47,1,1,1
-702,55,736,488,15,46,1,1,1
-703,55,739,488,18,48,1,1,1
-704,55,745,491,18,48,1,1,0.94737
-705,55,747,492,18,48,1,1,0.89474
-706,55,752,493,18,48,1,1,0.73684
-707,55,756,498,18,48,1,1,0.89474
-708,55,760,498,18,48,1,1,0.73684
-709,55,763,502,18,48,1,1,0.94737
-710,55,767,508,18,48,1,1,0.89474
-711,55,769,509,18,48,1,1,0.89474
-712,55,774,512,18,48,1,1,0.89474
-713,55,778,511,18,48,1,1,0.78947
-714,55,782,518,18,48,1,1,0.57895
-715,55,785,516,18,48,1,1,0.63158
-716,55,786,518,18,48,1,1,0.57895
-717,55,790,518,18,48,1,1,0.68421
-718,55,793,519,15,47,1,1,0.8125
-719,55,798,519,15,47,1,1,0.875
-720,55,799,521,15,47,1,1,0.8125
-721,55,803,521,15,47,1,1,0.8125
-722,55,807,522,15,47,1,1,0.875
-723,55,811,522,15,47,1,1,0.875
-724,55,814,531,14,49,1,1,0.86667
-725,55,818,531,14,49,1,1,0.86667
-726,55,823,531,14,49,1,1,0.86667
-727,55,825,537,16,48,1,1,0.58824
-728,55,828,537,16,48,1,1,0.76471
-729,55,831,536,16,47,1,1,0.64706
-730,55,835,540,17,46,1,1,0.61111
-731,55,835,535,20,52,1,1,0.90476
-732,55,840,535,20,52,1,1,0.7619
-733,55,842,535,20,52,1,1,0.85714
-734,55,845,531,20,52,1,1,0.61905
-735,55,847,531,20,52,1,1,0.85714
-736,55,850,529,20,52,1,1,0.61905
-737,55,853,527,20,52,1,1,0.47619
-738,55,854,528,20,52,1,1,0.57143
-739,55,855,530,20,52,1,1,0.57143
-740,55,855,532,20,52,1,1,0.95238
-741,55,860,533,20,52,1,1,0.85714
-742,55,862,537,20,52,1,1,0.80952
-743,55,862,537,20,52,1,1,0.90476
-744,55,862,538,20,52,1,1,0.90476
-745,55,863,538,20,52,1,1,0.90476
-746,55,865,539,20,52,1,1,0.85714
-747,55,866,538,19,53,1,1,0.85
-748,55,867,538,19,54,1,1,0.85
-749,55,869,539,19,54,1,1,0.85
-750,55,869,539,19,54,1,1,0.9
-610,56,341,478,19,42,1,1,1
-611,56,341,477,19,43,1,1,1
-612,56,340,475,18,43,1,1,1
-613,56,339,474,18,43,1,1,1
-614,56,339,473,18,43,1,1,1
-615,56,339,471,18,43,1,1,1
-616,56,337,472,19,42,1,1,1
-617,56,335,473,21,42,1,1,1
-618,56,335,473,20,42,1,1,1
-619,56,334,472,20,43,1,1,1
-620,56,334,472,20,43,1,1,1
-621,56,334,473,18,43,1,1,1
-622,56,333,473,18,43,1,1,1
-623,56,334,477,18,44,1,1,1
-624,56,335,476,19,44,1,1,1
-625,56,333,479,19,44,1,1,1
-626,56,335,477,19,44,1,1,1
-627,56,336,483,18,44,1,1,1
-628,56,339,482,18,44,1,1,1
-629,56,339,485,19,44,1,1,1
-630,56,344,487,18,44,1,1,1
-631,56,345,487,18,44,1,1,1
-632,56,349,487,19,44,1,1,1
-633,56,352,489,19,44,1,1,1
-634,56,354,491,18,44,1,1,1
-635,56,359,490,18,44,1,1,1
-636,56,359,492,19,44,1,1,1
-637,56,363,493,19,44,1,1,1
-638,56,366,497,19,43,1,1,1
-639,56,371,496,19,43,1,1,1
-640,56,374,497,19,43,1,1,1
-641,56,375,497,19,44,1,1,1
-642,56,380,497,16,43,1,1,1
-643,56,386,497,12,43,1,1,1
-644,56,390,498,13,42,1,1,1
-645,56,396,497,14,45,1,1,1
-646,56,399,498,14,45,1,1,1
-647,56,404,498,14,46,1,1,1
-648,56,409,499,15,46,1,1,1
-649,56,416,497,13,42,1,1,1
-650,56,422,502,13,42,1,1,1
-651,56,426,501,15,41,1,1,1
-652,56,432,492,15,42,1,1,1
-653,56,438,492,16,42,1,1,1
-654,56,446,494,15,42,1,1,1
-655,56,455,494,15,41,1,1,1
-656,56,461,501,16,41,1,1,1
-657,56,471,502,14,40,1,1,1
-658,56,479,511,14,41,1,1,1
-659,56,488,520,14,42,1,1,1
-660,56,489,516,14,42,1,1,1
-661,56,495,514,14,42,1,1,1
-662,56,501,512,14,43,1,1,1
-663,56,507,510,14,43,1,1,1
-664,56,514,509,14,43,1,1,1
-665,56,521,509,14,42,1,1,1
-666,56,528,505,14,43,1,1,1
-667,56,535,503,14,43,1,1,1
-668,56,542,501,14,43,1,1,1
-669,56,549,500,15,43,1,1,1
-670,56,556,499,15,42,1,1,1
-671,56,565,495,15,43,1,1,1
-672,56,571,494,15,43,1,1,1
-673,56,577,493,15,44,1,1,1
-674,56,584,487,16,44,1,1,1
-675,56,590,487,17,37,1,1,1
-676,56,595,491,18,38,1,1,1
-677,56,605,485,18,40,1,1,1
-678,56,610,487,18,41,1,1,1
-679,56,617,493,17,42,1,1,1
-680,56,625,492,17,43,1,1,1
-681,56,628,513,18,43,1,1,1
-682,56,632,531,18,43,1,1,1
-683,56,638,503,17,44,1,1,1
-684,56,643,495,17,44,1,1,1
-685,56,648,493,18,44,1,1,0.95439
-686,56,654,484,18,46,1,1,0.95745
-687,56,661,482,17,46,1,1,1
-688,56,667,480,18,47,1,1,0.91447
-689,56,674,479,18,47,1,1,0.95504
-690,56,680,476,18,49,1,1,0.95579
-691,56,686,474,17,49,1,1,0.95333
-692,56,692,473,18,50,1,1,0.90918
-693,56,699,473,18,50,1,1,0.90918
-694,56,705,476,18,51,1,1,1
-695,56,710,476,19,52,1,1,0.95755
-696,56,716,477,19,52,1,1,0.91321
-697,56,722,478,19,53,1,1,0.95648
-698,56,728,479,19,53,1,1,1
-699,56,734,480,19,54,1,1,1
-700,56,740,481,19,54,1,1,1
-701,56,746,482,19,55,1,1,1
-702,56,752,483,19,55,1,1,1
-703,56,758,484,19,56,1,1,1
-704,56,763,485,18,57,1,1,1
-705,56,764,481,20,60,1,1,1
-706,56,769,484,20,60,1,1,1
-707,56,773,485,20,61,1,1,0.92473
-708,56,777,490,20,60,1,1,1
-709,56,781,490,20,61,1,1,1
-710,56,784,500,22,59,1,1,1
-711,56,786,500,22,59,1,1,1
-712,56,791,503,22,59,1,1,1
-713,56,793,502,23,60,1,1,1
-714,56,796,510,22,58,1,1,1
-715,56,800,508,22,59,1,1,1
-716,56,802,508,22,58,1,1,0.89167
-717,56,807,508,22,58,1,1,0.92778
-718,56,808,510,22,59,1,1,1
-719,56,813,510,22,58,1,1,1
-720,56,818,510,19,65,1,1,1
-721,56,820,510,21,64,1,1,1
-722,56,823,511,21,63,1,1,1
-723,56,827,510,21,63,1,1,1
-724,56,829,522,21,64,1,1,1
-725,56,831,521,25,62,1,1,1
-726,56,836,521,25,62,1,1,1
-727,56,837,527,25,63,1,1,1
-728,56,844,527,25,62,1,1,1
-729,56,846,525,25,62,1,1,1
-730,56,850,527,25,62,1,1,1
-731,56,854,526,25,63,1,1,1
-732,56,856,526,25,62,1,1,1
-733,56,860,525,25,62,1,1,0.90293
-734,56,863,521,24,65,1,1,1
-735,56,865,521,24,65,1,1,1
-736,56,869,520,24,66,1,1,1
-737,56,869,519,24,65,1,1,1
-738,56,873,521,24,65,1,1,1
-739,56,875,520,24,66,1,1,1
-740,56,875,522,24,65,1,1,1
-741,56,878,524,24,65,1,1,1
-742,56,879,526,24,65,1,1,1
-743,56,881,528,24,66,1,1,1
-744,56,881,527,23,66,1,1,1
-745,56,882,526,23,66,1,1,1
-746,56,883,528,23,67,1,1,1
-747,56,883,527,22,68,1,1,1
-748,56,884,526,22,68,1,1,1
-749,56,886,525,22,68,1,1,0.89603
-750,56,887,524,22,69,1,1,0.93168
-599,57,813,480,19,55,1,1,1
-600,57,811,477,19,55,1,1,1
-601,57,811,478,19,55,1,1,1
-602,57,810,479,19,55,1,1,1
-603,57,808,478,19,55,1,1,1
-604,57,807,479,19,54,1,1,1
-605,57,808,479,19,51,1,1,1
-606,57,807,479,19,51,1,1,0.89231
-607,57,806,480,22,52,1,1,0.80312
-608,57,807,479,22,51,1,1,0.76589
-609,57,806,479,22,52,1,1,0.64315
-610,57,807,477,22,51,1,1,0.63043
-611,57,806,476,21,46,1,1,0.59381
-612,57,805,478,22,46,1,1,0.53191
-613,57,804,476,22,46,1,1,0.51064
-614,57,806,477,22,46,1,1,0.51064
-615,57,805,476,22,46,1,1,0.55319
-616,57,804,478,22,46,1,1,0.53191
-617,57,805,480,22,46,1,1,0.51064
-618,57,804,477,21,46,1,1,0.59574
-619,57,806,481,22,46,1,1,0.53191
-620,57,805,481,22,45,1,1,0.56522
-621,57,803,482,22,45,1,1,0.56522
-622,57,804,483,22,45,1,1,0.58696
-623,57,803,484,22,45,1,1,0.6087
-624,57,805,484,21,43,1,1,0.68182
-625,57,807,487,22,37,1,1,0.78947
-626,57,807,486,22,37,1,1,0.68421
-627,57,809,486,22,37,1,1,0.68421
-628,57,809,487,22,37,1,1,0.68421
-629,57,814,486,22,37,1,1,0.73684
-630,57,817,487,22,37,1,1,0.73684
-631,57,822,482,22,40,1,1,0.82927
-632,57,822,486,22,40,1,1,0.7561
-633,57,829,483,22,40,1,1,0.90244
-409,58,1136,522,26,64,1,1,0.59259
-410,58,1126,521,23,64,1,1,0.66667
-411,58,1117,521,19,63,1,1,1
-412,58,1102,524,23,62,1,1,1
-413,58,1089,522,23,63,1,1,1
-414,58,1076,521,24,63,1,1,1
-415,58,1061,520,25,63,1,1,1
-416,58,1047,519,25,63,1,1,1
-417,58,1033,518,25,64,1,1,1
-418,58,1019,517,25,64,1,1,1
-419,58,1005,517,26,64,1,1,1
-420,58,995,516,20,63,1,1,1
-421,58,977,515,22,62,1,1,1
-422,58,960,514,24,62,1,1,1
-423,58,943,511,24,64,1,1,1
-424,58,927,509,24,65,1,1,1
-425,58,909,509,24,65,1,1,1
-426,58,891,510,24,65,1,1,1
-427,58,873,511,25,64,1,1,0.93846
-428,58,855,512,25,64,1,1,0.90059
-429,58,837,513,26,64,1,1,0.86211
-430,58,820,515,26,64,1,1,0.82051
-431,58,801,518,26,64,1,1,0.79658
-432,58,783,520,26,64,1,1,0.77436
-433,58,762,520,26,64,1,1,0.74929
-434,58,742,520,26,64,1,1,0.70142
-435,58,721,520,26,65,1,1,0.67172
-436,58,701,520,26,65,1,1,0.65825
-437,58,680,520,26,66,1,1,0.63958
-438,58,660,520,26,66,1,1,0.63682
-439,58,640,520,26,67,1,1,0.60948
-440,58,616,519,26,66,1,1,0.66169
-441,58,592,519,26,65,1,1,0.69192
-442,58,569,519,26,64,1,1,0.72422
-443,58,545,519,26,63,1,1,0.76215
-444,58,522,519,26,62,1,1,0.73956
-445,58,498,524,29,60,1,1,0.69891
-446,58,473,521,30,62,1,1,0.75576
-447,58,449,518,31,65,1,1,0.73201
-314,59,1282,520,21,48,1,1,0.57143
-315,59,1285,520,22,49,1,1,0.56
-316,59,1289,521,23,50,1,1,0.5098
-317,59,1297,522,18,52,1,1,0.45283
-318,59,1299,521,21,51,1,1,0.46154
-319,59,1303,520,20,52,1,1,0.4717
-320,59,1307,520,20,53,1,1,0.46296
-321,59,1311,519,20,55,1,1,0.46429
-322,59,1315,519,19,55,1,1,0.48214
-323,59,1319,518,19,57,1,1,0.43103
-324,59,1323,518,19,58,1,1,0.38983
-325,59,1327,515,20,58,1,1,0.42373
-326,59,1329,513,20,57,1,1,0.46552
-327,59,1331,511,20,56,1,1,0.50877
-328,59,1333,509,21,56,1,1,0.54386
-329,59,1335,507,21,55,1,1,0.57143
-330,59,1338,505,21,55,1,1,0.60714
-331,59,1338,502,24,55,1,1,0.625
-332,59,1339,500,26,55,1,1,0.58929
-333,59,1341,497,26,56,1,1,0.58025
-334,59,1344,495,25,57,1,1,0.55172
-335,59,1346,495,25,57,1,1,0.51724
-336,59,1348,495,25,57,1,1,0.5
-337,59,1351,495,25,57,1,1,0.48276
-338,59,1353,490,25,57,1,1,0.55172
-339,59,1354,491,25,57,1,1,0.51724
-340,59,1356,492,25,57,1,1,0.5
-341,59,1357,495,22,56,1,1,0.45919
-342,59,1358,498,19,56,1,1,0.4193
-343,59,1359,501,22,56,1,1,0.40503
-344,59,1361,505,25,55,1,1,0.41277
-345,59,1362,507,25,55,1,1,0.39698
-346,59,1363,509,25,55,1,1,0.41346
-347,59,1364,511,25,55,1,1,0.41277
-348,59,1366,513,24,55,1,1,0.42857
-349,59,1367,515,24,55,1,1,0.42643
-350,59,1368,517,24,55,1,1,0.44214
-351,59,1370,519,23,55,1,1,0.43973
-352,59,1371,521,23,55,1,1,0.43155
-353,59,1372,523,23,55,1,1,0.42411
-354,59,1374,525,23,56,1,1,0.50877
-355,59,1375,526,20,55,1,1,0.45918
-356,59,1375,527,20,55,1,1,0.45918
-357,59,1375,528,21,56,1,1,0.42026
-358,59,1376,530,20,56,1,1,0.54386
-359,59,1376,531,21,57,1,1,0.53448
-360,59,1377,532,20,57,1,1,0.55172
-361,59,1377,534,21,57,1,1,0.53448
-362,59,1378,535,20,58,1,1,0.54237
-363,59,1378,536,21,59,1,1,0.55
-364,59,1379,538,21,59,1,1,0.53333
-365,59,1379,539,21,59,1,1,0.53333
-366,59,1379,540,21,60,1,1,0.52459
-367,59,1379,541,21,60,1,1,0.54098
-368,59,1379,542,22,61,1,1,0.53226
-369,59,1380,544,21,61,1,1,0.51613
-370,59,1380,545,21,61,1,1,0.44135
-371,59,1380,546,22,62,1,1,0.44099
-372,59,1380,547,22,62,1,1,0.52381
-373,59,1380,548,22,63,1,1,0.53125
-374,59,1381,550,22,63,1,1,0.46875
-375,59,1379,548,22,62,1,1,0.47619
-376,59,1378,546,21,62,1,1,0.49206
-377,59,1376,544,21,62,1,1,0.49206
-378,59,1375,542,20,62,1,1,0.50794
-379,59,1373,541,20,61,1,1,0.5
-380,59,1372,539,19,61,1,1,0.5
-381,59,1370,537,19,61,1,1,0.51613
-382,59,1369,535,18,61,1,1,0.51613
-383,59,1367,533,18,61,1,1,0.53226
-384,59,1366,532,18,60,1,1,0.54098
-385,59,1362,531,18,61,1,1,0.54839
-386,59,1358,531,18,61,1,1,0.53226
-387,59,1354,531,19,62,1,1,0.52381
-388,59,1350,531,19,62,1,1,0.52381
-389,59,1346,531,19,62,1,1,0.50794
-390,59,1342,531,20,63,1,1,0.5
-391,59,1338,531,21,64,1,1,0.45734
-392,59,1332,531,20,64,1,1,0.3707
-393,59,1326,531,20,64,1,1,0.41099
-394,59,1321,531,19,65,1,1,0.45455
-395,59,1314,530,19,65,1,1,0.4697
-396,59,1307,530,19,64,1,1,0.47692
-397,59,1300,530,19,63,1,1,0.46875
-398,59,1294,530,19,62,1,1,0.47619
-399,59,1285,529,21,61,1,1,0.52273
-400,59,1277,529,22,60,1,1,0.51461
-401,59,1268,529,21,59,1,1,0.47727
-402,59,1260,529,20,59,1,1,0.5
-403,59,1251,529,20,58,1,1,0.52865
-404,59,1243,529,19,58,1,1,0.36864
-405,59,1232,528,19,58,1,1,0.35593
-406,59,1222,527,19,58,1,1,0.33051
-407,59,1212,526,19,58,1,1,0.39407
-408,59,1202,525,19,58,1,1,0.4339
-409,59,1190,524,19,58,1,1,0.40678
-410,59,1178,523,19,58,1,1,0.39153
-411,59,1167,523,19,58,1,1,0.37966
-412,59,1154,522,19,58,1,1,0.41949
-413,59,1142,522,19,58,1,1,0.44746
-414,59,1130,522,19,58,1,1,0.47288
-415,59,1113,523,19,58,1,1,0.3322
-416,59,1098,519,22,57,1,1,0.37706
-417,59,1085,519,19,58,1,1,0.31949
-418,59,1072,519,19,58,1,1,0.3322
-419,59,1056,517,19,58,1,1,0.26864
-420,59,1042,516,19,58,1,1,0.25932
-66,60,1602,496,14,57,1,1,0.26782
-67,60,1600,510,15,58,1,1,0.27331
-68,60,1598,506,16,59,1,1,0.49608
-69,60,1598,513,19,59,1,1,0.48167
-70,60,1594,510,20,59,1,1,0.7381
-71,60,1591,510,20,59,1,1,0.84524
-72,60,1588,510,20,59,1,1,0.88651
-73,60,1585,510,21,59,1,1,0.15758
-74,60,1582,510,22,59,1,1,0.13333
-75,60,1580,511,22,59,1,1,0.17464
-76,60,1578,512,22,58,1,1,0.11864
-77,60,1574,511,22,58,1,1,0.13559
-78,60,1571,511,22,58,1,1,0.16875
-79,60,1567,510,23,59,1,1,0.71111
-80,60,1564,510,22,58,1,1,0.22034
-81,60,1561,510,22,58,1,1,0.25129
-82,60,1557,509,23,59,1,1,0.21389
-83,60,1554,509,22,58,1,1,0.14444
-84,60,1550,508,23,59,1,1,0.21319
-85,60,1547,508,23,59,1,1,0.16944
-86,60,1544,508,23,59,1,1,0.21319
-87,60,1540,509,23,59,1,1,0.25625
-88,60,1536,510,23,59,1,1,0.29653
-89,60,1532,511,23,59,1,1,0.29583
-90,60,1528,513,23,59,1,1,0.28125
-91,60,1524,514,24,59,1,1,0.31
-92,60,1520,515,24,59,1,1,0.30933
-93,60,1516,517,24,59,1,1,0.39933
-94,60,1512,518,24,59,1,1,0.364
-95,60,1508,519,24,59,1,1,0.34133
-96,60,1505,521,24,59,1,1,0.28
-97,60,1500,521,24,59,1,1,0.28067
-98,60,1496,521,23,60,1,1,0.24863
-99,60,1491,521,24,60,1,1,0.24262
-100,60,1487,522,23,60,1,1,0.1735
-101,60,1483,522,23,60,1,1,0.1735
-102,60,1478,522,23,61,1,1,0.17204
-103,60,1474,523,22,60,1,1,0.20171
-104,60,1469,523,23,61,1,1,0.28495
-105,60,1465,523,22,61,1,1,0.2805
-106,60,1461,524,22,61,1,1,0.41094
-107,60,1456,523,22,61,1,1,0.41094
-108,60,1451,523,22,61,1,1,0.45021
-109,60,1446,523,22,61,1,1,0.45021
-110,60,1441,523,22,61,1,1,0.48948
-111,60,1436,523,23,61,1,1,0.51075
-112,60,1431,522,23,62,1,1,0.56349
-113,60,1426,522,23,62,1,1,0.64286
-114,60,1421,522,23,62,1,1,0.39286
-115,60,1416,522,23,62,1,1,0.34259
-116,60,1411,522,24,62,1,1,0.32063
-117,60,1405,521,24,62,1,1,0.020952
-118,60,1400,520,24,62,1,1,0.097143
-119,60,1395,519,24,63,1,1,0.215
-120,60,1390,518,23,63,1,1,0.26042
-121,60,1384,518,24,62,1,1,0.36508
-122,60,1379,517,24,63,1,1,0.36312
-123,60,1374,516,23,63,1,1,0.41667
-124,60,1369,515,23,63,1,1,0.375
-125,60,1364,515,23,63,1,1,0.375
-126,60,1360,517,23,62,1,1,0.29365
-127,60,1357,519,24,62,1,1,0.2419
-128,60,1348,520,24,62,1,1,0.32
-129,60,1342,519,22,62,1,1,0.086957
-130,60,1342,519,22,62,1,1,0
-131,60,1332,519,22,62,1,1,0.05176
-132,60,1328,519,23,61,1,1,0.056452
-71,61,1601,510,20,51,1,1,0.054945
-72,61,1598,510,20,52,1,1,0.077269
-73,61,1596,510,20,53,1,1,0.16843
-74,61,1594,510,19,54,1,1,0.040909
-75,61,1592,511,19,54,1,1,0.073636
-76,61,1588,511,20,54,1,1,0.066667
-77,61,1585,511,20,54,1,1,0.054545
-78,61,1582,511,20,54,1,1,0.046753
-79,61,1579,510,19,55,1,1,0.042857
-80,61,1576,509,18,56,1,1,0.054478
-81,61,1573,509,17,57,1,1,0.050766
-82,61,1570,508,16,58,1,1,0.046859
-83,61,1567,508,15,59,1,1,0.045833
-84,61,1564,506,20,53,1,1,0.089065
-85,61,1557,508,20,56,1,1,0.042607
-86,61,1556,508,22,55,1,1,0.045031
-87,61,1552,508,22,56,1,1,0.065599
-88,61,1548,509,22,56,1,1,0.070938
-89,61,1544,510,22,56,1,1,0.074752
-90,61,1541,511,22,56,1,1,0.09077
-91,61,1537,513,22,56,1,1,0.074752
-92,61,1534,515,21,56,1,1,0.059809
-93,61,1530,516,20,53,1,1,0.074956
-94,61,1525,517,20,55,1,1,0.072279
-95,61,1521,519,20,56,1,1,0.056809
-96,61,1516,519,20,56,1,1,0.070175
-97,61,1512,519,20,57,1,1,0.08046
-98,61,1508,519,20,57,1,1,0.133
-99,61,1504,519,20,58,1,1,0.13801
-100,61,1500,520,20,57,1,1,0.22414
-101,61,1495,520,21,58,1,1,0.21957
-102,61,1491,520,21,58,1,1,0.30431
-103,61,1487,520,21,59,1,1,0.35455
-104,61,1483,520,21,59,1,1,0.31667
-105,61,1479,521,21,59,1,1,0.31288
-106,61,1477,521,20,57,1,1,0.26108
-107,61,1470,520,21,60,1,1,0.30999
-108,61,1467,520,23,60,1,1,0.41325
-58,62,1268,497,21,53,1,1,0.98316
-59,62,1268,496,21,52,1,1,1
-60,62,1268,496,21,51,1,1,1
-61,62,1268,495,21,50,1,1,1
-62,62,1268,495,21,49,1,1,1
-63,62,1269,495,21,48,1,1,1
-64,62,1269,497,22,47,1,1,1
-65,62,1270,499,22,47,1,1,0.95652
-66,62,1271,501,22,47,1,1,1
-67,62,1272,504,22,46,1,1,1
-68,62,1269,502,22,46,1,1,1
-69,62,1267,502,22,46,1,1,1
-70,62,1266,502,22,46,1,1,1
-71,62,1265,503,22,46,1,1,1
-72,62,1264,503,22,46,1,1,1
-73,62,1262,503,22,47,1,1,1
-74,62,1261,504,22,46,1,1,1
-75,62,1260,504,22,47,1,1,1
-76,62,1259,504,22,47,1,1,1
-77,62,1258,505,22,47,1,1,1
-78,62,1255,505,22,47,1,1,1
-79,62,1253,505,22,47,1,1,1
-80,62,1251,505,22,47,1,1,1
-81,62,1249,505,22,47,1,1,0.95833
-82,62,1247,505,22,47,1,1,0.91667
-83,62,1244,505,22,47,1,1,0.91667
-84,62,1242,505,22,47,1,1,0.87228
-85,62,1240,505,22,47,1,1,0.82971
-86,62,1238,505,22,47,1,1,0.78714
-87,62,1236,505,22,47,1,1,0.74457
-88,62,1233,506,22,47,1,1,0.73913
-89,62,1230,507,22,47,1,1,0.69565
-90,62,1227,508,22,47,1,1,0.69565
-91,62,1224,509,22,47,1,1,0.69565
-92,62,1221,510,23,47,1,1,0.66667
-93,62,1218,511,23,47,1,1,0.63281
-94,62,1215,512,23,47,1,1,0.63281
-95,62,1212,513,23,47,1,1,0.63281
-96,62,1209,514,23,47,1,1,0.63281
-97,62,1207,515,23,48,1,1,0.60034
-98,62,1204,517,22,48,1,1,0.74978
-99,62,1201,517,21,48,1,1,0.73284
-100,62,1198,517,21,48,1,1,0.73284
-101,62,1195,517,21,48,1,1,0.73284
-102,62,1192,517,20,48,1,1,0.76676
-103,62,1189,517,20,48,1,1,0.71429
-104,62,1186,517,20,48,1,1,0.71429
-105,62,1183,517,19,48,1,1,0.75
-106,62,1180,517,19,48,1,1,0.75
-107,62,1177,518,19,47,1,1,0.75
-108,62,1173,518,19,47,1,1,0.80417
-109,62,1170,518,19,47,1,1,0.77083
-110,62,1167,518,19,47,1,1,0.71875
-111,62,1164,518,19,48,1,1,0.67143
-112,62,1161,519,19,47,1,1,0.67917
-113,62,1157,519,19,47,1,1,0.71875
-114,62,1154,519,19,48,1,1,0.76531
-115,62,1151,519,19,48,1,1,0.66429
-116,62,1148,519,19,48,1,1,0.72449
-117,62,1145,520,19,48,1,1,0.67143
-118,62,1141,519,19,48,1,1,0.71224
-119,62,1137,519,19,48,1,1,0.66429
-120,62,1133,519,19,48,1,1,0.65714
-121,62,1129,519,19,48,1,1,0.65
-122,62,1125,519,19,48,1,1,0.6
-123,62,1121,518,19,49,1,1,0.65
-124,62,1117,518,19,49,1,1,0.7
-125,62,1113,518,19,49,1,1,0.75
-126,62,1109,518,19,49,1,1,0.75
-127,62,1106,518,19,49,1,1,0.7
-128,62,1102,518,19,49,1,1,0.7
-129,62,1098,518,20,49,1,1,0.81333
-130,62,1095,518,19,50,1,1,0.80392
-131,62,1091,519,20,49,1,1,0.76667
-132,62,1088,519,19,50,1,1,0.71176
-133,62,1084,519,20,50,1,1,0.81699
-134,62,1080,520,20,49,1,1,0.77619
-135,62,1077,520,20,50,1,1,0.73109
-136,62,1073,520,20,50,1,1,0.81699
-137,62,1070,521,20,50,1,1,0.71429
-138,62,1067,520,19,51,1,1,0.8
-139,62,1064,520,19,51,1,1,0.65673
-140,62,1061,519,19,52,1,1,0.75472
-141,62,1058,519,19,52,1,1,0.75943
-142,62,1055,519,19,53,1,1,0.85833
-143,62,1052,518,18,54,1,1,1
-144,62,1049,518,18,54,1,1,0.90048
-145,62,1046,517,18,55,1,1,0.8562
-146,62,1043,517,18,55,1,1,0.85338
-147,62,1040,517,18,56,1,1,0.85319
-148,62,1036,517,17,56,1,1,1
-149,62,1032,517,17,57,1,1,1
-150,62,1028,517,17,57,1,1,0.94828
-151,62,1024,517,17,58,1,1,1
-152,62,1020,517,17,58,1,1,1
-153,62,1016,517,17,59,1,1,0.94907
-154,62,1012,517,17,59,1,1,0.84444
-155,62,1008,517,17,60,1,1,0.89617
-156,62,1004,517,17,60,1,1,0.84153
-157,62,1000,518,17,60,1,1,0.89071
-158,62,996,518,18,60,1,1,0.84469
-159,62,993,518,18,60,1,1,0.79638
-160,62,989,518,19,60,1,1,0.7582
-161,62,986,518,19,60,1,1,0.80656
-162,62,983,519,19,59,1,1,0.80667
-163,62,979,519,20,59,1,1,0.76984
-164,62,976,519,20,59,1,1,0.81587
-165,62,972,519,21,59,1,1,1
-166,62,969,519,21,59,1,1,1
-167,62,966,520,21,58,1,1,0.81818
-168,62,963,520,21,58,1,1,1
-169,62,961,520,21,58,1,1,1
-170,62,959,520,21,58,1,1,0.77273
-171,62,956,520,21,58,1,1,0.77273
-172,62,954,520,21,58,1,1,1
-173,62,952,520,21,58,1,1,1
-174,62,949,520,21,58,1,1,1
-175,62,947,520,21,58,1,1,1
-176,62,945,520,21,58,1,1,1
-177,62,943,520,21,58,1,1,0.86364
-178,62,941,520,21,58,1,1,0.90909
-179,62,939,520,21,58,1,1,0.81818
-180,62,937,520,21,59,1,1,0.68182
-181,62,935,521,21,58,1,1,0.68182
-182,62,933,521,22,59,1,1,0.86957
-183,62,931,521,22,59,1,1,0.73913
-184,62,929,522,22,58,1,1,0.73913
-185,62,927,522,22,59,1,1,1
-186,62,925,522,22,59,1,1,0.69565
-187,62,924,523,22,59,1,1,0.73913
-188,62,922,523,23,60,1,1,0.79167
-189,62,921,524,24,60,1,1,0.8
-190,62,920,525,25,61,1,1,0.95906
-191,62,917,525,26,61,1,1,0.94504
-192,62,915,525,26,62,1,1,0.93239
-193,62,912,525,28,63,1,1,0.92241
-194,62,910,525,28,63,1,1,0.90571
-195,62,907,525,30,64,1,1,0.89677
-196,62,905,525,30,65,1,1,0.88123
-197,62,903,526,31,65,1,1,0.87689
-198,62,901,528,31,65,1,1,0.86979
-199,62,907,527,26,64,1,1,0.78462
-200,62,911,526,27,64,1,1,0.49121
-26,63,1587,512,23,43,1,1,0.625
-27,63,1584,512,22,49,1,1,0.39652
-28,63,1586,515,22,48,1,1,0.5528
-29,63,1589,518,21,48,1,1,0.49629
-30,63,1589,519,22,49,1,1,0.60435
-31,63,1590,521,22,49,1,1,0.67391
-32,63,1592,525,19,48,1,1,0.87245
-33,63,1592,513,20,48,1,1,0.95724
-34,63,1592,516,21,48,1,1,0.91466
-35,63,1593,514,21,49,1,1,1
-36,63,1593,510,22,49,1,1,0.83478
-37,63,1593,507,23,49,1,1,0.685
-38,63,1594,505,23,49,1,1,0.57333
-39,63,1595,506,23,49,1,1,0.43167
-40,63,1596,507,23,49,1,1,0.335
-41,63,1597,508,23,49,1,1,0.24
-42,63,1598,509,23,49,1,1,0.24
-43,63,1599,511,23,49,1,1,0.22
-44,63,1600,512,23,49,1,1,0.36667
-45,63,1601,513,23,49,1,1,0.47583
-46,63,1602,514,23,49,1,1,0.58
-47,63,1604,516,23,49,1,1,0.67
-48,63,1605,515,23,49,1,1,0.78
-49,63,1606,515,23,49,1,1,0.85667
-58,64,1291,505,19,50,1,1,1
-59,64,1291,504,18,49,1,1,1
-60,64,1291,503,18,48,1,1,1
-61,64,1291,502,18,47,1,1,1
-62,64,1292,499,18,48,1,1,1
-63,64,1293,497,19,48,1,1,1
-64,64,1292,497,18,50,1,1,1
-65,64,1292,498,21,48,1,1,0.95547
-66,64,1292,499,20,48,1,1,0.90865
-67,64,1292,500,20,49,1,1,0.86857
-68,64,1293,502,19,49,1,1,1
-69,64,1291,502,18,51,1,1,1
-70,64,1291,502,16,51,1,1,1
-71,64,1292,503,14,50,1,1,1
-72,64,1290,503,15,50,1,1,1
-73,64,1288,504,16,50,1,1,1
-74,64,1287,505,16,49,1,1,1
-75,64,1285,505,17,50,1,1,1
-76,64,1284,506,17,49,1,1,1
-77,64,1282,507,18,49,1,1,1
-78,64,1281,508,19,49,1,1,1
-79,64,1277,507,19,49,1,1,1
-80,64,1274,507,19,49,1,1,1
-81,64,1271,507,19,49,1,1,1
-82,64,1268,507,19,48,1,1,1
-83,64,1265,507,19,48,1,1,1
-84,64,1262,506,19,49,1,1,1
-85,64,1259,506,19,48,1,1,1
-86,64,1256,506,19,48,1,1,1
-87,64,1253,506,19,48,1,1,1
-88,64,1250,506,19,48,1,1,1
-89,64,1246,507,19,48,1,1,1
-90,64,1243,508,19,48,1,1,1
-91,64,1240,509,19,48,1,1,1
-92,64,1237,510,19,48,1,1,1
-93,64,1233,512,19,48,1,1,1
-94,64,1230,513,19,48,1,1,1
-95,64,1227,514,19,48,1,1,1
-96,64,1224,515,19,48,1,1,1
-97,64,1221,517,19,48,1,1,1
-98,64,1221,519,19,48,1,1,1
-99,64,1217,518,19,48,1,1,1
-100,64,1214,518,19,48,1,1,1
-101,64,1211,518,19,48,1,1,1
-102,64,1208,518,19,48,1,1,1
-103,64,1204,517,20,49,1,1,1
-104,64,1201,517,20,49,1,1,1
-105,64,1198,517,20,49,1,1,1
-106,64,1195,517,20,49,1,1,1
-107,64,1192,517,20,49,1,1,1
-108,64,1189,519,20,50,1,1,1
-109,64,1185,522,22,49,1,1,1
-110,64,1181,521,22,49,1,1,1
-111,64,1177,521,20,48,1,1,1
-112,64,1174,523,20,47,1,1,1
-113,64,1171,522,20,48,1,1,1
-114,64,1169,522,20,49,1,1,1
-115,64,1164,521,18,50,1,1,1
-116,64,1162,523,18,49,1,1,1
-117,64,1158,523,16,49,1,1,1
-118,64,1155,521,18,48,1,1,1
-119,64,1150,521,22,51,1,1,1
-120,64,1146,520,21,52,1,1,1
-121,64,1142,519,22,52,1,1,1
-122,64,1137,518,22,52,1,1,1
-123,64,1134,518,22,52,1,1,1
-124,64,1131,518,22,52,1,1,1
-125,64,1128,518,22,52,1,1,1
-126,64,1124,518,21,52,1,1,1
-127,64,1120,517,20,54,1,1,1
-128,64,1116,518,20,53,1,1,1
-129,64,1115,519,22,53,1,1,1
-130,64,1111,519,22,54,1,1,1
-131,64,1107,520,22,54,1,1,1
-132,64,1102,521,22,54,1,1,1
-133,64,1101,521,25,53,1,1,1
-134,64,1096,523,25,52,1,1,1
-135,64,1092,523,25,52,1,1,1
-136,64,1090,522,25,53,1,1,1
-137,64,1085,521,25,53,1,1,1
-138,64,1083,520,21,51,1,1,0.81818
-139,64,1077,521,25,51,1,1,1
-140,64,1076,520,25,52,1,1,1
-141,64,1073,521,23,51,1,1,1
-142,64,1072,522,22,50,1,1,0.86957
-143,64,1068,521,22,50,1,1,0.86957
-144,64,1066,521,22,52,1,1,1
-145,64,1062,522,23,52,1,1,1
-146,64,1059,521,24,52,1,1,1
-147,64,1056,521,22,54,1,1,1
-148,64,1054,521,22,54,1,1,1
-149,64,1051,521,22,54,1,1,1
-150,64,1045,521,22,55,1,1,1
-151,64,1042,522,22,55,1,1,1
-152,64,1038,523,22,55,1,1,1
-153,64,1033,522,22,55,1,1,1
-154,64,1027,521,22,57,1,1,1
-155,64,1024,521,22,58,1,1,1
-156,64,1019,520,21,59,1,1,1
-157,64,1016,519,21,60,1,1,1
-158,64,1012,519,21,61,1,1,1
-159,64,1008,520,20,58,1,1,0.80952
-160,64,1004,520,20,58,1,1,0.7619
-161,64,1002,520,20,58,1,1,0.80952
-162,64,999,521,20,59,1,1,1
-163,64,995,521,20,59,1,1,1
-164,64,993,521,19,58,1,1,1
-165,64,990,521,18,56,1,1,0.78947
-166,64,987,521,18,56,1,1,0.78947
-167,64,984,520,17,59,1,1,1
-327,65,1469,528,29,82,1,1,0.20964
-328,65,1472,528,29,83,1,1,0.18571
-329,65,1474,527,30,84,1,1,0.15484
-330,65,1474,527,31,84,1,1,0.098529
-331,65,1477,524,31,86,1,1,0.092672
-332,65,1481,521,31,88,1,1,0.12079
-333,65,1485,519,31,89,1,1,0.20972
-334,65,1488,516,31,90,1,1,0.21806
-335,65,1491,513,31,91,1,1,0.2697
-336,65,1494,510,31,92,1,1,0.33367
-337,65,1500,512,29,93,1,1,0.3117
-338,65,1502,510,30,93,1,1,0.30714
-339,65,1505,511,30,93,1,1,0.35827
-340,65,1508,512,31,94,1,1,0.33684
-341,65,1510,515,32,95,1,1,0.59375
-342,65,1513,518,32,96,1,1,0.58763
-343,65,1515,522,33,97,1,1,0.57143
-344,65,1518,525,33,98,1,1,0.57576
-345,65,1521,529,33,99,1,1,0.56
-346,65,1525,531,32,100,1,1,0.56436
-347,65,1525,532,33,101,1,1,0.57843
-348,65,1527,538,32,101,1,1,0.55882
-349,65,1529,537,32,101,1,1,0.57843
-350,65,1532,536,32,101,1,1,0.60784
-351,65,1535,536,32,101,1,1,0.62745
-352,65,1537,538,34,100,1,1,0.63366
-353,65,1539,539,33,100,1,1,0.29121
-354,65,1542,540,32,100,1,1,0.32133
-355,65,1547,544,33,98,1,1,0.36869
-356,65,1548,546,33,97,1,1,0.36735
-357,65,1550,546,34,101,1,1,0.38571
-358,65,1551,548,35,101,1,1,0.37255
-359,65,1553,550,35,101,1,1,0.38889
-360,65,1555,552,35,101,1,1,0.38943
-361,65,1556,555,36,100,1,1,0.37463
-362,65,1558,557,36,100,1,1,0.39122
-363,65,1560,559,36,100,1,1,0.39657
-364,65,1561,562,37,99,1,1,0.38158
-365,65,1563,564,37,99,1,1,0.38632
-366,65,1565,566,37,99,1,1,0.39158
-367,65,1567,569,37,98,1,1,0.38543
-368,65,1569,570,37,98,1,1,0.40564
-369,65,1572,571,37,98,1,1,0.42132
-370,65,1573,571,37,98,1,1,0.41467
-371,65,1574,571,37,98,1,1,0.41414
-372,65,1575,571,37,98,1,1,0.41946
-373,65,1577,571,37,98,1,1,0.44604
-374,65,1576,571,41,104,1,1,0.422
-375,65,1576,569,41,105,1,1,0.41914
-376,65,1576,568,41,109,1,1,0.41905
-377,65,1577,568,36,109,1,1,0.65455
-378,65,1578,567,36,105,1,1,0.42682
-379,65,1579,566,36,102,1,1,0.45893
-380,65,1577,561,40,108,1,1,0.45939
-381,65,1576,558,40,110,1,1,0.45924
-382,65,1573,557,39,111,1,1,0.43214
-383,65,1571,556,40,111,1,1,0.42334
-384,65,1570,556,39,111,1,1,0.43036
-385,65,1567,554,40,113,1,1,0.41913
-386,65,1565,554,38,113,1,1,0.39946
-387,65,1562,551,42,117,1,1,0.44285
-388,65,1560,555,42,119,1,1,0.675
-389,65,1556,555,42,117,1,1,0.41742
-390,65,1552,555,42,116,1,1,0.41224
-391,65,1547,558,41,115,1,1,0.35099
-392,65,1541,557,42,118,1,1,0.68908
-393,65,1536,557,42,120,1,1,0.68595
-394,65,1530,557,41,120,1,1,0.68595
-395,65,1525,557,40,121,1,1,0.68852
-396,65,1517,556,43,120,1,1,0.71074
-397,65,1514,557,40,120,1,1,0.71074
-398,65,1505,556,42,121,1,1,0.72131
-399,65,1496,556,45,119,1,1,0.74167
-400,65,1487,556,44,121,1,1,0.72131
-401,65,1477,556,50,119,1,1,0.73333
-402,65,1468,556,49,121,1,1,0.71311
-403,65,1459,556,48,121,1,1,0.71311
-404,65,1450,556,48,121,1,1,0.71311
-405,65,1441,556,45,121,1,1,0.71311
-406,65,1429,556,48,121,1,1,0.72131
-407,65,1423,556,43,119,1,1,0.74167
-408,65,1410,553,48,123,1,1,0.74194
-409,65,1398,552,47,126,1,1,0.73228
-410,65,1387,552,45,128,1,1,0.72093
-411,65,1377,552,45,129,1,1,0.72308
-412,65,1363,551,45,128,1,1,0.73643
-413,65,1350,551,44,127,1,1,0.74219
-414,65,1338,550,45,130,1,1,0.73282
-415,65,1324,550,44,127,1,1,0.75
-416,65,1311,550,42,124,1,1,0.48
-417,65,1298,550,40,122,1,1,0.47452
-418,65,1280,546,43,127,1,1,0.48757
-419,65,1262,544,48,129,1,1,0.7314
-420,65,1248,543,46,129,1,1,0.75188
-421,65,1233,543,46,129,1,1,0.75139
-422,65,1217,543,46,129,1,1,0.73453
-423,65,1198,543,46,129,1,1,0.66907
-424,65,1180,543,45,129,1,1,0.68294
-425,65,1161,543,46,129,1,1,0.6527
-426,65,1143,543,45,129,1,1,0.80769
-427,65,1125,543,45,130,1,1,0.55792
-428,65,1108,544,43,129,1,1,0.62203
-429,65,1092,545,40,129,1,1,0.77336
-430,65,1068,551,46,130,1,1,0.7031
-431,65,1047,552,46,130,1,1,0.77473
-432,65,1026,553,46,131,1,1,0.70084
-433,65,1005,555,47,131,1,1,0.66193
-434,65,984,556,47,132,1,1,0.69424
-435,65,963,558,48,132,1,1,0.71106
-436,65,942,559,48,133,1,1,0.72677
-437,65,921,561,49,133,1,1,0.74254
-438,65,900,561,49,133,1,1,0.75672
-439,65,879,561,49,134,1,1,0.78785
-440,65,858,561,49,134,1,1,0.81822
-441,65,837,562,50,134,1,1,0.82658
-442,65,812,561,62,134,1,1,0.85714
-443,65,793,561,60,135,1,1,0.91176
-444,65,771,562,57,136,1,1,0.91241
-445,65,749,563,54,138,1,1,0.58143
-446,65,727,564,51,139,1,1,0.17582
-447,65,705,565,49,141,1,1,0.42986
-448,65,678,564,61,141,1,1,0.81554
-449,65,654,562,63,142,1,1,0.97957
-450,65,631,560,64,144,1,1,0.993
-451,65,605,558,60,149,1,1,1
-452,65,582,558,59,150,1,1,1
-453,65,554,558,61,151,1,1,1
-454,65,528,557,60,151,1,1,1
-455,65,499,557,67,154,1,1,1
-456,65,471,557,73,157,1,1,1
-457,65,443,557,80,160,1,1,1
-458,65,410,556,88,161,1,1,0.96588
-459,65,377,566,95,159,1,1,0.91224
-460,65,345,566,92,158,1,1,0.87692
-461,65,313,568,90,159,1,1,0.83283
-462,65,282,570,89,160,1,1,0.86294
-463,65,251,572,89,162,1,1,0.91166
-464,65,215,571,92,162,1,1,0.89056
-465,65,187,571,88,165,1,1,0.85921
-466,65,160,571,84,169,1,1,0.81045
-467,65,129,571,83,169,1,1,0.78445
-468,65,100,571,79,169,1,1,0.73176
-469,65,72,571,74,170,1,1,0.69996
-470,65,38,567,74,175,1,1,0.64409
-471,65,1,566,72,174,1,1,0.62278
-327,66,1520,547,28,76,1,1,0.056426
-328,66,1524,546,29,77,1,1,0.046154
-329,66,1529,545,29,78,1,1,0.037975
-330,66,1537,545,29,80,1,1,0.032922
-331,66,1539,541,30,81,1,1,0.02203
-332,66,1542,538,30,83,1,1,0.015361
-333,66,1546,536,30,85,1,1,0.013503
-334,66,1553,533,30,82,1,1,0.019433
-335,66,1556,528,30,83,1,1,0.043011
-336,66,1560,526,30,84,1,1,0.035294
-337,66,1565,524,30,86,1,1,0.03337
-45,67,1386,506,16,44,1,1,0.58824
-46,67,1387,508,16,45,1,1,0.64706
-47,67,1388,511,17,45,1,1,0.72222
-48,67,1388,511,18,45,1,1,0.79291
-49,67,1389,512,18,45,1,1,0.79405
-50,67,1389,513,19,45,1,1,0.7587
-51,67,1390,514,19,45,1,1,0.76087
-52,67,1389,513,20,45,1,1,0.68116
-53,67,1389,512,20,45,1,1,0.59006
-54,67,1388,511,21,45,1,1,0.53261
-55,67,1388,511,21,45,1,1,0.43478
-56,67,1387,510,21,46,1,1,0.3472
-57,67,1386,509,22,47,1,1,0.2663
-58,67,1386,509,22,47,1,1,0.20833
-59,67,1385,508,22,48,1,1,0.08252
-60,67,1385,508,22,48,1,1,0.08252
-61,67,1384,507,23,49,1,1,0.1425
-62,67,1384,507,23,50,1,1,0.27042
-63,67,1384,498,22,51,1,1,0.31773
-64,67,1385,506,22,51,1,1,0.43813
-65,67,1382,501,23,52,1,1,0.5566
-66,67,1381,502,24,51,1,1,0.58538
-67,67,1380,503,25,51,1,1,0.66642
-68,67,1380,504,25,51,1,1,0.60059
-69,67,1382,508,25,54,1,1,0.55944
-70,67,1381,507,23,48,1,1,0.50255
-71,67,1379,515,26,44,1,1,0.48148
-72,67,1375,507,24,50,1,1,0.71765
-73,67,1372,507,24,50,1,1,0.82745
-74,67,1369,508,24,49,1,1,0.9328
-75,67,1367,508,24,50,1,1,0.96627
-76,67,1364,509,24,49,1,1,1
-77,67,1361,509,24,49,1,1,1
-78,67,1359,510,24,49,1,1,1
-79,67,1356,509,24,49,1,1,1
-80,67,1353,509,24,49,1,1,1
-81,67,1350,508,24,49,1,1,1
-82,67,1348,508,24,49,1,1,1
-83,67,1345,508,23,50,1,1,1
-84,67,1342,509,23,50,1,1,1
-85,67,1339,510,23,50,1,1,1
-86,67,1336,511,22,50,1,1,1
-87,67,1333,512,22,50,1,1,1
-88,67,1330,512,22,51,1,1,1
-89,67,1327,513,21,51,1,1,1
-90,67,1324,514,21,51,1,1,1
-91,67,1321,515,21,51,1,1,1
-92,67,1318,516,21,51,1,1,1
-93,67,1314,516,22,51,1,1,1
-94,67,1311,517,22,51,1,1,1
-95,67,1306,518,22,51,1,1,1
-96,67,1301,520,22,51,1,1,1
-97,67,1297,520,22,51,1,1,1
-98,67,1292,521,23,51,1,1,0.87019
-99,67,1288,523,23,51,1,1,0.90865
-100,67,1285,522,22,51,1,1,0.8888
-101,67,1280,522,23,51,1,1,0.88221
-102,67,1277,522,23,51,1,1,0.88221
-103,67,1274,522,22,51,1,1,0.83946
-104,67,1269,521,22,51,1,1,0.699
-105,67,1265,523,21,51,1,1,0.68357
-106,67,1261,522,21,48,1,1,0.58442
-107,67,1257,521,21,45,1,1,0.48814
-108,67,1253,519,21,51,1,1,0.40385
-109,67,1252,521,18,48,1,1,0.48443
-110,67,1243,522,22,53,1,1,0.37842
-111,67,1243,522,22,53,1,1,0.54106
-330,68,1498,543,35,86,1,1,0.1143
-331,68,1485,536,35,85,1,1,0.28747
-332,68,1473,530,35,83,1,1,0.066799
-333,68,1461,524,34,81,1,1,0.21742
-334,68,1449,518,34,79,1,1,0.48929
-335,68,1451,517,34,79,1,1,0.51214
-336,68,1454,516,34,80,1,1,0.42222
-337,68,1457,516,34,80,1,1,0.4963
-338,68,1459,515,34,81,1,1,0.51568
-339,68,1462,515,34,81,1,1,0.2216
-340,68,1465,515,34,81,1,1,0.25819
-341,68,1467,517,34,82,1,1,0.6
-342,68,1469,520,34,82,1,1,0.57935
-343,68,1471,523,35,82,1,1,0.5656
-344,68,1474,525,34,83,1,1,0.31156
-345,68,1476,528,35,83,1,1,0.32011
-346,68,1478,531,35,83,1,1,0.27216
-347,68,1481,534,35,84,1,1,0.28922
-348,68,1483,536,35,84,1,1,0.38529
-349,68,1485,538,35,85,1,1,0.38953
-350,68,1487,540,35,85,1,1,0.45704
-351,68,1490,542,35,86,1,1,0.41475
-352,68,1494,544,37,89,1,1,0.46754
-353,68,1495,545,39,89,1,1,0.50278
-354,68,1497,547,41,89,1,1,0.42937
-355,68,1500,548,40,89,1,1,0.47696
-356,68,1504,549,32,88,1,1,0.55839
-357,68,1505,551,35,88,1,1,0.54213
-358,68,1506,553,38,89,1,1,0.21652
-359,68,1508,554,37,89,1,1,0.25029
-360,68,1509,557,37,88,1,1,0.24246
-361,68,1511,559,37,88,1,1,0.26079
-362,68,1514,561,37,89,1,1,0.23977
-363,68,1514,560,40,90,1,1,0.27875
-364,68,1516,566,40,90,1,1,0.23479
-365,68,1518,568,36,91,1,1,0.27673
-366,68,1520,570,32,92,1,1,0.3089
-367,68,1522,572,32,93,1,1,0.32592
-368,68,1524,574,32,95,1,1,0.32955
-369,68,1523,574,35,92,1,1,0.33094
-370,68,1523,575,38,89,1,1,0.30997
-371,68,1525,575,35,89,1,1,0.3321
-372,68,1527,575,40,88,1,1,0.28446
-373,68,1531,576,36,95,1,1,0.2469
-374,68,1530,574,37,103,1,1,0.4957
-375,68,1529,572,32,100,1,1,0.22142
-376,68,1528,570,32,98,1,1,0.20324
-377,68,1528,569,32,96,1,1,0.17526
-378,68,1528,568,32,94,1,1,0.14545
-379,68,1528,567,33,93,1,1,0.17804
-380,68,1527,565,36,93,1,1,0.18861
-381,68,1526,563,35,93,1,1,0.24645
-382,68,1526,562,33,93,1,1,0.25532
-383,68,1526,561,32,93,1,1,0.25919
-384,68,1522,560,35,94,1,1,0.20936
-385,68,1518,560,37,94,1,1,0.21828
-386,68,1515,560,38,95,1,1,0.23184
-387,68,1512,560,39,96,1,1,0.22706
-388,68,1508,560,41,97,1,1,0.22157
-389,68,1505,560,42,98,1,1,0.20085
-390,68,1502,560,44,99,1,1,0.21311
-391,68,1503,564,42,101,1,1,0.20565
-392,68,1498,562,41,102,1,1,0.19163
-393,68,1493,561,41,102,1,1,0.18909
-394,68,1484,562,42,101,1,1,0.15595
-395,68,1476,561,42,101,1,1,0.13087
-396,68,1469,561,42,101,1,1,0.11195
-397,68,1462,561,42,101,1,1,0.094847
-398,68,1455,560,42,102,1,1,0.073154
-399,68,1448,560,41,101,1,1,0.12325
-400,68,1441,560,41,101,1,1,0.17624
-401,68,1434,559,41,102,1,1,0.21567
-402,68,1427,559,41,102,1,1,0.21197
-403,68,1420,559,41,102,1,1,0.19233
-404,68,1408,558,42,103,1,1,0.1809
-405,68,1397,558,42,104,1,1,0.16257
-406,68,1385,558,44,105,1,1,0.15556
-407,68,1374,557,44,107,1,1,0.1642
-408,68,1362,557,45,108,1,1,0.17551
-409,68,1351,557,46,109,1,1,0.16712
-410,68,1340,558,47,110,1,1,0.34178
-411,68,1328,558,46,112,1,1,0.34664
-412,68,1317,558,45,114,1,1,0.37505
-413,68,1306,556,45,117,1,1,0.39683
-414,68,1292,555,45,118,1,1,0.41505
-415,68,1278,554,45,119,1,1,0.15815
-416,68,1264,553,45,120,1,1,0.14265
-417,68,1250,552,45,121,1,1,0.13168
-418,68,1235,551,45,122,1,1,0.087133
-419,68,1220,550,45,123,1,1,0.40445
-420,68,1205,549,45,124,1,1,0.408
-421,68,1190,548,45,125,1,1,0.42892
-422,68,1175,547,45,126,1,1,0.47518
-423,68,1160,547,45,127,1,1,0.55299
-424,68,1141,547,45,127,1,1,0.55299
-425,68,1124,547,45,127,1,1,0.58764
-426,68,1104,544,45,127,1,1,0.043139
-427,68,1086,547,45,127,1,1,0.59918
-428,68,1069,548,45,127,1,1,0.032269
-429,68,1049,551,45,127,1,1,0.023438
-430,68,1028,555,45,127,1,1,0.042799
-370,69,1497,582,25,94,1,1,0.47935
-371,69,1497,583,25,94,1,1,0.45547
-372,69,1498,584,25,94,1,1,0.58947
-373,69,1497,582,25,94,1,1,0.51984
-374,69,1497,580,25,94,1,1,0.26883
-375,69,1496,579,25,94,1,1,0.32267
-376,69,1496,577,25,94,1,1,0.28704
-377,69,1496,576,25,94,1,1,0.31741
-378,69,1499,575,26,94,1,1,0.34932
-379,69,1497,574,25,94,1,1,0.36842
-380,69,1495,573,25,94,1,1,0.39474
-381,69,1493,571,25,94,1,1,0.40688
-382,69,1492,570,24,94,1,1,0.41684
-383,69,1490,569,24,97,1,1,0.42449
-384,69,1488,567,24,99,1,1,0.396
-385,69,1485,566,25,100,1,1,0.40823
-386,69,1483,566,25,101,1,1,0.4359
-387,69,1481,566,25,102,1,1,0.6699
-388,69,1478,565,25,102,1,1,0.45071
-389,69,1475,565,25,102,1,1,0.4242
-390,69,1473,565,25,102,1,1,0.3764
-391,69,1467,567,25,103,1,1,0.3676
-392,69,1463,567,25,102,1,1,0.69903
-393,69,1456,566,27,104,1,1,0.70476
-394,69,1450,566,28,106,1,1,0.69159
-395,69,1443,565,28,107,1,1,0.7037
-396,69,1437,565,27,108,1,1,0.70642
-397,69,1431,565,27,108,1,1,0.7156
-398,69,1425,565,26,109,1,1,0.42559
-399,69,1419,565,25,109,1,1,0.72727
-400,69,1413,565,25,110,1,1,0.71171
-401,69,1403,564,25,110,1,1,0.72072
-402,69,1393,564,25,110,1,1,0.71171
-403,69,1384,564,25,110,1,1,0.71171
-404,69,1376,563,25,110,1,1,0.72072
-405,69,1365,562,27,111,1,1,0.72321
-406,69,1355,562,28,111,1,1,0.28325
-407,69,1347,563,26,113,1,1,0.7193
-408,69,1335,562,25,115,1,1,0.71552
-409,69,1323,562,25,116,1,1,0.30013
-410,69,1312,562,24,118,1,1,0.69748
-411,69,1297,561,27,118,1,1,0.33163
-412,69,1283,560,29,118,1,1,0.31317
-413,69,1272,559,28,119,1,1,0.25546
-414,69,1258,558,26,119,1,1,0.27685
-415,69,1244,557,24,119,1,1,0.30667
-416,69,1231,557,22,118,1,1,0.29777
-417,69,1216,556,22,119,1,1,0.37138
-418,69,1201,555,23,120,1,1,0.42321
-419,69,1186,554,23,121,1,1,0.38115
-420,69,1171,554,24,122,1,1,0.7561
-421,69,1154,553,24,122,1,1,0.3974
-422,69,1134,553,25,122,1,1,0.76423
-423,69,1115,554,26,122,1,1,0.47606
-424,69,1095,555,27,121,1,1,0.51171
-425,69,1076,556,28,121,1,1,0.51441
-426,69,1056,552,29,120,1,1,0.55537
-427,69,1036,554,30,120,1,1,0.58251
-428,69,1016,556,31,120,1,1,0.60692
-429,69,996,559,32,119,1,1,0.5697
-430,69,976,561,33,119,1,1,0.60539
-431,69,957,564,33,119,1,1,0.54118
-432,69,934,565,34,119,1,1,0.52571
-433,69,911,566,35,120,1,1,0.53444
-434,69,888,567,36,121,1,1,0.54276
-435,69,866,569,36,121,1,1,0.60789
-436,69,843,568,41,122,1,1,0.60608
-437,69,821,569,40,122,1,1,0.58656
-438,69,799,570,39,122,1,1,0.56524
-439,69,777,571,38,122,1,1,0.61288
-440,69,755,572,38,123,1,1,0.59181
-441,69,733,572,37,126,1,1,0.58185
-442,69,710,574,37,125,1,1,0.49624
-443,69,686,574,40,126,1,1,0.42635
-444,69,663,574,36,126,1,1,0.40881
-445,69,636,575,37,129,1,1,0.41903
-446,69,609,576,38,131,1,1,0.42813
-447,69,586,577,41,126,1,1,0.37608
-448,69,559,578,42,130,1,1,0.39127
-449,69,532,573,41,138,1,1,0.37718
-358,70,1490,555,32,87,1,1,0.24656
-359,70,1491,557,32,87,1,1,0.69318
-360,70,1493,559,32,88,1,1,0.66054
-361,70,1495,561,31,89,1,1,0.68889
-362,70,1496,563,32,90,1,1,0.68132
-363,70,1498,566,31,90,1,1,0.68132
-364,70,1500,568,31,91,1,1,0.67391
-365,70,1501,570,31,92,1,1,0.66667
-366,70,1503,572,31,93,1,1,0.67021
-367,70,1505,574,30,94,1,1,0.66316
-368,70,1507,577,30,94,1,1,0.66316
-369,70,1507,576,31,95,1,1,0.66667
-370,70,1508,576,32,96,1,1,0.388
-371,70,1508,576,34,96,1,1,0.40795
-372,70,1509,575,34,98,1,1,0.41414
-373,70,1510,575,35,98,1,1,0.44501
-374,70,1510,575,37,99,1,1,0.13684
-375,70,1511,574,37,100,1,1,0.65347
-376,70,1511,574,39,101,1,1,0.64706
-377,70,1512,574,40,101,1,1,0.64706
-378,70,1513,574,41,102,1,1,0.63107
-379,70,1511,572,41,102,1,1,0.65049
-380,70,1510,570,41,102,1,1,0.66019
-381,70,1508,569,41,103,1,1,0.66346
-382,70,1507,568,40,104,1,1,0.64762
-383,70,1506,567,40,105,1,1,0.63208
-384,70,1503,564,42,105,1,1,0.65094
-385,70,1501,564,42,105,1,1,0.65094
-386,70,1500,564,41,105,1,1,0.66038
-387,70,1497,561,40,105,1,1,0.53935
-388,70,1495,564,40,106,1,1,0.6729
-389,70,1491,564,42,105,1,1,0.67925
-390,70,1487,564,42,105,1,1,0.68868
-391,70,1481,565,45,105,1,1,0.51395
-392,70,1478,564,42,103,1,1,0.54405
-393,70,1471,564,43,104,1,1,0.51558
-394,70,1465,564,43,105,1,1,0.49485
-395,70,1459,564,44,106,1,1,0.51443
-396,70,1453,564,44,107,1,1,0.5321
-397,70,1447,564,44,108,1,1,0.53394
-398,70,1441,565,45,109,1,1,0.54644
-399,70,1431,564,45,109,1,1,0.51502
-400,70,1421,564,45,109,1,1,0.44625
-401,70,1412,563,45,109,1,1,0.46759
-402,70,1402,563,45,109,1,1,0.46186
-403,70,1393,563,45,109,1,1,0.46186
-404,70,1387,563,42,109,1,1,0.47357
-405,70,1376,563,44,109,1,1,0.45253
-406,70,1366,563,44,110,1,1,0.43784
-407,70,1356,563,44,111,1,1,0.43929
-408,70,1346,563,44,113,1,1,0.47953
-6,71,1461,503,20,42,1,1,0.50388
-7,71,1461,498,22,43,1,1,0.43083
-8,71,1461,506,22,42,1,1,0.48433
-9,71,1462,507,24,43,1,1,0.61818
-10,71,1461,519,25,42,1,1,0.73166
-11,71,1460,507,28,45,1,1,0.74513
-12,71,1461,511,26,44,1,1,0.77613
-13,71,1465,506,25,44,1,1,0.7812
-14,71,1465,503,24,44,1,1,0.50489
-15,71,1467,504,23,44,1,1,0.33333
-16,71,1469,505,22,44,1,1,0.44444
-17,71,1470,503,21,44,1,1,0.46667
-18,71,1472,503,20,44,1,1,0.46667
-19,71,1473,504,18,41,1,1,0.40476
-20,71,1474,502,18,42,1,1,0.38556
-21,71,1473,502,18,43,1,1,0.26316
-84,72,1417,508,24,54,1,1,0.28073
-85,72,1413,511,18,53,1,1,0.2193
-86,72,1410,511,19,53,1,1,0.29537
-87,72,1408,511,19,53,1,1,0.38611
-88,72,1406,512,19,53,1,1,0.36667
-89,72,1404,512,19,53,1,1,0.41111
-90,72,1400,514,19,53,1,1,0.47778
-91,72,1396,517,19,53,1,1,0.48611
-92,72,1395,517,18,55,1,1,0.59586
-93,72,1392,520,19,55,1,1,0.62232
-94,72,1387,520,20,54,1,1,0.64589
-95,72,1383,520,21,54,1,1,0.64876
-96,72,1379,520,21,54,1,1,0.62975
-97,72,1375,520,22,54,1,1,0.46877
-98,72,1371,522,22,54,1,1,0.5083
-99,72,1367,522,22,53,1,1,0.27214
-100,72,1363,522,22,53,1,1,0.42351
-101,72,1359,522,22,53,1,1,0.35185
-102,72,1355,522,22,53,1,1,0.36876
-103,72,1351,522,22,53,1,1,0.33414
-104,72,1347,522,22,53,1,1,0.28261
-105,72,1343,522,22,53,1,1,0.21659
-106,72,1339,522,22,53,1,1,0.18357
-107,72,1335,522,22,53,1,1,0.17391
-108,72,1331,522,23,53,1,1,0.17593
-109,72,1327,522,23,53,1,1,0.16667
-110,72,1323,522,23,53,1,1,0.16667
-111,72,1319,522,23,53,1,1,0.16667
-112,72,1315,522,23,53,1,1,0.16667
-113,72,1311,522,23,53,1,1,0.16667
-114,72,1307,522,23,53,1,1,0.16667
-115,72,1303,522,23,53,1,1,0.16667
-116,72,1299,522,23,53,1,1,0.15586
-117,72,1295,522,23,53,1,1,0.16358
-118,72,1291,523,24,52,1,1,0.2317
-119,72,1286,523,24,52,1,1,0.18415
-120,72,1282,523,23,53,1,1,0.25694
-121,72,1279,522,23,53,1,1,0.44136
-122,72,1276,522,23,52,1,1,0.51808
-123,72,1274,522,22,52,1,1,0.67022
-124,72,1269,522,22,52,1,1,0.80312
-125,72,1265,523,22,52,1,1,0.79573
-126,72,1261,524,22,52,1,1,0.72847
-127,72,1257,523,21,53,1,1,0.78956
-128,72,1253,523,21,54,1,1,0.86364
-129,72,1248,522,21,54,1,1,0.81818
-130,72,1244,522,21,54,1,1,0.81818
-131,72,1240,522,21,54,1,1,0.81818
-132,72,1236,521,21,55,1,1,0.81818
-133,72,1232,521,21,55,1,1,0.81818
-134,72,1228,521,21,55,1,1,0.81818
-135,72,1224,520,21,56,1,1,0.82137
-136,72,1220,520,21,56,1,1,0.86603
-137,72,1216,520,21,56,1,1,0.86603
-138,72,1212,519,21,57,1,1,0.86834
-139,72,1207,519,22,56,1,1,0.83219
-140,72,1203,519,22,56,1,1,0.83219
-141,72,1199,518,22,57,1,1,0.55172
-142,72,1195,518,22,57,1,1,0.55172
-143,72,1191,518,22,57,1,1,0.51124
-144,72,1187,517,21,58,1,1,0.53929
-145,72,1183,517,21,58,1,1,0.53929
-146,72,1179,517,21,58,1,1,0.58475
-147,72,1175,516,21,59,1,1,0.54545
-148,72,1171,516,21,59,1,1,0.50455
-149,72,1166,516,22,58,1,1,0.48637
-150,72,1162,515,22,59,1,1,0.45652
-151,72,1158,515,22,59,1,1,0.4942
-152,72,1154,515,22,59,1,1,0.4558
-153,72,1150,514,22,60,1,1,0.46472
-154,72,1146,514,22,60,1,1,0.35139
-155,72,1142,514,22,60,1,1,0.23806
-156,72,1138,513,22,61,1,1,0.92146
-157,72,1134,513,22,61,1,1,0.96073
-158,72,1130,513,22,61,1,1,1
-159,72,1126,513,22,61,1,1,1
-160,72,1117,516,25,59,1,1,0.85385
-161,72,1116,516,31,61,1,1,1
-162,72,1109,516,30,63,1,1,0.93851
-163,72,1103,521,30,57,1,1,0.90323
-164,72,1105,517,25,60,1,1,1
-165,72,1093,518,29,62,1,1,0.8709
-166,72,1087,521,32,58,1,1,0.78788
-167,72,1085,518,32,59,1,1,0.82424
-168,72,1082,519,30,56,1,1,0.80985
-169,72,1083,518,23,60,1,1,0.9194
-170,72,1079,518,23,60,1,1,0.8791
-171,72,1076,518,23,60,1,1,0.8791
-172,72,1073,518,23,60,1,1,0.8791
-173,72,1069,518,23,61,1,1,0.83871
-174,72,1066,518,23,61,1,1,0.83871
-175,72,1063,518,23,61,1,1,0.83871
-176,72,1059,518,23,62,1,1,0.79828
-177,72,1056,518,23,62,1,1,0.79828
-178,72,1053,518,23,62,1,1,0.75794
-179,72,1050,519,23,62,1,1,0.75397
-180,72,1048,519,23,62,1,1,0.75794
-181,72,1046,519,23,62,1,1,0.79828
-182,72,1045,520,22,62,1,1,0.87164
-183,72,1042,520,22,62,1,1,0.82885
-184,72,1039,520,22,62,1,1,0.82885
-185,72,1036,520,22,62,1,1,0.78951
-186,72,1033,520,23,62,1,1,0.79828
-187,72,1030,521,23,61,1,1,0.79503
-188,72,1028,521,23,61,1,1,0.83602
-189,72,1025,522,23,61,1,1,0.83333
-190,72,1022,522,24,61,1,1,0.84
-191,72,1020,522,23,61,1,1,0.875
-192,72,1017,523,24,60,1,1,0.88
-193,72,1014,523,24,60,1,1,0.88
-194,72,1012,524,24,60,1,1,0.92
-195,72,1009,524,25,60,1,1,0.88462
-196,72,1007,524,26,60,1,1,0.88889
-197,72,1005,524,26,60,1,1,0.85185
-198,72,1003,524,27,61,1,1,0.85714
-199,72,1001,525,27,60,1,1,0.82143
-200,72,998,525,29,60,1,1,0.8
-201,72,996,525,29,61,1,1,0.76667
-202,72,994,525,30,61,1,1,0.77419
-203,72,992,525,30,61,1,1,0.7461
-204,72,990,526,31,61,1,1,0.75
-205,72,988,526,31,62,1,1,0.72321
-206,72,987,526,30,62,1,1,0.74603
-207,72,986,527,30,62,1,1,0.74603
-208,72,986,528,28,62,1,1,0.75862
-209,72,985,529,28,62,1,1,0.75862
-210,72,984,529,27,63,1,1,0.75391
-211,72,984,530,26,63,1,1,0.77778
-212,72,983,531,25,63,1,1,0.76923
-213,72,982,532,25,63,1,1,0.76923
-214,72,982,533,24,63,1,1,0.8
-215,72,981,532,25,63,1,1,0.8107
-216,72,981,532,25,63,1,1,0.8107
-217,72,981,532,25,63,1,1,0.8107
-218,72,981,531,25,64,1,1,0.81361
-219,72,981,531,25,64,1,1,0.81361
-220,72,981,531,25,63,1,1,0.8137
-221,72,981,530,25,64,1,1,0.81657
-222,72,981,530,25,64,1,1,0.81657
-223,72,981,530,25,64,1,1,0.81657
-224,72,981,530,25,64,1,1,0.81657
-225,72,981,530,25,64,1,1,0.81657
-226,72,982,530,24,64,1,1,0.84738
-227,72,982,530,25,64,1,1,0.81657
-228,72,983,530,24,64,1,1,0.80923
-229,72,983,530,25,64,1,1,0.77988
-230,72,984,530,24,64,1,1,0.71569
-231,72,984,530,24,64,1,1,0.75754
-232,72,985,530,24,64,1,1,0.61231
-233,72,985,530,24,64,1,1,0.66831
-234,72,986,530,24,65,1,1,0.57818
-235,72,988,527,22,64,1,1,0.81003
-236,72,989,526,22,65,1,1,0.83333
-237,72,990,526,23,65,1,1,0.78472
-238,72,992,526,22,65,1,1,0.80303
-239,72,993,525,23,66,1,1,0.72575
-240,72,995,525,22,67,1,1,0.69821
-241,72,996,525,23,67,1,1,0.625
-242,72,998,524,22,68,1,1,0.55703
-243,72,999,524,23,68,1,1,0.43116
-244,72,1001,524,23,69,1,1,0.33393
-245,72,1005,520,24,71,1,1,0.32722
-76,73,1424,516,23,47,1,1,0.27865
-77,73,1420,515,23,48,1,1,0.3682
-78,73,1417,515,23,49,1,1,0.34667
-79,73,1413,515,23,49,1,1,0.45167
-80,73,1410,514,23,51,1,1,0.46955
-81,73,1407,514,23,51,1,1,0.52564
-82,73,1403,514,23,52,1,1,0.42138
-83,73,1400,513,23,53,1,1,0.44753
-84,73,1396,513,23,54,1,1,0.3553
-85,73,1393,513,23,54,1,1,0.32727
-86,73,1390,513,23,55,1,1,0.28571
-87,73,1389,511,23,55,1,1,0.34821
-88,73,1385,512,23,55,1,1,0.30655
-89,73,1382,514,23,55,1,1,0.2619
-90,73,1379,516,23,55,1,1,0.23661
-91,73,1376,518,22,54,1,1,0.20632
-92,73,1372,519,23,55,1,1,0.1875
-93,73,1369,521,23,55,1,1,0.15923
-94,73,1366,523,22,54,1,1,0.1083
-95,73,1363,525,22,54,1,1,0.072727
-96,73,1360,527,22,54,1,1,0.036364
-97,73,1356,527,22,54,1,1,0.054545
-98,73,1352,527,23,54,1,1,0.054545
-99,73,1349,527,23,55,1,1,0.071429
-100,73,1345,528,24,54,1,1,0.14691
-101,73,1342,528,24,55,1,1,0.3
-102,73,1338,528,24,55,1,1,0.32143
-103,73,1334,529,25,54,1,1,0.37063
-104,73,1331,529,25,55,1,1,0.40453
-105,73,1327,529,26,55,1,1,0.46032
-106,73,1324,530,26,55,1,1,0.48413
-107,73,1320,529,26,55,1,1,0.56151
-108,73,1317,529,25,54,1,1,0.61538
-109,73,1313,528,25,55,1,1,0.69093
-110,73,1310,528,24,54,1,1,0.67927
-111,73,1306,527,24,55,1,1,0.79429
-112,73,1303,527,23,54,1,1,0.82197
-113,73,1299,526,23,55,1,1,0.76042
-114,73,1296,526,22,54,1,1,0.78656
-115,73,1293,526,21,54,1,1,0.85124
-116,73,1288,525,21,54,1,1,0.96281
-117,73,1283,525,21,54,1,1,1
-118,73,1279,525,20,54,1,1,1
-119,73,1274,524,21,55,1,1,1
-120,73,1270,524,20,55,1,1,1
-121,73,1265,524,20,54,1,1,1
-122,73,1260,523,21,55,1,1,1
-123,73,1256,523,20,55,1,1,1
-124,73,1251,523,20,55,1,1,1
-125,73,1247,523,20,55,1,1,1
-126,73,1242,522,21,56,1,1,1
-127,73,1238,522,21,56,1,1,1
-128,73,1234,522,21,56,1,1,1
-129,73,1230,522,21,56,1,1,1
-130,73,1226,522,21,57,1,1,1
-131,73,1221,521,22,58,1,1,1
-132,73,1217,521,22,58,1,1,1
-133,73,1213,521,22,58,1,1,1
-134,73,1209,521,22,58,1,1,1
-135,73,1205,521,22,59,1,1,1
-136,73,1200,521,22,59,1,1,1
-137,73,1196,521,22,59,1,1,1
-138,73,1192,521,22,59,1,1,1
-139,73,1188,521,22,59,1,1,1
-140,73,1184,521,22,59,1,1,1
-141,73,1180,521,22,59,1,1,1
-142,73,1176,521,22,59,1,1,1
-143,73,1172,521,22,59,1,1,1
-144,73,1168,521,22,59,1,1,1
-145,73,1164,521,22,60,1,1,1
-146,73,1159,520,22,60,1,1,1
-147,73,1155,520,22,60,1,1,1
-148,73,1151,520,22,60,1,1,1
-149,73,1147,520,22,60,1,1,1
-150,73,1143,520,22,60,1,1,1
-151,73,1138,519,22,61,1,1,1
-152,73,1134,519,22,61,1,1,1
-153,73,1130,519,22,61,1,1,1
-154,73,1126,519,22,61,1,1,1
-155,73,1122,519,22,61,1,1,1
-156,73,1117,519,22,61,1,1,1
-157,73,1112,519,22,61,1,1,1
-158,73,1107,519,22,61,1,1,1
-159,73,1102,519,22,61,1,1,1
-160,73,1098,519,22,62,1,1,1
-161,73,1093,519,22,62,1,1,1
-162,73,1088,519,22,62,1,1,1
-163,73,1083,519,22,62,1,1,1
-164,73,1078,519,22,62,1,1,1
-165,73,1074,520,22,62,1,1,1
-166,73,1071,520,22,62,1,1,1
-167,73,1068,520,22,62,1,1,1
-168,73,1065,520,22,62,1,1,1
-169,73,1062,520,22,62,1,1,1
-170,73,1059,520,22,62,1,1,1
-171,73,1056,520,22,62,1,1,1
-172,73,1053,520,22,62,1,1,1
-173,73,1050,520,22,62,1,1,1
-174,73,1047,520,22,62,1,1,1
-175,73,1044,520,22,63,1,1,1
-176,73,1041,520,22,63,1,1,1
-177,73,1039,520,21,63,1,1,1
-178,73,1036,520,22,63,1,1,1
-179,73,1034,520,21,63,1,1,1
-180,73,1031,521,22,63,1,1,1
-181,73,1029,521,21,63,1,1,1
-182,73,1026,521,21,63,1,1,1
-183,73,1024,521,21,63,1,1,1
-184,73,1021,521,21,63,1,1,1
-185,73,1019,522,21,63,1,1,1
-186,73,1016,522,21,63,1,1,1
-187,73,1013,522,21,63,1,1,1
-188,73,1010,522,21,63,1,1,1
-189,73,1007,522,21,64,1,1,1
-190,73,1004,522,21,64,1,1,1
-191,73,1001,522,21,64,1,1,1
-192,73,998,522,21,65,1,1,1
-193,73,995,522,21,65,1,1,0.9814
-194,73,992,522,21,65,1,1,0.96143
-195,73,989,523,22,65,1,1,0.94466
-196,73,987,523,22,65,1,1,0.94269
-197,73,986,523,22,65,1,1,0.96179
-198,73,984,524,22,65,1,1,0.96179
-199,73,983,524,22,65,1,1,0.98024
-200,73,981,525,22,65,1,1,0.96047
-201,73,980,525,22,65,1,1,0.97958
-202,73,978,525,22,65,1,1,0.97892
-203,73,977,526,22,65,1,1,1
-204,73,975,526,22,65,1,1,1
-205,73,974,527,22,65,1,1,1
-206,73,972,527,22,65,1,1,1
-207,73,971,528,22,65,1,1,1
-208,73,970,528,22,66,1,1,1
-209,73,969,529,22,65,1,1,1
-210,73,968,530,22,65,1,1,1
-211,73,967,530,22,66,1,1,0.97729
-212,73,966,531,22,65,1,1,0.95389
-213,73,965,531,22,66,1,1,0.92992
-214,73,964,532,22,66,1,1,0.90655
-215,73,963,533,22,66,1,1,0.88319
-216,73,963,533,22,66,1,1,0.87995
-217,73,963,533,22,66,1,1,0.8767
-218,73,963,533,22,66,1,1,0.87346
-219,73,963,533,22,66,1,1,0.87346
-220,73,963,533,22,66,1,1,0.87021
-221,73,963,533,22,66,1,1,0.84426
-222,73,963,533,22,66,1,1,0.84036
-223,73,963,533,22,66,1,1,0.84036
-224,73,963,533,22,66,1,1,0.80921
-225,73,963,533,22,67,1,1,0.80754
-226,73,963,533,22,67,1,1,0.80754
-227,73,964,533,22,67,1,1,0.79284
-228,73,965,533,22,68,1,1,0.75425
-229,73,966,533,22,68,1,1,0.69754
-230,73,967,533,22,68,1,1,0.62319
-231,73,964,533,22,69,1,1,0.46522
-232,73,968,531,21,69,1,1,0.47922
-233,73,965,532,22,70,1,1,0.30374
-234,73,970,530,20,71,1,1,0.31548
-312,74,1249,521,22,58,1,1,0.87841
-313,74,1253,521,22,58,1,1,0.83493
-314,74,1257,521,22,58,1,1,0.81135
-315,74,1261,521,22,58,1,1,0.81135
-316,74,1265,521,22,58,1,1,0.80545
-317,74,1269,521,22,58,1,1,0.82461
-318,74,1273,521,22,58,1,1,0.87104
-319,74,1277,521,22,58,1,1,0.76787
-320,74,1281,521,22,58,1,1,0.79366
-321,74,1285,521,22,58,1,1,0.6647
-322,74,1289,521,23,59,1,1,0.78125
-323,74,1291,519,23,59,1,1,0.8
-324,74,1294,518,23,58,1,1,0.82203
-325,74,1297,516,23,59,1,1,0.8
-326,74,1299,515,23,58,1,1,0.83192
-327,74,1302,514,23,58,1,1,0.83686
-328,74,1305,512,23,58,1,1,0.86864
-329,74,1307,511,23,57,1,1,0.89224
-330,74,1310,509,23,58,1,1,0.8976
-331,74,1313,508,23,57,1,1,0.875
-332,74,1316,507,23,57,1,1,0.84411
-333,74,1318,506,23,57,1,1,0.83405
-334,74,1320,506,23,56,1,1,0.81579
-335,74,1322,505,23,57,1,1,0.83621
-336,74,1324,505,23,56,1,1,0.86111
-337,74,1326,505,23,56,1,1,0.77193
-338,74,1328,504,23,56,1,1,0.71491
-339,74,1330,504,23,55,1,1,0.70982
-340,74,1332,503,23,56,1,1,0.71491
-341,74,1334,503,23,55,1,1,0.69717
-342,74,1336,503,23,55,1,1,0.71354
-343,74,1336,504,24,56,1,1,0.72982
-344,74,1337,506,24,56,1,1,0.73754
-345,74,1338,508,25,56,1,1,0.7247
-346,74,1338,510,26,56,1,1,0.74269
-347,74,1339,512,27,56,1,1,0.73935
-348,74,1340,514,27,56,1,1,0.7594
-349,74,1340,516,29,56,1,1,0.76433
-350,74,1341,518,29,56,1,1,0.77193
-351,74,1342,520,30,57,1,1,0.75862
-352,74,1352,520,22,56,1,1,0.60259
-353,74,1348,522,28,57,1,1,0.75922
-354,74,1351,523,26,57,1,1,0.65006
-355,74,1353,524,24,57,1,1,0.66897
-356,74,1355,525,22,57,1,1,0.65967
-357,74,1358,528,21,57,1,1,0.6826
-358,74,1358,527,20,56,1,1,0.67251
-359,74,1358,528,20,55,1,1,0.67772
-360,74,1359,529,19,54,1,1,0.72364
-361,74,1360,531,19,53,1,1,0.69167
-362,74,1363,538,18,54,1,1,0.56555
-363,74,1359,536,22,53,1,1,0.69082
-364,74,1360,538,22,54,1,1,0.66245
-365,74,1361,541,22,55,1,1,0.62112
-366,74,1361,542,22,56,1,1,0.63844
-367,74,1361,543,22,57,1,1,0.64093
-368,74,1362,545,21,57,1,1,0.64107
-369,74,1362,546,21,58,1,1,0.68413
-370,74,1362,547,21,59,1,1,0.68636
-371,74,1363,549,20,59,1,1,0.69048
-372,74,1363,549,20,59,1,1,0.71746
-373,74,1362,550,20,59,1,1,0.79048
-374,74,1363,550,20,59,1,1,0.71429
-375,74,1361,548,20,59,1,1,0.7381
-376,74,1360,546,20,59,1,1,0.74206
-377,74,1358,544,20,59,1,1,0.74206
-378,74,1357,542,20,59,1,1,0.74603
-379,74,1355,540,20,59,1,1,0.77063
-380,74,1354,538,20,59,1,1,0.74841
-381,74,1353,536,20,59,1,1,0.63175
-382,74,1349,535,20,60,1,1,0.67135
-383,74,1346,535,20,61,1,1,0.64747
-384,74,1342,535,20,61,1,1,0.5576
-385,74,1339,535,20,62,1,1,0.44671
-386,74,1336,535,19,63,1,1,0.32812
-387,74,1332,534,20,64,1,1,0.36996
-388,74,1329,534,19,65,1,1,0.35455
-389,74,1325,534,20,65,1,1,0.32251
-390,74,1322,534,19,66,1,1,0.33358
-391,74,1319,534,19,67,1,1,0.43382
-392,74,1311,533,25,65,1,1,0.4021
-393,74,1303,532,25,65,1,1,0.42483
-394,74,1296,532,24,66,1,1,0.34806
-395,74,1288,531,24,66,1,1,0.3606
-396,74,1281,531,24,66,1,1,0.39821
-397,74,1273,530,25,67,1,1,0.42081
-398,74,1266,530,25,67,1,1,0.45701
-399,74,1258,529,26,68,1,1,0.47665
-400,74,1251,529,26,68,1,1,0.4686
-401,74,1244,529,26,68,1,1,0.71659
-402,74,1236,528,26,69,1,1,0.89206
-403,74,1228,527,26,70,1,1,1
-404,74,1220,527,27,70,1,1,0.97988
-405,74,1210,525,27,70,1,1,0.94266
-406,74,1200,523,28,71,1,1,0.8908
-407,74,1188,523,28,71,1,1,0.8908
-408,74,1177,523,28,72,1,1,0.87104
-409,74,1165,523,29,72,1,1,0.85388
-410,74,1154,523,29,73,1,1,0.83378
-411,74,1143,523,29,73,1,1,0.81081
-412,74,1129,522,29,73,1,1,0.85225
-413,74,1116,521,29,73,1,1,0.83063
-414,74,1102,521,29,73,1,1,0.78514
-415,74,1089,520,29,73,1,1,0.74234
-416,74,1075,520,29,73,1,1,0.7009
-417,74,1062,519,29,73,1,1,0.65495
-418,74,1048,518,29,73,1,1,0.61712
-419,74,1035,518,29,73,1,1,0.54279
-420,74,1021,517,29,73,1,1,0.51351
-317,75,1521,570,47,58,0,10,0.41631
-318,75,1525,569,48,59,0,10,0.39864
-319,75,1530,569,49,59,0,10,0.39167
-320,75,1535,569,50,59,0,10,0.3817
-321,75,1540,569,50,59,0,10,0.37451
-322,75,1545,569,51,59,0,10,0.3891
-323,75,1549,569,53,59,0,10,0.40988
-324,75,1554,569,53,59,0,10,0.40988
-325,75,1559,569,54,59,0,10,0.44727
-326,75,1564,569,55,59,0,10,0.4756
-327,75,1569,569,56,60,0,10,0.51251
-328,75,1573,567,56,61,0,10,0.52999
-329,75,1577,565,56,62,0,10,0.53745
-330,75,1581,563,56,63,0,10,0.53564
-331,75,1586,561,55,64,0,10,0.55275
-332,75,1590,559,55,65,0,10,0.54762
-333,75,1594,557,55,66,0,10,0.54558
-334,75,1599,555,54,67,0,10,0.51471
-335,75,1603,553,54,68,0,10,0.45639
-336,75,1607,551,54,69,0,10,0.48727
-337,75,1612,550,54,69,0,10,0.51429
-338,75,1615,552,54,69,0,10,0.57455
-339,75,1618,555,54,69,0,10,0.66545
-340,75,1622,558,54,69,0,10,0.71247
-341,75,1625,560,54,69,0,10,0.71325
-342,75,1629,563,54,69,0,10,0.65091
-343,75,1632,566,54,69,0,10,0.64338
-344,75,1635,568,54,69,0,10,0.64545
-345,75,1639,571,54,69,0,10,0.64416
-346,75,1642,574,54,69,0,10,0.61247
-347,75,1646,577,54,69,0,10,0.62909
-348,75,1649,578,54,69,0,10,0.66909
-349,75,1653,580,53,69,0,10,0.69921
-350,75,1657,581,53,70,0,10,0.66667
-351,75,1660,583,53,70,0,10,0.59259
-352,75,1664,584,53,71,0,10,0.59259
-353,75,1668,586,52,71,0,10,0.56604
-354,75,1671,587,52,72,0,10,0.54717
-355,75,1675,589,52,72,0,10,0.5283
-356,75,1679,590,51,73,0,10,0.5
-357,75,1683,592,51,73,0,10,0.46154
-358,75,1685,594,51,73,0,10,0.38462
-359,75,1688,596,51,73,0,10,0.32692
-360,75,1691,599,51,73,0,10,0.26923
-361,75,1693,601,51,73,0,10,0.21154
-362,75,1696,604,51,73,0,10,0.15385
-363,75,1699,606,51,73,0,10,0.038462
-364,75,1701,608,51,73,0,10,0
-365,75,1704,611,51,73,0,10,0
-366,75,1707,613,51,73,0,10,0
-367,75,1710,616,51,73,0,10,0
-368,75,1711,615,51,73,0,10,0
-369,75,1712,615,51,73,0,10,0
-370,75,1713,615,51,73,0,10,0
-371,75,1714,614,51,73,0,10,0.0033784
-372,75,1716,614,51,73,0,10,0
-373,75,1717,614,51,73,0,10,0
-374,75,1718,613,51,73,0,10,0
-375,75,1719,613,51,73,0,10,0
-376,75,1720,613,51,73,0,10,0
-377,75,1722,613,51,73,0,10,0
-378,75,1720,612,52,74,0,10,0
-379,75,1718,611,53,75,0,10,0
-380,75,1717,610,53,76,0,10,0
-381,75,1715,609,54,77,0,10,0.072727
-382,75,1714,608,54,79,0,10,0.12727
-383,75,1712,607,55,80,0,10,0.19643
-384,75,1710,606,56,81,0,10,0.26316
-385,75,1709,605,56,82,0,10,0.31579
-386,75,1707,604,57,83,0,10,0.39655
-387,75,1706,603,58,85,0,10,0.44068
-388,75,1701,604,60,85,0,10,0.55738
-389,75,1697,605,62,86,0,10,0.61905
-390,75,1692,606,65,87,0,10,0.65152
-391,75,1688,607,66,87,0,10,0.70251
-392,75,1684,608,68,88,0,10,0.7165
-393,75,1679,609,71,89,0,10,0.71512
-394,75,1675,610,72,89,0,10,0.786
-395,75,1670,611,75,90,0,10,0.78976
-396,75,1666,612,77,91,0,10,0.76923
-397,75,1662,613,79,92,0,10,0.77554
-398,75,1653,612,79,92,0,10,0.85161
-399,75,1644,612,79,92,0,10,0.91694
-400,75,1636,612,78,92,0,10,0.97468
-401,75,1627,612,79,92,0,10,0.98992
-402,75,1619,612,78,92,0,10,0.99156
-403,75,1610,612,78,92,0,10,0.98312
-404,75,1601,612,79,92,0,10,0.975
-405,75,1593,612,78,92,0,10,0.99156
-406,75,1584,612,78,92,0,10,1
-407,75,1576,612,78,92,0,10,1
-408,75,1564,611,78,92,0,10,1
-409,75,1552,610,78,93,0,10,1
-410,75,1541,610,78,93,0,10,1
-411,75,1528,609,78,94,0,10,0.99227
-412,75,1515,609,79,94,0,10,1
-413,75,1502,609,79,94,0,10,1
-414,75,1490,609,79,94,0,10,1
-415,75,1475,608,79,95,0,10,1
-416,75,1460,608,79,95,0,10,1
-417,75,1446,608,78,96,0,10,1
-418,75,1430,608,78,95,0,10,1
-419,75,1414,608,78,95,0,10,1
-420,75,1399,608,78,95,0,10,1
-421,75,1382,607,77,95,0,10,1
-422,75,1365,606,77,95,0,10,1
-423,75,1348,606,77,95,0,10,1
-424,75,1328,605,77,96,0,10,1
-425,75,1308,605,77,96,0,10,1
-426,75,1288,605,77,96,0,10,1
-427,75,1268,605,77,96,0,10,1
-428,75,1247,607,78,97,0,10,1
-429,75,1227,609,78,98,0,10,1
-430,75,1205,610,78,99,0,10,1
-431,75,1183,612,79,99,0,10,1
-432,75,1162,614,79,100,0,10,1
-433,75,1140,616,80,100,0,10,1
-434,75,1118,617,81,101,0,10,0.90244
-435,75,1097,619,81,102,0,10,0.78049
-436,75,1075,621,82,102,0,10,0.6747
-437,75,1054,623,82,103,0,10,0.61446
-438,75,1033,624,82,104,0,10,0.55422
-439,75,1010,624,82,104,0,10,0.50602
-440,75,987,624,83,105,0,10,0.47619
-441,75,962,624,83,106,0,10,0.65476
-442,75,937,625,84,107,0,10,0.83529
-443,75,912,626,84,107,0,10,1
-444,75,887,627,85,108,0,10,1
-445,75,862,628,85,108,0,10,1
-446,75,837,629,86,109,0,10,1
-447,75,813,630,86,110,0,10,1
-448,75,785,629,87,111,0,10,1
-449,75,757,628,88,113,0,10,1
-450,75,729,627,89,114,0,10,1
-451,75,702,627,89,115,0,10,1
-452,75,672,626,89,115,0,10,1
-453,75,646,627,88,116,0,10,1
-454,75,616,628,91,117,0,10,1
-455,75,586,630,95,118,0,10,1
-456,75,556,632,92,120,0,10,1
-457,75,526,635,90,121,0,10,1
-458,75,493,636,92,122,0,10,1
-459,75,461,638,93,122,0,10,1
-460,75,425,640,94,122,0,10,1
-461,75,389,642,95,122,0,10,0.9646
-462,75,354,645,95,122,0,10,0.94131
-463,75,325,654,96,121,0,10,0.90046
-464,75,287,655,97,122,0,10,0.90874
-465,75,250,657,98,122,0,10,0.8879
-466,75,212,658,99,123,0,10,0.84129
-467,75,175,660,100,123,0,10,0.82258
-468,75,132,665,100,122,0,10,0.79675
-469,75,95,668,107,121,0,10,0.81967
-470,75,55,662,105,127,0,10,0.88281
-471,75,13,662,109,133,0,10,0.91045
-472,75,-27,664,108,132,0,10,0.74312
-1,76,1107,539,95,79,0,3,0.21107
-2,76,1107,536,96,79,0,3,0.19098
-3,76,1108,533,96,80,0,3,0.17118
-4,76,1110,536,96,81,0,3,0.093664
-5,76,1112,539,97,82,0,3,0.11224
-6,76,1115,543,97,82,0,3,0.10499
-7,76,1114,537,98,83,0,3,0.1924
-8,76,1117,548,98,84,0,3,0.12406
-9,76,1118,551,98,85,0,3,0.12615
-10,76,1119,555,99,85,0,3,0.12733
-11,76,1121,549,99,86,0,3,0.18966
-12,76,1122,555,100,87,0,3,0.12219
-13,76,1122,544,102,87,0,3,0.22683
-14,76,1122,544,103,88,0,3,0.21402
-15,76,1122,544,105,89,0,3,0.21132
-16,76,1122,544,106,90,0,3,0.19893
-17,76,1122,544,108,91,0,3,0.18628
-18,76,1122,544,109,92,0,3,0.17439
-19,76,1122,545,111,92,0,3,0.16331
-20,76,1122,547,112,93,0,3,0.13368
-21,76,1122,549,114,94,0,3,0.12201
-22,76,1122,551,116,95,0,3,0.11058
-23,76,1123,549,116,95,0,3,0.13248
-24,76,1125,551,116,95,0,3,0.12251
-25,76,1127,554,116,95,0,3,0.094551
-26,76,1129,557,116,95,0,3,0.084491
-27,76,1131,560,116,95,0,3,0.084491
-28,76,1134,563,116,95,0,3,0.092593
-29,76,1135,566,116,95,0,3,0.076389
-30,76,1137,570,116,95,0,3,0.066239
-31,76,1139,574,116,95,0,3,0.058048
-32,76,1139,576,116,95,0,3,0.0625
-33,76,1140,562,117,96,0,3,0.14433
-34,76,1145,567,117,97,0,3,0.057074
-35,76,1146,562,118,98,0,3,0.056532
-36,76,1147,558,119,99,0,3,0.07375
-37,76,1149,555,119,99,0,3,0.09325
-38,76,1150,555,120,100,0,3,0.08469
-39,76,1152,555,121,101,0,3,0.10318
-40,76,1154,555,122,102,0,3,0.12132
-41,76,1156,555,123,103,0,3,0.13911
-42,76,1158,556,123,103,0,3,0.15113
-43,76,1157,560,124,103,0,3,0.11538
-44,76,1157,561,125,103,0,3,0.125
-45,76,1157,562,127,103,0,3,0.125
-46,76,1158,564,128,102,0,3,0.12621
-47,76,1158,565,130,102,0,3,0.12621
-48,76,1158,566,132,102,0,3,0.13592
-49,76,1159,568,133,102,0,3,0.12621
-50,76,1158,568,134,102,0,3,0.14563
-51,76,1157,569,136,102,0,3,0.15534
-52,76,1157,570,137,102,0,3,0.1068
-53,76,1160,572,137,102,0,3,0.067961
-54,76,1160,572,138,102,0,3,0.067961
-55,76,1160,572,139,102,0,3,0.07767
-56,76,1161,573,139,101,0,3,0.078431
-57,76,1161,571,140,101,0,3,0.10784
-58,76,1162,570,141,101,0,3,0.11765
-59,76,1162,568,142,101,0,3,0.14706
-60,76,1162,566,143,101,0,3,0.16667
-61,76,1163,565,144,101,0,3,0.18627
-62,76,1164,571,145,101,0,3,0.12745
-63,76,1163,565,145,102,0,3,0.19417
-64,76,1165,569,146,103,0,3,0.16346
-65,76,1164,569,147,104,0,3,0.1619
-66,76,1163,569,148,105,0,3,0.16981
-67,76,1163,570,148,105,0,3,0.16038
-68,76,1162,570,150,107,0,3,0.16667
-69,76,1161,570,151,108,0,3,0.17431
-70,76,1161,571,151,108,0,3,0.16514
-71,76,1160,571,152,109,0,3,0.17273
-72,76,1160,572,153,110,0,3,0.17117
-73,76,1158,572,153,110,0,3,0.17117
-74,76,1156,572,153,110,0,3,0.18018
-75,76,1154,572,153,110,0,3,0.18919
-76,76,1152,573,153,109,0,3,0.21818
-77,76,1150,573,154,109,0,3,0.21818
-78,76,1148,573,154,109,0,3,0.21818
-79,76,1146,574,154,108,0,3,0.22018
-80,76,1144,574,154,108,0,3,0.22018
-81,76,1142,574,154,108,0,3,0.22936
-82,76,1141,575,154,108,0,3,0.22936
-83,76,1137,576,156,108,0,3,0.22936
-84,76,1134,578,157,108,0,3,0.22936
-85,76,1131,580,158,108,0,3,0.23853
-86,76,1128,582,159,108,0,3,0.24771
-87,76,1125,584,160,108,0,3,0.25688
-88,76,1121,586,162,107,0,3,0.26852
-89,76,1118,588,163,107,0,3,0.28704
-90,76,1115,590,164,107,0,3,0.2963
-91,76,1112,592,165,107,0,3,0.30556
-92,76,1109,594,166,107,0,3,0.31481
-93,76,1104,594,167,108,0,3,0.34862
-94,76,1100,595,168,108,0,3,0.34862
-95,76,1096,596,169,108,0,3,0.34862
-96,76,1092,596,170,109,0,3,0.35455
-97,76,1088,597,171,109,0,3,0.35455
-98,76,1084,598,171,109,0,3,0.35455
-99,76,1080,598,172,110,0,3,0.36036
-100,76,1076,599,173,110,0,3,0.36036
-101,76,1072,600,174,110,0,3,0.36937
-102,76,1068,601,175,110,0,3,0.37838
-103,76,1063,601,176,110,0,3,0.3964
-104,76,1059,601,176,111,0,3,0.40179
-105,76,1054,601,177,111,0,3,0.41071
-106,76,1050,601,177,112,0,3,0.41593
-107,76,1045,602,179,111,0,3,0.41964
-108,76,1041,602,179,112,0,3,0.42478
-109,76,1036,602,180,112,0,3,0.43363
-110,76,1032,602,180,113,0,3,0.4386
-111,76,1028,603,181,113,0,3,0.4386
-112,76,1024,605,176,116,0,3,0.4188
-113,76,1018,604,177,117,0,3,0.4322
-114,76,1013,604,177,117,0,3,0.44068
-115,76,1008,603,177,119,0,3,0.45
-116,76,1003,603,177,119,0,3,0.45833
-117,76,998,603,178,120,0,3,0.46281
-118,76,993,602,178,121,0,3,0.47541
-119,76,988,602,178,121,0,3,0.45082
-120,76,983,601,178,123,0,3,0.42742
-121,76,978,601,178,123,0,3,0.42742
-122,76,973,601,179,124,0,3,0.432
-123,76,967,601,179,124,0,3,0.44
-124,76,962,601,179,124,0,3,0.448
-125,76,956,601,179,124,0,3,0.456
-126,76,951,601,179,124,0,3,0.464
-127,76,945,601,179,124,0,3,0.472
-128,76,940,601,179,124,0,3,0.48
-129,76,934,601,179,124,0,3,0.488
-130,76,929,601,179,124,0,3,0.496
-131,76,924,601,179,124,0,3,0.504
-132,76,916,602,179,124,0,3,0.504
-133,76,911,601,179,124,0,3,0.52
-134,76,906,601,179,124,0,3,0.528
-135,76,901,601,179,124,0,3,0.536
-136,76,896,600,179,124,0,3,0.552
-137,76,891,600,179,124,0,3,0.56
-138,76,886,600,179,124,0,3,0.576
-139,76,881,599,179,124,0,3,0.568
-140,76,876,599,179,124,0,3,0.56
-141,76,871,599,179,124,0,3,0.552
-142,76,867,599,179,124,0,3,0.544
-143,76,862,599,179,124,0,3,0.544
-144,76,857,599,179,124,0,3,0.552
-145,76,852,599,179,124,0,3,0.552
-146,76,847,599,179,124,0,3,0.56
-147,76,842,600,179,123,0,3,0.55645
-148,76,837,600,179,123,0,3,0.56452
-149,76,832,600,179,123,0,3,0.57258
-150,76,827,600,179,123,0,3,0.56452
-151,76,822,601,179,123,0,3,0.55645
-152,76,818,603,173,123,0,3,0.54032
-153,76,810,602,173,123,0,3,0.54839
-154,76,803,601,173,123,0,3,0.55645
-155,76,796,600,174,123,0,3,0.56452
-156,76,790,600,175,122,0,3,0.56098
-157,76,784,599,175,122,0,3,0.56098
-158,76,778,599,176,122,0,3,0.55285
-159,76,773,598,175,123,0,3,0.54839
-160,76,769,598,174,123,0,3,0.54839
-161,76,764,598,174,123,0,3,0.54839
-162,76,760,598,173,123,0,3,0.54839
-163,76,754,597,173,123,0,3,0.55645
-164,76,749,596,173,124,0,3,0.56
-165,76,744,596,173,123,0,3,0.56452
-166,76,739,595,173,124,0,3,0.568
-167,76,734,595,173,124,0,3,0.568
-168,76,729,594,172,124,0,3,0.576
-169,76,725,593,171,124,0,3,0.584
-170,76,721,593,170,124,0,3,0.584
-171,76,717,592,171,125,0,3,0.5873
-172,76,713,592,173,125,0,3,0.5873
-173,76,709,591,172,125,0,3,0.59524
-174,76,706,590,170,125,0,3,0.60317
-175,76,703,590,169,124,0,3,0.608
-176,76,700,587,168,126,0,3,0.62205
-177,76,697,585,168,128,0,3,0.63011
-178,76,694,585,167,127,0,3,0.64156
-179,76,691,585,167,126,0,3,0.64534
-180,76,688,585,167,125,0,3,0.64919
-181,76,685,585,167,124,0,3,0.66048
-182,76,682,586,167,123,0,3,0.65707
-183,76,680,586,164,124,0,3,0.65556
-184,76,677,586,165,124,0,3,0.65759
-185,76,674,586,166,124,0,3,0.66668
-186,76,671,586,167,124,0,3,0.66905
-187,76,669,586,167,124,0,3,0.67214
-188,76,668,586,166,124,0,3,0.6824
-189,76,666,586,166,125,0,3,0.68263
-190,76,665,586,165,125,0,3,0.69339
-191,76,663,586,165,125,0,3,0.69793
-192,76,662,586,165,126,0,3,0.7052
-193,76,659,586,166,126,0,3,0.70956
-194,76,656,586,167,126,0,3,0.71654
-195,76,653,586,168,126,0,3,0.72343
-196,76,651,586,169,126,0,3,0.73543
-197,76,651,586,170,126,0,3,0.74987
-198,76,651,586,171,126,0,3,0.76415
-199,76,650,586,172,127,0,3,0.77348
-200,76,649,586,174,128,0,3,0.78676
-201,76,648,586,176,129,0,3,0.79744
-202,76,647,586,178,130,0,3,0.80809
-203,76,647,586,181,130,0,3,0.82384
-204,76,648,587,183,130,0,3,0.84057
-205,76,649,587,185,130,0,3,0.8573
-206,76,650,588,187,130,0,3,0.87161
-207,76,651,589,189,129,0,3,0.88704
-208,76,651,589,192,130,0,3,0.89368
-209,76,652,590,194,129,0,3,0.90406
-210,76,653,590,196,130,0,3,0.91305
-211,76,654,591,198,129,0,3,0.92346
-212,76,655,592,201,129,0,3,0.93366
-213,76,658,591,203,129,0,3,0.94947
-214,76,661,591,205,129,0,3,0.96497
-215,76,664,591,207,129,0,3,0.97988
-216,76,668,589,210,130,0,3,0.99758
-217,76,673,588,212,130,0,3,1
-218,76,678,587,214,131,0,3,1
-219,76,682,586,217,131,0,3,1
-220,76,687,585,219,131,0,3,1
-221,76,692,584,221,132,0,3,1
-222,76,698,585,220,133,0,3,0.98643
-223,76,705,585,221,131,0,3,0.95045
-224,76,712,585,223,130,0,3,0.91071
-225,76,720,585,224,129,0,3,0.87556
-226,76,726,585,228,128,0,3,0.87773
-227,76,732,585,232,127,0,3,0.87983
-228,76,739,588,234,127,0,3,0.88085
-229,76,747,587,235,127,0,3,0.87712
-230,76,755,586,237,127,0,3,0.88235
-231,76,763,586,239,126,0,3,0.87917
-232,76,773,585,241,126,0,3,0.88017
-233,76,783,584,243,125,0,3,0.88115
-234,76,792,583,245,125,0,3,0.88211
-235,76,802,582,246,125,0,3,0.87482
-236,76,813,581,248,125,0,3,0.87576
-237,76,823,580,250,125,0,3,0.8691
-238,76,835,579,251,125,0,3,0.86558
-239,76,847,578,253,125,0,3,0.85921
-240,76,859,577,254,125,0,3,0.8521
-241,76,871,576,256,125,0,3,0.84911
-242,76,884,576,257,125,0,3,0.84625
-243,76,899,575,258,124,0,3,0.84093
-244,76,915,575,258,123,0,3,0.83497
-245,76,928,573,260,123,0,3,0.83531
-246,76,942,572,262,123,0,3,0.83552
-247,76,958,571,264,123,0,3,0.83929
-248,76,974,570,266,123,0,3,0.79111
-249,76,991,570,267,123,0,3,0.8345
-250,76,1007,569,269,123,0,3,0.93297
-251,76,1023,568,271,123,0,3,0.96771
-252,76,1040,568,273,123,0,3,0.98084
-253,76,1057,567,274,121,0,3,0.98319
-254,76,1075,565,278,121,0,3,0.95252
-255,76,1093,564,282,121,0,3,0.92933
-256,76,1113,562,284,122,0,3,0.90526
-257,76,1134,561,286,123,0,3,0.87805
-258,76,1155,560,287,124,0,3,0.85417
-259,76,1175,559,290,124,0,3,0.81787
-260,76,1196,558,291,125,0,3,0.78425
-261,76,1217,557,293,126,0,3,0.75341
-262,76,1238,556,295,127,0,3,0.72973
-263,76,1260,556,298,127,0,3,0.69706
-264,76,1283,556,301,127,0,3,0.65604
-265,76,1306,556,303,127,0,3,0.61852
-266,76,1329,556,306,127,0,3,0.58291
-267,76,1354,556,308,128,0,3,0.58431
-268,76,1379,556,310,129,0,3,0.62414
-269,76,1404,556,313,131,0,3,0.65026
-270,76,1429,556,315,131,0,3,0.66197
-271,76,1454,556,318,131,0,3,0.72509
-272,76,1479,556,321,131,0,3,0.69043
-273,76,1506,555,326,131,0,3,0.64878
-274,76,1533,554,332,131,0,3,0.60988
-275,76,1560,554,338,130,0,3,0.57952
-276,76,1588,553,339,130,0,3,0.53235
-277,76,1618,552,337,130,0,3,0.4264
-278,76,1648,551,336,131,0,3,0.32686
-279,76,1677,550,332,132,0,3,0.21825
-280,76,1709,552,328,134,0,3,0.27907
-281,76,1743,546,323,140,0,3,0.22885
-282,76,1778,549,320,138,0,3,0.17271
-283,76,1793,549,320,137,0,3,0.12599
-284,76,1834,546,320,137,0,3,0.16667
-285,76,1868,548,320,137,0,3,0.081358
-539,77,1904,627,225,110,0,3,0.075221
-540,77,1887,621,225,110,0,3,0.15044
-541,77,1862,619,225,110,0,3,0.26106
-542,77,1842,631,225,110,0,3,0.34956
-543,77,1826,631,224,117,0,3,0.42222
-544,77,1807,629,222,125,0,3,0.51121
-545,77,1792,629,221,125,0,3,0.58108
-546,77,1773,630,221,126,0,3,0.66667
-547,77,1758,620,221,126,0,3,0.73423
-548,77,1743,625,220,121,0,3,0.80543
-549,77,1726,617,220,121,0,3,0.88235
-550,77,1714,621,220,129,0,3,0.93665
-551,77,1697,616,237,131,0,3,0.94118
-552,77,1684,619,237,133,0,3,0.9958
-553,77,1668,614,237,134,0,3,1
-554,77,1656,614,237,134,0,3,1
-555,77,1644,613,237,134,0,3,1
-556,77,1632,612,238,134,0,3,1
-557,77,1620,611,239,134,0,3,1
-558,77,1608,610,240,134,0,3,1
-559,77,1596,609,241,134,0,3,1
-560,77,1585,609,241,134,0,3,1
-561,77,1572,608,243,134,0,3,1
-562,77,1559,607,245,134,0,3,1
-563,77,1551,611,244,133,0,3,1
-564,77,1541,610,242,134,0,3,1
-565,77,1530,610,244,134,0,3,1
-566,77,1520,611,245,134,0,3,1
-567,77,1511,610,246,135,0,3,1
-568,77,1502,610,248,136,0,3,1
-569,77,1493,609,249,137,0,3,1
-570,77,1485,609,250,138,0,3,1
-571,77,1476,610,252,138,0,3,1
-572,77,1468,611,254,139,0,3,1
-573,77,1459,612,256,140,0,3,1
-574,77,1451,613,258,141,0,3,1
-575,77,1444,613,260,142,0,3,1
-576,77,1438,614,261,142,0,3,1
-577,77,1432,618,261,142,0,3,1
-578,77,1425,617,264,144,0,3,1
-579,77,1418,617,268,146,0,3,1
-580,77,1413,617,269,149,0,3,1
-581,77,1408,617,270,150,0,3,1
-582,77,1404,617,271,151,0,3,1
-583,77,1400,617,271,152,0,3,1
-584,77,1396,617,272,154,0,3,1
-585,77,1392,617,275,156,0,3,0.97464
-586,77,1389,617,277,158,0,3,0.94245
-587,77,1386,617,279,160,0,3,0.91071
-588,77,1383,617,281,162,0,3,0.86879
-589,77,1382,617,282,163,0,3,0.84547
-590,77,1381,617,283,164,0,3,0.81103
-591,77,1380,617,285,166,0,3,0.78029
-592,77,1381,617,288,168,0,3,0.75091
-593,77,1383,617,290,171,0,3,0.72537
-594,77,1385,617,293,174,0,3,0.70212
-595,77,1379,626,297,174,0,3,0.61948
-596,77,1382,620,301,173,0,3,0.60143
-597,77,1385,622,305,174,0,3,0.56575
-598,77,1388,622,308,175,0,3,0.53045
-599,77,1391,622,312,177,0,3,0.49923
-600,77,1395,622,315,178,0,3,0.46362
-601,77,1398,622,319,180,0,3,0.42895
-602,77,1402,622,322,182,0,3,0.38744
-603,77,1401,623,329,183,0,3,0.34091
-604,77,1411,626,328,186,0,3,0.29275
-605,77,1413,626,333,186,0,3,0.26479
-606,77,1415,626,338,186,0,3,0.29412
-607,77,1420,627,343,187,0,3,0.33511
-608,77,1425,628,348,188,0,3,0.33333
-609,77,1430,629,354,190,0,3,0.35079
-610,77,1433,631,359,189,0,3,0.39474
-611,77,1436,634,364,187,0,3,0.43617
-612,77,1440,637,368,186,0,3,0.48128
-613,77,1447,641,372,186,0,3,0.52406
-614,77,1454,646,377,186,0,3,0.5615
-615,77,1458,649,383,191,0,3,0.59896
-616,77,1463,652,389,196,0,3,0.67442
-617,77,1468,655,395,201,0,3,0.72847
-618,77,1473,658,401,206,0,3,0.80388
-619,77,1480,661,408,210,0,3,0.84426
-620,77,1487,668,410,215,0,3,0.87997
-621,77,1494,670,428,226,0,3,0.89085
-622,77,1501,672,426,230,0,3,0.9154
-623,77,1508,674,424,234,0,3,0.9287
-624,77,1515,677,422,238,0,3,0.93482
-625,77,1525,678,423,240,0,3,0.93396
-626,77,1535,679,425,243,0,3,0.9061
-627,77,1547,680,424,242,0,3,0.88
-628,77,1560,681,424,250,0,3,0.84941
-629,77,1570,674,424,259,0,3,0.82588
-630,77,1582,677,425,261,0,3,0.79577
-631,77,1596,680,420,262,0,3,0.77197
-632,77,1607,683,421,268,0,3,0.74408
-633,77,1619,686,422,274,0,3,0.71395
-634,77,1638,690,421,287,0,3,0.67062
-635,77,1652,696,424,282,0,3,0.63294
-636,77,1666,702,427,278,0,3,0.59579
-637,77,1681,709,429,274,0,3,0.55814
-638,77,1699,716,428,270,0,3,0.51748
-639,77,1718,723,426,266,0,3,0.47541
-640,77,1736,730,425,262,0,3,0.43427
-641,77,1755,737,424,258,0,3,0.39059
-642,77,1775,744,422,255,0,3,0.34515
-643,77,1795,751,420,252,0,3,0.29929
-644,77,1815,758,418,250,0,3,0.25298
-645,77,1832,769,416,238,0,3,0.21343
-646,77,1858,779,416,237,0,3,0.15108
-647,77,1885,781,417,242,0,3,0.086124
-524,78,1894,530,128,51,0,3,0.18515
-525,78,1874,535,128,51,0,3,0.28026
-526,78,1848,535,128,51,0,3,0.42442
-527,78,1822,538,128,51,0,3,0.51208
-528,78,1798,540,128,51,0,3,0.57812
-529,78,1774,533,128,50,0,3,0.77063
-530,78,1750,535,128,50,0,3,0.76486
-531,78,1733,532,121,49,0,3,0.88
-532,78,1706,532,121,49,0,3,0.89213
-533,78,1685,532,121,49,0,3,0.9177
-534,78,1666,535,121,49,0,3,0.90328
-535,78,1646,536,121,49,0,3,0.89574
-536,78,1627,536,121,49,0,3,0.92623
-537,78,1609,537,121,48,0,3,0.77551
-538,78,1590,537,121,48,0,3,1
-539,78,1572,538,121,48,0,3,0.95918
-540,78,1553,539,121,47,0,3,0.97917
-541,78,1535,539,121,47,0,3,0.993
-542,78,1516,540,121,47,0,3,0.99419
-543,78,1498,540,121,47,0,3,0.99402
-544,78,1479,541,121,46,0,3,0.98169
-545,78,1461,542,121,46,0,3,0.97279
-546,78,1446,539,119,47,0,3,0.98611
-547,78,1431,536,118,49,0,3,0.98655
-548,78,1415,534,118,48,0,3,0.97393
-549,78,1400,533,118,47,0,3,0.98669
-550,78,1385,532,118,46,0,3,1
-551,78,1370,531,118,45,0,3,0.98648
-552,78,1356,530,118,45,0,3,0.99324
-553,78,1343,529,117,45,0,3,1
-554,78,1329,528,117,45,0,3,1
-555,78,1316,527,117,45,0,3,1
-556,78,1303,524,117,46,0,3,1
-557,78,1291,522,117,46,0,3,1
-558,78,1278,521,117,45,0,3,1
-559,78,1266,520,117,45,0,3,1
-560,78,1255,519,117,45,0,3,1
-561,78,1244,519,117,45,0,3,1
-562,78,1232,518,117,45,0,3,1
-563,78,1221,518,117,45,0,3,1
-564,78,1210,517,117,45,0,3,1
-565,78,1199,517,117,45,0,3,1
-566,78,1189,517,118,44,0,3,1
-567,78,1179,517,119,43,0,3,1
-568,78,1169,517,120,42,0,3,1
-569,78,1159,517,121,42,0,3,1
-570,78,1148,517,122,42,0,3,1
-571,78,1140,517,121,42,0,3,1
-572,78,1132,517,120,43,0,3,1
-573,78,1125,517,119,43,0,3,1
-574,78,1117,517,118,44,0,3,1
-575,78,1110,517,117,45,0,3,0.97623
-576,78,1100,520,117,45,0,3,0.93515
-577,78,1092,519,117,46,0,3,0.90912
-578,78,1085,518,117,47,0,3,0.88612
-579,78,1078,517,117,48,0,3,0.8587
-580,78,1071,516,117,49,0,3,0.83237
-581,78,1061,515,121,49,0,3,0.78656
-582,78,1056,514,120,49,0,3,0.76959
-583,78,1052,514,119,49,0,3,0.754
-584,78,1048,513,117,50,0,3,0.74111
-585,78,1044,513,116,50,0,3,0.71828
-586,78,1040,512,116,51,0,3,0.70414
-587,78,1036,512,116,51,0,3,0.66979
-588,78,1033,512,116,51,0,3,0.64793
-589,78,1029,511,116,52,0,3,0.62748
-590,78,1025,511,116,52,0,3,0.59668
-591,78,1022,511,116,53,0,3,0.56442
-592,78,1020,510,116,54,0,3,0.54188
-593,78,1018,510,116,54,0,3,0.51453
-594,78,1016,510,116,54,0,3,0.48718
-595,78,1014,510,116,54,0,3,0.45983
-596,78,1013,509,116,54,0,3,0.47117
-597,78,1013,509,116,54,0,3,0.47273
-598,78,1013,509,116,54,0,3,0.47677
-599,78,1012,508,116,54,0,3,0.44227
-600,78,1012,508,116,54,0,3,0.41352
-601,78,1012,508,116,54,0,3,0.38477
-602,78,1011,507,116,54,0,3,0.36783
-603,78,1011,507,116,54,0,3,0.34545
-604,78,1011,507,116,54,0,3,0.43636
-605,78,1011,507,116,54,0,3,0.4
-606,78,1010,507,118,54,0,3,0.4
-607,78,1010,507,119,54,0,3,0.41818
-608,78,1010,507,121,54,0,3,0.43636
-609,78,1009,507,123,54,0,3,0.45455
-610,78,1009,507,125,54,0,3,0.45455
-611,78,1009,507,126,54,0,3,0.47273
-612,78,1008,507,128,54,0,3,0.49091
-613,78,1008,507,130,54,0,3,0.49091
-614,78,1008,507,131,54,0,3,0.50909
-615,78,1008,508,133,53,0,3,0.51852
-616,78,1008,511,133,53,0,3,0.51852
-617,78,1008,511,134,53,0,3,0.57407
-618,78,1009,511,134,53,0,3,0.61111
-619,78,1009,512,135,52,0,3,0.61543
-620,78,1010,512,135,53,0,3,0.65142
-621,78,1010,513,136,52,0,3,0.6926
-622,78,1011,513,136,52,0,3,0.73778
-623,78,1012,514,136,52,0,3,0.76243
-624,78,1014,516,137,53,0,3,0.75738
-625,78,1017,518,138,54,0,3,0.75317
-626,78,1020,516,138,54,0,3,0.77606
-627,78,1023,515,138,53,0,3,0.80975
-628,78,1027,518,138,54,0,3,0.77763
-629,78,1031,516,139,56,0,3,0.76667
-630,78,1035,515,140,57,0,3,0.7931
-631,78,1040,514,140,58,0,3,0.81608
-632,78,1043,513,141,58,0,3,0.85629
-633,78,1046,513,142,58,0,3,0.88479
-634,78,1050,513,142,58,0,3,0.90992
-635,78,1055,514,143,60,0,3,0.89162
-636,78,1061,516,144,61,0,3,0.91802
-637,78,1067,518,145,62,0,3,0.93259
-638,78,1072,520,145,62,0,3,0.94423
-639,78,1077,523,146,61,0,3,0.95348
-640,78,1082,525,147,61,0,3,0.96861
-641,78,1087,528,148,61,0,3,0.97337
-642,78,1093,529,148,61,0,3,0.98528
-643,78,1100,530,147,61,0,3,0.99412
-644,78,1107,531,147,61,0,3,1
-645,78,1114,532,146,61,0,3,1
-646,78,1121,533,145,61,0,3,1
-647,78,1128,534,145,62,0,3,1
-648,78,1135,534,147,62,0,3,1
-649,78,1143,534,148,62,0,3,1
-650,78,1150,534,150,62,0,3,1
-651,78,1158,534,152,62,0,3,1
-652,78,1166,531,152,61,0,3,0.99072
-653,78,1175,528,152,61,0,3,0.99114
-654,78,1185,521,153,61,0,3,0.99246
-655,78,1195,523,153,62,0,3,1
-656,78,1205,526,153,62,0,3,0.98825
-657,78,1218,530,154,58,0,3,0.98917
-658,78,1227,538,156,58,0,3,0.98057
-659,78,1237,546,157,59,0,3,0.97722
-660,78,1244,548,158,60,0,3,0.97773
-661,78,1251,551,160,60,0,3,0.97801
-662,78,1258,554,162,60,0,3,0.96741
-663,78,1267,558,164,60,0,3,0.96324
-664,78,1277,562,165,60,0,3,0.95763
-665,78,1286,563,166,61,0,3,0.94978
-666,78,1295,564,168,62,0,3,0.94224
-667,78,1305,566,169,62,0,3,0.93725
-668,78,1315,566,169,70,0,3,0.93099
-669,78,1326,566,169,69,0,3,0.93286
-670,78,1337,567,169,68,0,3,0.92941
-671,78,1347,565,169,68,0,3,0.91586
-672,78,1357,564,169,68,0,3,0.91185
-673,78,1367,563,169,67,0,3,0.90657
-674,78,1378,562,169,67,0,3,0.89836
-675,78,1389,561,167,70,0,3,0.90552
-676,78,1400,560,165,73,0,3,0.90866
-677,78,1410,569,172,65,0,3,0.89595
-678,78,1421,561,170,74,0,3,0.89302
-679,78,1433,566,173,78,0,3,0.87778
-680,78,1445,573,173,78,0,3,0.88608
-681,78,1451,578,180,82,0,3,0.88005
-682,78,1467,560,180,80,0,3,0.91222
-683,78,1469,569,180,78,0,3,0.86908
-684,78,1481,562,180,76,0,3,0.87522
-685,78,1493,549,181,77,0,3,0.87687
-686,78,1505,548,181,75,0,3,0.86813
-687,78,1518,547,180,73,0,3,0.87517
-688,78,1527,550,183,73,0,3,0.85473
-689,78,1536,553,186,73,0,3,0.83697
-690,78,1546,557,188,73,0,3,0.81403
-691,78,1555,548,188,86,0,3,0.81609
-692,78,1565,554,187,84,0,3,0.82278
-693,78,1575,560,186,82,0,3,0.78893
-694,78,1586,566,184,81,0,3,0.78906
-695,78,1596,572,183,79,0,3,0.79063
-696,78,1607,578,181,78,0,3,0.76631
-697,78,1613,583,181,73,0,3,0.73938
-698,78,1624,590,188,73,0,3,0.72201
-699,78,1635,597,196,73,0,3,0.75518
-700,78,1645,595,205,74,0,3,0.76647
-701,78,1655,603,205,74,0,3,0.71709
-702,78,1666,607,205,74,0,3,0.7356
-703,78,1675,618,207,76,0,3,0.70654
-704,78,1685,618,205,83,0,3,0.68759
-705,78,1697,623,206,83,0,3,0.68605
-706,78,1706,632,208,82,0,3,0.65135
-707,78,1715,621,208,82,0,3,0.70554
-708,78,1725,617,209,82,0,3,0.68285
-709,78,1736,613,209,82,0,3,0.66575
-710,78,1744,635,208,81,0,3,0.48092
-711,78,1752,615,210,81,0,3,0.43937
-712,78,1763,620,209,82,0,3,0.41744
-713,78,1772,606,208,94,0,3,0.33921
-714,78,1785,598,208,90,0,3,0.34324
-715,78,1793,596,207,90,0,3,0.33136
-716,78,1801,594,206,90,0,3,0.29941
-717,78,1810,600,208,82,0,3,0.26235
-718,78,1820,594,205,90,0,3,0.25862
-719,78,1830,597,205,89,0,3,0.29941
-720,78,1840,600,206,88,0,3,0.21544
-721,78,1851,604,206,87,0,3,0.18445
-722,78,1861,607,207,86,0,3,0.1691
-723,78,1871,610,207,86,0,3,0.15197
-724,78,1882,614,207,84,0,3,0.12794
-725,78,1892,617,208,84,0,3,0.099578
-726,78,1902,620,209,83,0,3,0.070011
-521,79,1905,594,193,86,0,3,0.082474
-522,79,1883,579,193,86,0,3,0.19588
-523,79,1858,579,193,86,0,3,0.32474
-524,79,1834,576,193,86,0,3,0.44845
-525,79,1810,575,199,90,0,3,0.555
-526,79,1786,574,205,94,0,3,0.65534
-527,79,1762,573,211,98,0,3,0.75
-528,79,1739,572,217,103,0,3,0.83486
-529,79,1719,573,226,104,0,3,0.88987
-530,79,1700,575,235,104,0,3,0.93644
-531,79,1680,576,244,105,0,3,0.98367
-532,79,1661,578,253,106,0,3,1
-533,79,1642,579,261,105,0,3,1
-534,79,1623,581,258,102,0,3,1
-535,79,1607,582,255,102,0,3,1
-536,79,1591,583,253,102,0,3,1
-537,79,1572,575,249,101,0,3,1
-538,79,1553,588,251,101,0,3,1
-539,79,1538,585,250,102,0,3,1
-540,79,1524,586,245,106,0,3,1
-541,79,1509,587,241,105,0,3,1
-542,79,1493,593,238,102,0,3,1
-543,79,1479,593,237,102,0,3,1
-544,79,1465,593,234,105,0,3,1
-545,79,1452,591,228,105,0,3,1
-546,79,1438,590,226,105,0,3,1
-547,79,1425,589,223,106,0,3,1
-548,79,1412,588,221,107,0,3,1
-549,79,1400,586,219,109,0,3,1
-550,79,1389,585,217,110,0,3,1
-551,79,1377,584,215,111,0,3,1
-552,79,1366,583,213,112,0,3,1
-553,79,1354,582,211,113,0,3,1
-554,79,1343,581,209,114,0,3,1
-555,79,1333,581,207,114,0,3,1
-556,79,1324,582,205,114,0,3,1
-557,79,1314,582,205,114,0,3,1
-558,79,1304,582,204,115,0,3,1
-559,79,1295,581,204,118,0,3,1
-560,79,1286,582,202,118,0,3,1
-561,79,1277,583,201,119,0,3,1
-562,79,1268,584,200,121,0,3,1
-563,79,1260,585,198,123,0,3,1
-564,79,1252,586,197,126,0,3,1
-565,79,1244,587,198,127,0,3,1
-566,79,1237,588,199,129,0,3,1
-567,79,1230,590,200,129,0,3,1
-568,79,1222,591,202,131,0,3,1
-569,79,1215,592,203,132,0,3,1
-570,79,1208,594,204,133,0,3,1
-571,79,1201,595,206,134,0,3,1
-572,79,1195,596,207,136,0,3,1
-573,79,1189,597,208,138,0,3,1
-574,79,1183,599,209,139,0,3,1
-575,79,1176,600,213,142,0,3,1
-576,79,1170,602,216,144,0,3,1
-577,79,1164,604,220,146,0,3,1
-578,79,1161,605,224,149,0,3,1
-579,79,1159,607,227,151,0,3,1
-580,79,1156,609,231,153,0,3,1
-581,79,1154,610,235,156,0,3,1
-582,79,1151,612,239,158,0,3,1
-583,79,1149,614,242,160,0,3,1
-584,79,1147,616,246,162,0,3,1
-585,79,1146,615,252,165,0,3,1
-586,79,1146,614,258,169,0,3,1
-587,79,1146,613,264,173,0,3,1
-588,79,1146,615,273,177,0,3,1
-589,79,1145,618,280,182,0,3,1
-590,79,1146,621,289,185,0,3,1
-591,79,1148,625,297,188,0,3,1
-592,79,1153,628,304,191,0,3,1
-593,79,1158,631,311,195,0,3,1
-594,79,1164,634,317,199,0,3,1
-595,79,1168,637,331,206,0,3,1
-596,79,1172,640,345,213,0,3,1
-597,79,1177,643,358,221,0,3,1
-598,79,1186,646,369,228,0,3,1
-599,79,1195,650,381,234,0,3,1
-600,79,1204,653,395,240,0,3,1
-601,79,1213,656,409,247,0,3,1
-602,79,1225,659,424,254,0,3,1
-603,79,1238,662,438,262,0,3,1
-604,79,1251,665,453,270,0,3,1
-605,79,1265,673,475,281,0,3,1
-606,79,1280,681,496,292,0,3,1
-607,79,1295,690,518,302,0,3,1
-608,79,1309,691,545,317,0,3,1
-609,79,1325,696,574,326,0,3,1
-610,79,1344,706,580,339,0,3,0.99312
-611,79,1363,716,586,363,0,3,0.9506
-612,79,1384,727,595,365,0,3,0.87147
-613,79,1406,739,603,367,0,3,0.79241
-614,79,1428,751,612,369,0,3,0.7173
-615,79,1447,764,613,370,0,3,0.65962
-616,79,1474,783,614,368,0,3,0.58698
-617,79,1502,797,614,368,0,3,0.52436
-618,79,1535,817,613,369,0,3,0.44856
-619,79,1569,830,613,370,0,3,0.38786
-620,79,1602,848,613,369,0,3,0.32717
-621,79,1646,860,613,368,0,3,0.26824
-622,79,1689,874,613,370,0,3,0.21082
-623,79,1734,886,613,369,0,3,0.16051
-624,79,1788,897,612,369,0,3,0.1079
-1,80,1163,516,130,57,0,3,0.81574
-2,80,1145,513,133,56,0,3,0.73737
-3,80,1129,514,135,55,0,3,0.63078
-4,80,1113,516,137,54,0,3,0.56653
-5,80,1088,517,148,54,0,3,0.48164
-6,80,1075,530,150,54,0,3,0.387
-7,80,1059,522,151,54,0,3,0.44569
-8,80,1044,528,151,50,0,3,0.58127
-9,80,1031,529,153,52,0,3,0.62632
-10,80,1015,535,154,49,0,3,0.63897
-11,80,999,526,157,56,0,3,0.673
-12,80,980,529,157,56,0,3,0.64801
-13,80,966,522,157,56,0,3,0.70686
-14,80,951,522,158,55,0,3,0.72821
-15,80,936,522,160,55,0,3,0.76786
-16,80,919,522,160,55,0,3,0.77795
-17,80,903,522,159,56,0,3,0.77807
-18,80,887,523,158,56,0,3,0.79124
-19,80,871,523,157,57,0,3,0.83435
-20,80,855,523,156,58,0,3,0.87887
-21,80,839,524,156,58,0,3,0.91687
-22,80,822,525,156,58,0,3,0.95725
-23,80,806,526,156,58,0,3,0.99525
-24,80,788,528,156,58,0,3,1
-25,80,773,534,158,56,0,3,1
-26,80,755,533,159,54,0,3,1
-27,80,737,537,159,54,0,3,1
-28,80,721,540,159,55,0,3,1
-29,80,704,539,162,55,0,3,1
-30,80,682,541,164,61,0,3,0.93118
-31,80,675,552,156,58,0,3,0.91914
-32,80,654,549,162,58,0,3,0.80212
-33,80,638,542,156,58,0,3,0.77038
-34,80,618,546,163,61,0,3,0.66227
-35,80,605,536,158,60,0,3,0.61511
-36,80,586,533,162,59,0,3,0.52249
-37,80,568,532,160,54,0,3,0.45692
-38,80,551,532,158,55,0,3,0.44429
-39,80,534,532,157,56,0,3,0.43904
-40,80,517,532,156,58,0,3,0.43053
-10,81,1510,550,119,46,0,3,0.675
-11,81,1500,541,125,48,0,3,0.61791
-12,81,1491,532,131,51,0,3,0.62107
-13,81,1482,527,137,54,0,3,0.56798
-14,81,1471,519,143,59,0,3,0.55903
-15,81,1466,519,150,58,0,3,0.59558
-16,81,1456,525,155,54,0,3,0.59895
-17,81,1446,524,162,55,0,3,0.56748
-18,81,1437,524,169,55,0,3,0.50987
-19,81,1428,523,176,56,0,3,0.48023
-20,81,1419,523,183,56,0,3,0.47883
-21,81,1409,524,183,55,0,3,0.47913
-22,81,1400,526,182,54,0,3,0.52221
-23,81,1389,527,181,54,0,3,0.58332
-24,81,1382,525,176,54,0,3,0.59784
-25,81,1373,530,177,55,0,3,0.63604
-26,81,1365,532,178,56,0,3,0.68597
-27,81,1354,534,178,55,0,3,0.76796
-28,81,1347,536,178,53,0,3,0.77188
-29,81,1337,539,179,56,0,3,0.77037
-30,81,1324,541,181,54,0,3,0.78102
-31,81,1316,547,181,55,0,3,0.7968
-32,81,1307,549,181,56,0,3,0.84683
-33,81,1299,538,181,56,0,3,0.92288
-34,81,1290,535,181,57,0,3,0.90603
-35,81,1281,533,181,57,0,3,0.92308
-36,81,1272,530,181,58,0,3,0.92308
-37,81,1263,528,181,58,0,3,0.9052
-38,81,1254,526,181,59,0,3,0.87482
-39,81,1245,525,181,59,0,3,0.84341
-40,81,1236,524,182,60,0,3,0.81331
-41,81,1226,526,186,60,0,3,0.77365
-42,81,1218,527,184,60,0,3,0.74284
-43,81,1210,529,183,59,0,3,0.79303
-44,81,1202,531,182,58,0,3,0.77948
-45,81,1195,533,180,58,0,3,0.74398
-46,81,1187,533,180,59,0,3,0.73002
-47,81,1179,534,180,60,0,3,0.69649
-48,81,1171,535,180,61,0,3,0.66396
-49,81,1163,536,181,62,0,3,0.64382
-50,81,1156,536,179,59,0,3,0.64157
-51,81,1148,538,175,58,0,3,0.6121
-52,81,1141,539,174,58,0,3,0.5846
-53,81,1134,539,173,56,0,3,0.62835
-54,81,1127,538,172,55,0,3,0.66422
-55,81,1120,537,171,54,0,3,0.70825
-56,81,1113,536,170,53,0,3,0.76381
-57,81,1106,533,169,53,0,3,0.79521
-58,81,1100,531,168,53,0,3,0.82084
-59,81,1093,529,170,54,0,3,0.82531
-60,81,1087,528,165,59,0,3,0.79347
-61,81,1081,526,162,59,0,3,0.82342
-62,81,1076,525,158,58,0,3,0.90076
-63,81,1071,524,155,57,0,3,0.87776
-64,81,1066,526,153,61,0,3,0.87547
-65,81,1061,526,150,61,0,3,0.88347
-66,81,1056,527,147,60,0,3,0.89466
-67,81,1051,528,145,59,0,3,0.91164
-68,81,1044,528,142,59,0,3,0.93124
-69,81,1037,529,140,58,0,3,0.94843
-70,81,1032,526,139,59,0,3,0.98036
-71,81,1027,526,136,60,0,3,0.98684
-72,81,1023,526,132,61,0,3,0.9886
-73,81,1017,525,129,61,0,3,0.9933
-74,81,1012,525,126,60,0,3,1
-75,81,1007,525,123,59,0,3,1
-76,81,1002,525,120,58,0,3,1
-77,81,997,524,117,58,0,3,1
-78,81,992,524,114,57,0,3,1
-79,81,987,524,111,56,0,3,1
-80,81,982,524,108,55,0,3,1
-81,81,979,524,105,55,0,3,1
-82,81,973,522,103,57,0,3,1
-83,81,968,521,100,59,0,3,1
-84,81,965,518,94,61,0,3,1
-85,81,961,519,92,60,0,3,1
-86,81,957,521,90,59,0,3,1
-87,81,953,523,89,58,0,3,1
-88,81,949,525,87,56,0,3,1
-89,81,945,527,85,55,0,3,1
-90,81,942,529,83,54,0,3,1
-91,81,937,527,84,60,0,3,1
-92,81,932,532,80,53,0,3,1
-93,81,928,534,79,53,0,3,1
-94,81,924,537,79,53,0,3,1
-95,81,920,536,78,53,0,3,1
-96,81,917,536,76,53,0,3,1
-97,81,913,536,74,53,0,3,1
-98,81,909,537,73,52,0,3,1
-99,81,905,537,71,52,0,3,1
-100,81,901,538,70,52,0,3,1
-101,81,897,538,70,52,0,3,1
-102,81,894,538,69,52,0,3,1
-103,81,890,537,69,51,0,3,1
-104,81,886,536,70,51,0,3,1
-105,81,883,535,69,51,0,3,1
-106,81,879,534,70,51,0,3,1
-107,81,875,533,70,51,0,3,1
-108,81,872,532,70,51,0,3,1
-109,81,868,531,70,51,0,3,1
-110,81,865,531,70,50,0,3,1
-111,81,864,532,65,52,0,3,1
-112,81,859,531,65,52,0,3,1
-113,81,855,531,65,52,0,3,1
-114,81,851,530,65,52,0,3,1
-115,81,846,530,65,52,0,3,1
-116,81,842,529,65,52,0,3,1
-117,81,838,529,65,52,0,3,1
-118,81,833,528,65,52,0,3,1
-119,81,829,528,65,52,0,3,1
-120,81,825,528,65,52,0,3,1
-121,81,820,528,66,51,0,3,1
-122,81,816,526,63,51,0,3,1
-123,81,814,526,64,51,0,3,1
-124,81,809,526,64,51,0,3,1
-125,81,805,526,64,51,0,3,1
-126,81,801,526,64,51,0,3,1
-127,81,797,526,63,51,0,3,1
-128,81,793,526,63,51,0,3,1
-129,81,789,526,63,51,0,3,1
-130,81,785,527,63,50,0,3,1
-131,81,781,530,63,50,0,3,1
-132,81,777,529,62,49,0,3,1
-133,81,773,528,61,49,0,3,1
-134,81,769,527,60,48,0,3,1
-135,81,765,527,60,47,0,3,1
-136,81,761,526,60,47,0,3,1
-137,81,757,525,60,47,0,3,1
-138,81,753,524,60,47,0,3,1
-139,81,750,523,59,48,0,3,1
-140,81,748,521,59,49,0,3,1
-141,81,745,522,59,49,0,3,1
-142,81,742,521,58,47,0,3,1
-143,81,739,520,58,46,0,3,1
-144,81,736,522,58,46,0,3,1
-145,81,731,523,58,45,0,3,1
-146,81,730,522,57,44,0,3,1
-147,81,727,524,57,45,0,3,1
-148,81,723,523,58,46,0,3,1
-149,81,719,522,59,47,0,3,1
-150,81,715,523,58,44,0,3,1
-151,81,711,527,58,43,0,3,1
-152,81,706,526,57,43,0,3,1
-153,81,701,525,56,44,0,3,1
-154,81,696,524,56,45,0,3,1
-155,81,692,523,55,44,0,3,1
-156,81,687,523,57,44,0,3,1
-157,81,683,523,56,44,0,3,1
-158,81,679,523,55,44,0,3,1
-159,81,675,524,55,43,0,3,1
-160,81,672,524,53,44,0,3,1
-161,81,668,528,53,42,0,3,1
-162,81,665,527,53,42,0,3,1
-163,81,662,527,53,42,0,3,1
-164,81,658,526,53,42,0,3,1
-165,81,655,526,53,42,0,3,1
-166,81,652,526,52,42,0,3,1
-167,81,649,525,52,43,0,3,1
-168,81,646,525,51,43,0,3,1
-169,81,643,525,51,43,0,3,1
-170,81,640,522,53,43,0,3,1
-171,81,636,523,52,41,0,3,1
-172,81,636,522,52,41,0,3,1
-173,81,633,523,52,40,0,3,1
-174,81,630,524,52,40,0,3,1
-175,81,626,522,53,41,0,3,1
-176,81,622,521,54,41,0,3,1
-177,81,622,519,52,40,0,3,1
-178,81,619,519,51,40,0,3,1
-179,81,618,521,51,39,0,3,1
-180,81,614,519,52,41,0,3,1
-181,81,612,520,51,41,0,3,1
-182,81,610,522,51,40,0,3,1
-183,81,608,522,50,39,0,3,1
-184,81,606,522,50,39,0,3,1
-185,81,604,522,50,39,0,3,1
-186,81,602,522,50,39,0,3,1
-187,81,600,522,50,39,0,3,1
-188,81,598,522,50,39,0,3,1
-189,81,596,522,50,39,0,3,1
-190,81,594,523,50,38,0,3,1
-191,81,593,524,50,37,0,3,1
-192,81,592,527,51,35,0,3,1
-193,81,589,527,50,36,0,3,1
-194,81,587,527,50,36,0,3,1
-195,81,585,527,50,36,0,3,1
-196,81,584,528,50,36,0,3,1
-197,81,582,527,50,36,0,3,1
-198,81,581,527,49,36,0,3,1
-199,81,580,527,48,36,0,3,1
-200,81,579,527,48,36,0,3,1
-201,81,577,527,48,36,0,3,1
-202,81,576,527,48,36,0,3,1
-203,81,575,527,48,36,0,3,1
-204,81,574,527,48,36,0,3,1
-205,81,573,526,49,36,0,3,1
-206,81,571,527,47,35,0,3,1
-207,81,571,528,47,35,0,3,1
-208,81,569,528,47,35,0,3,1
-209,81,568,528,47,36,0,3,1
-210,81,568,528,45,36,0,3,1
-211,81,569,530,45,36,0,3,1
-212,81,569,530,45,36,0,3,1
-213,81,569,531,45,35,0,3,1
-214,81,568,535,44,31,0,3,1
-215,81,569,533,44,31,0,3,1
-216,81,568,535,44,32,0,3,1
-217,81,569,533,44,33,0,3,1
-218,81,569,532,44,33,0,3,1
-219,81,570,531,44,34,0,3,1
-220,81,571,530,44,35,0,3,1
-221,81,571,529,44,35,0,3,1
-222,81,572,529,44,35,0,3,1
-223,81,573,530,44,34,0,3,1
-224,81,574,531,44,34,0,3,1
-225,81,575,532,44,33,0,3,1
-226,81,577,534,43,32,0,3,1
-227,81,578,533,43,32,0,3,1
-228,81,580,532,42,32,0,3,1
-229,81,580,532,42,32,0,3,1
-230,81,580,531,43,33,0,3,1
-231,81,583,534,42,32,0,3,1
-232,81,583,532,41,30,0,3,1
-233,81,587,532,41,30,0,3,1
-234,81,588,530,41,30,0,3,1
-235,81,589,529,41,30,0,3,1
-236,81,590,527,41,31,0,3,1
-237,81,592,526,40,31,0,3,1
-238,81,594,528,41,30,0,3,1
-239,81,599,525,41,31,0,3,1
-240,81,598,522,40,32,0,3,1
-241,81,601,523,40,31,0,3,1
-242,81,604,524,40,30,0,3,1
-243,81,606,523,40,29,0,3,1
-244,81,609,522,39,28,0,3,1
-245,81,612,523,39,28,0,3,1
-246,81,616,524,39,29,0,3,1
-247,81,618,521,39,28,0,3,1
-248,81,623,522,40,29,0,3,1
-249,81,625,521,40,29,0,3,1
-250,81,628,521,40,30,0,3,1
-251,81,633,522,39,29,0,3,1
-252,81,637,522,39,29,0,3,1
-253,81,641,522,39,29,0,3,1
-254,81,645,522,40,30,0,3,1
-255,81,649,522,40,30,0,3,1
-256,81,654,523,40,30,0,3,1
-257,81,659,523,38,29,0,3,1
-258,81,664,524,36,27,0,3,1
-259,81,669,525,35,26,0,3,1
-260,81,671,521,38,29,0,3,1
-261,81,676,522,38,29,0,3,1
-262,81,681,524,38,29,0,3,1
-263,81,685,523,37,29,0,3,1
-264,81,690,523,36,29,0,3,1
-265,81,694,522,36,29,0,3,1
-266,81,699,522,35,29,0,3,1
-267,81,704,522,34,29,0,3,1
-268,81,708,522,35,27,0,3,1
-269,81,713,521,35,26,0,3,1
-270,81,718,520,35,26,0,3,1
-271,81,722,518,35,26,0,3,1
-272,81,727,517,35,26,0,3,1
-273,81,731,516,35,26,0,3,1
-274,81,736,515,35,26,0,3,1
-275,81,739,516,35,26,0,3,1
-276,81,744,514,35,26,0,3,1
-277,81,749,513,35,26,0,3,1
-278,81,753,511,33,29,0,3,1
-279,81,757,513,35,26,0,3,1
-280,81,762,515,35,26,0,3,1
-281,81,765,514,35,26,0,3,1
-282,81,769,514,35,26,0,3,1
-283,81,773,514,35,26,0,3,1
-284,81,777,513,35,26,0,3,1
-285,81,781,513,35,26,0,3,1
-286,81,784,513,35,26,0,3,1
-287,81,788,512,35,26,0,3,1
-288,81,792,512,35,26,0,3,1
-289,81,796,512,35,26,0,3,1
-290,81,800,512,35,26,0,3,1
-291,81,805,513,34,24,0,3,1
-292,81,810,513,35,23,0,3,1
-293,81,813,513,36,24,0,3,1
-294,81,815,513,36,23,0,3,1
-295,81,814,512,37,24,0,3,1
-296,81,820,514,34,24,0,3,1
-297,81,820,512,38,25,0,3,1
-298,81,825,511,38,25,0,3,1
-299,81,828,512,36,26,0,3,1
-300,81,831,513,35,26,0,3,1
-301,81,833,513,35,26,0,3,1
-302,81,836,513,35,26,0,3,1
-303,81,840,515,35,25,0,3,1
-304,81,844,517,35,25,0,3,1
-305,81,845,518,34,25,0,3,1
-306,81,846,520,34,24,0,3,1
-307,81,849,522,34,24,0,3,1
-308,81,852,525,35,24,0,3,1
-309,81,854,524,35,24,0,3,1
-310,81,856,523,36,25,0,3,1
-311,81,857,523,37,25,0,3,1
-312,81,858,524,38,24,0,3,1
-313,81,859,524,39,24,0,3,1
-314,81,861,525,39,24,0,3,1
-315,81,862,524,39,24,0,3,1
-316,81,864,524,38,23,0,3,1
-317,81,866,524,37,22,0,3,1
-318,81,868,524,37,22,0,3,1
-319,81,870,524,36,22,0,3,1
-320,81,872,525,35,22,0,3,1
-321,81,871,523,37,21,0,3,1
-322,81,873,524,37,21,0,3,1
-323,81,874,523,37,21,0,3,1
-324,81,875,522,37,21,0,3,1
-325,81,876,521,37,22,0,3,1
-326,81,876,520,36,22,0,3,1
-327,81,876,520,35,22,0,3,1
-328,81,876,520,35,22,0,3,0.98188
-329,81,876,517,35,22,0,3,1
-330,81,877,516,35,22,0,3,1
-331,81,877,513,35,22,0,3,1
-332,81,875,510,35,22,0,3,1
-333,81,874,508,35,22,0,3,1
-334,81,873,505,35,23,0,3,1
-335,81,871,502,35,23,0,3,1
-336,81,870,500,35,22,0,3,1
-337,81,869,501,35,22,0,3,1
-338,81,868,502,35,22,0,3,1
-339,81,867,504,35,22,0,3,1
-340,81,866,500,36,22,0,3,1
-341,81,863,502,35,23,0,3,1
-342,81,863,503,35,23,0,3,1
-343,81,863,506,35,21,0,3,1
-344,81,860,510,35,21,0,3,1
-345,81,858,514,34,22,0,3,1
-346,81,856,518,35,23,0,3,1
-347,81,854,519,35,22,0,3,1
-348,81,852,520,35,22,0,3,1
-349,81,850,521,35,22,0,3,0.97222
-350,81,849,522,34,22,0,3,0.94286
-351,81,847,521,35,22,0,3,0.86111
-352,81,845,521,36,22,0,3,0.81081
-353,81,844,521,36,23,0,3,0.78378
-354,81,843,522,36,23,0,3,0.75676
-355,81,839,522,36,22,0,3,0.64865
-356,81,837,522,36,22,0,3,0.59459
-357,81,834,522,36,22,0,3,0.53467
-358,81,832,522,36,22,0,3,0.53467
-359,81,832,525,36,22,0,3,0.54054
-360,81,828,527,36,22,0,3,0.48649
-361,81,824,525,36,22,0,3,0.40541
-362,81,823,528,36,23,0,3,0.40541
-363,81,822,531,35,19,0,3,0.38889
-364,81,819,531,36,23,0,3,0.35135
-365,81,818,536,34,18,0,3,0.28571
-366,81,815,535,37,24,0,3,0.28947
-1,82,1019,487,28,15,0,3,1
-2,82,1021,480,26,15,0,3,1
-3,82,1022,486,27,15,0,3,1
-4,82,1026,483,25,15,0,3,1
-5,82,1028,484,26,16,0,3,1
-6,82,1031,495,26,17,0,3,1
-7,82,1031,487,27,17,0,3,1
-8,82,1032,494,27,17,0,3,1
-9,82,1035,496,27,15,0,3,1
-10,82,1037,501,26,14,0,3,1
-11,82,1035,494,26,15,0,3,1
-12,82,1037,499,27,15,0,3,1
-13,82,1036,490,27,15,0,3,1
-14,82,1037,490,27,15,0,3,1
-15,82,1038,490,28,16,0,3,1
-16,82,1039,490,28,16,0,3,1
-17,82,1041,491,27,16,0,3,1
-18,82,1042,491,28,16,0,3,1
-19,82,1044,490,28,16,0,3,0.9432
-20,82,1043,491,29,16,0,3,0.94118
-21,82,1044,491,29,16,0,3,0.88235
-22,82,1045,492,29,16,0,3,0.82157
-23,82,1046,492,29,16,0,3,0.75294
-24,82,1046,492,29,16,0,3,0.77059
-25,82,1048,496,29,16,0,3,0.64706
-26,82,1050,497,28,16,0,3,0.62069
-27,82,1051,498,28,16,0,3,0.71602
-28,82,1053,500,27,16,0,3,0.72269
-29,82,1053,503,26,16,0,3,0.78431
-30,82,1053,506,26,16,0,3,0.57516
-31,82,1055,512,28,17,0,3,0.62644
-32,82,1055,506,28,17,0,3,0.65517
-33,82,1055,500,29,17,0,3,0.72222
-34,82,1056,503,30,17,0,3,0.75806
-35,82,1058,496,30,19,0,3,0.75806
-36,82,1058,493,31,18,0,3,0.80263
-37,82,1059,491,31,17,0,3,0.84375
-38,82,1061,490,32,16,0,3,0.75936
-39,82,1060,489,31,17,0,3,0.73264
-40,82,1060,488,32,17,0,3,0.73737
-41,82,1061,487,32,17,0,3,0.78114
-42,82,1062,487,31,19,0,3,0.775
-43,82,1063,488,31,20,0,3,0.80357
-44,82,1063,489,31,20,0,3,0.82143
-45,82,1064,490,31,20,0,3,0.85714
-46,82,1065,491,30,20,0,3,0.87097
-47,82,1066,492,30,20,0,3,0.89247
-48,82,1067,493,30,20,0,3,0.94009
-49,82,1065,492,33,24,0,3,0.94824
-50,82,1070,492,30,20,0,3,1
-51,82,1072,496,31,21,0,3,1
-52,82,1072,495,31,21,0,3,1
-53,82,1073,495,30,20,0,3,1
-54,82,1075,495,30,21,0,3,1
-55,82,1077,495,30,22,0,3,1
-56,82,1074,495,30,20,0,3,1
-57,82,1074,493,30,20,0,3,1
-58,82,1075,491,29,20,0,3,1
-59,82,1075,491,29,19,0,3,1
-60,82,1075,491,30,19,0,3,1
-61,82,1078,489,29,18,0,3,1
-62,82,1078,487,28,19,0,3,1
-63,82,1077,487,28,19,0,3,1
-64,82,1081,487,30,20,0,3,1
-65,82,1081,488,28,19,0,3,1
-66,82,1081,489,26,19,0,3,1
-67,82,1082,491,24,18,0,3,1
-68,82,1080,491,26,18,0,3,1
-69,82,1078,491,28,19,0,3,1
-70,82,1075,490,28,19,0,3,1
-71,82,1075,490,27,17,0,3,1
-72,82,1074,488,29,22,0,3,1
-73,82,1073,489,29,21,0,3,1
-74,82,1072,490,29,20,0,3,1
-75,82,1071,492,30,18,0,3,1
-76,82,1068,491,30,19,0,3,1
-77,82,1066,491,30,19,0,3,1
-78,82,1064,491,30,20,0,3,1
-79,82,1063,488,28,18,0,3,1
-80,82,1061,488,27,18,0,3,1
-81,82,1060,489,25,18,0,3,1
-82,82,1057,488,27,19,0,3,1
-83,82,1055,488,28,19,0,3,1
-84,82,1052,488,30,19,0,3,1
-85,82,1049,489,29,18,0,3,1
-86,82,1046,490,28,18,0,3,1
-87,82,1043,491,27,18,0,3,1
-88,82,1041,492,26,19,0,3,1
-89,82,1038,493,26,19,0,3,1
-90,82,1036,495,25,19,0,3,1
-91,82,1034,498,29,19,0,3,1
-92,82,1032,498,28,18,0,3,1
-93,82,1029,499,28,18,0,3,1
-94,82,1024,499,30,19,0,3,1
-95,82,1020,500,30,19,0,3,1
-96,82,1019,503,31,20,0,3,1
-97,82,1015,503,31,20,0,3,1
-98,82,1011,503,31,20,0,3,1
-99,82,1007,502,31,20,0,3,1
-100,82,1004,502,31,20,0,3,1
-101,82,1001,502,31,20,0,3,1
-102,82,999,503,31,20,0,3,1
-103,82,997,505,31,19,0,3,1
-104,82,996,504,31,19,0,3,1
-105,82,990,504,30,18,0,3,1
-106,82,987,503,30,18,0,3,1
-107,82,985,502,30,19,0,3,1
-108,82,983,503,30,21,0,3,1
-109,82,980,502,30,20,0,3,1
-110,82,978,502,30,19,0,3,1
-111,82,973,501,30,20,0,3,1
-112,82,969,501,30,21,0,3,1
-113,82,966,501,29,20,0,3,1
-114,82,963,501,28,20,0,3,1
-115,82,960,501,27,20,0,3,1
-116,82,956,502,28,21,0,3,1
-117,82,952,501,28,21,0,3,1
-118,82,948,501,28,21,0,3,1
-119,82,944,501,29,21,0,3,1
-120,82,940,500,29,22,0,3,1
-121,82,937,500,29,22,0,3,1
-122,82,933,500,29,22,0,3,1
-123,82,929,499,30,23,0,3,1
-124,82,925,499,30,23,0,3,1
-125,82,922,499,30,23,0,3,0.98387
-126,82,918,500,30,23,0,3,1
-127,82,915,502,30,22,0,3,0.98036
-128,82,911,502,30,22,0,3,0.98177
-129,82,907,502,30,22,0,3,0.98177
-130,82,904,502,30,22,0,3,0.96353
-131,82,900,502,30,23,0,3,0.98253
-132,82,896,502,30,23,0,3,0.98118
-133,82,893,502,30,23,0,3,0.98118
-134,82,889,502,30,23,0,3,0.98118
-135,82,886,503,30,23,0,3,0.97984
-136,82,883,502,31,24,0,3,0.94375
-137,82,879,501,31,24,0,3,0.965
-138,82,876,501,31,24,0,3,0.9475
-139,82,873,501,31,24,0,3,0.9475
-140,82,870,501,31,24,0,3,0.93
-141,82,867,500,31,24,0,3,0.935
-142,82,864,500,31,24,0,3,0.91875
-143,82,860,500,31,24,0,3,0.935
-144,82,857,501,31,24,0,3,0.9125
-145,82,856,501,30,23,0,3,0.89516
-146,82,852,500,31,24,0,3,0.88625
-147,82,848,500,32,24,0,3,0.8897
-148,82,845,501,32,24,0,3,0.86424
-149,82,841,501,33,24,0,3,0.86824
-150,82,838,502,33,24,0,3,0.84118
-151,82,833,502,33,24,0,3,0.87647
-152,82,828,503,34,24,0,3,0.85371
-153,82,823,503,34,24,0,3,0.872
-154,82,819,504,34,24,0,3,0.872
-155,82,816,504,34,23,0,3,0.83929
-156,82,812,504,33,22,0,3,0.85678
-157,82,807,505,33,23,0,3,0.87132
-158,82,803,505,33,23,0,3,0.88971
-159,82,799,505,33,23,0,3,0.90809
-160,82,796,505,32,24,0,3,0.92727
-161,82,793,505,32,23,0,3,0.92929
-162,82,789,506,32,23,0,3,0.94318
-163,82,786,507,32,24,0,3,0.94182
-164,82,783,506,31,24,0,3,0.96
-165,82,780,506,31,24,0,3,0.96
-166,82,777,506,31,23,0,3,0.95833
-167,82,774,506,31,23,0,3,0.95833
-168,82,772,506,31,23,0,3,0.9375
-169,82,769,506,31,23,0,3,0.93359
-170,82,767,506,31,23,0,3,0.91146
-171,82,764,506,31,22,0,3,0.91304
-172,82,761,506,31,22,0,3,0.91304
-173,82,759,506,31,22,0,3,0.91304
-174,82,756,506,31,22,0,3,0.91304
-175,82,754,506,31,22,0,3,0.91304
-176,82,751,506,32,22,0,3,0.8946
-177,82,749,506,32,23,0,3,0.89268
-178,82,747,506,32,23,0,3,0.87121
-179,82,745,506,32,24,0,3,0.86909
-180,82,742,506,33,24,0,3,0.85176
-181,82,740,506,33,24,0,3,0.86
-182,82,738,506,33,24,0,3,0.84941
-183,82,736,506,33,25,0,3,0.8552
-184,82,734,507,32,25,0,3,0.86946
-185,82,732,508,32,25,0,3,0.85082
-186,82,731,507,33,26,0,3,0.8366
-187,82,728,507,33,26,0,3,0.86275
-188,82,726,507,33,26,0,3,0.85839
-189,82,724,508,33,26,0,3,0.85839
-190,82,722,508,33,26,0,3,0.86928
-191,82,719,509,34,25,0,3,0.88132
-192,82,717,509,34,26,0,3,0.9037
-193,82,715,510,34,25,0,3,0.93407
-194,82,713,510,34,25,0,3,0.96044
-195,82,711,511,34,25,0,3,0.98681
-196,82,709,511,34,25,0,3,0.98681
-197,82,708,511,34,25,0,3,0.98791
-198,82,707,512,34,25,0,3,0.97363
-199,82,705,512,34,25,0,3,0.98791
-200,82,704,513,34,25,0,3,0.97363
-201,82,703,513,34,25,0,3,0.97582
-202,82,701,513,34,25,0,3,0.97802
-203,82,700,514,34,25,0,3,0.96703
-204,82,699,514,34,25,0,3,0.97033
-205,82,698,515,34,25,0,3,0.96703
-206,82,696,515,34,25,0,3,0.99011
-207,82,695,516,34,25,0,3,0.99011
-208,82,694,517,34,25,0,3,1
-209,82,693,518,34,25,0,3,1
-210,82,692,519,34,25,0,3,1
-211,82,691,520,34,25,0,3,1
-212,82,692,523,34,25,0,3,1
-213,82,691,522,34,25,0,3,1
-214,82,690,522,34,25,0,3,1
-215,82,690,522,34,25,0,3,1
-216,82,690,523,35,26,0,3,1
-217,82,690,523,35,25,0,3,1
-218,82,690,523,35,25,0,3,1
-219,82,690,523,36,25,0,3,1
-220,82,690,523,36,25,0,3,1
-221,82,691,523,36,24,0,3,1
-222,82,691,523,36,24,0,3,1
-223,82,691,523,37,24,0,3,1
-224,82,691,523,37,24,0,3,1
-225,82,692,523,37,24,0,3,1
-226,82,693,527,39,29,0,3,1
-227,82,693,524,38,27,0,3,1
-228,82,694,524,38,28,0,3,1
-229,82,695,525,39,28,0,3,1
-230,82,695,523,40,29,0,3,1
-231,82,696,523,40,29,0,3,1
-232,82,698,523,39,29,0,3,1
-233,82,699,522,39,29,0,3,1
-234,82,700,521,40,29,0,3,1
-235,82,701,520,41,30,0,3,1
-236,82,704,523,41,29,0,3,1
-237,82,706,522,40,28,0,3,1
-238,82,708,521,40,28,0,3,1
-239,82,709,521,41,29,0,3,1
-240,82,711,519,42,30,0,3,1
-241,82,713,519,41,29,0,3,1
-242,82,717,520,39,28,0,3,1
-243,82,719,519,40,28,0,3,1
-244,82,722,518,40,29,0,3,1
-245,82,725,518,41,30,0,3,1
-246,82,728,518,41,30,0,3,1
-247,82,731,519,41,30,0,3,1
-248,82,734,520,41,30,0,3,1
-249,82,739,520,41,30,0,3,1
-250,82,741,520,41,30,0,3,1
-251,82,745,520,41,30,0,3,1
-252,82,750,521,40,29,0,3,1
-253,82,754,521,41,30,0,3,1
-254,82,759,522,40,29,0,3,1
-255,82,764,523,40,29,0,3,1
-256,82,769,522,40,30,0,3,1
-257,82,774,522,41,30,0,3,1
-258,82,779,521,41,31,0,3,1
-259,82,784,521,42,31,0,3,1
-260,82,789,520,42,32,0,3,1
-261,82,794,520,43,32,0,3,1
-262,82,799,520,44,32,0,3,1
-263,82,802,520,45,32,0,3,1
-264,82,806,520,45,33,0,3,1
-265,82,811,520,46,34,0,3,1
-266,82,818,520,43,33,0,3,1
-267,82,823,522,43,33,0,3,1
-268,82,828,524,44,34,0,3,1
-269,82,833,522,45,34,0,3,1
-270,82,839,520,45,35,0,3,1
-271,82,843,520,46,35,0,3,1
-272,82,848,520,46,35,0,3,1
-273,82,853,520,46,36,0,3,1
-274,82,859,517,46,36,0,3,1
-275,82,865,518,46,36,0,3,1
-276,82,869,517,47,36,0,3,1
-277,82,874,516,47,36,0,3,1
-278,82,879,516,48,36,0,3,1
-279,82,884,518,48,36,0,3,1
-280,82,889,520,49,36,0,3,1
-281,82,894,519,49,36,0,3,1
-282,82,899,519,49,36,0,3,1
-283,82,904,518,50,37,0,3,1
-284,82,909,518,50,37,0,3,1
-285,82,915,518,50,37,0,3,1
-286,82,920,518,50,37,0,3,1
-287,82,926,518,50,37,0,3,1
-288,82,931,518,50,38,0,3,1
-289,82,937,518,50,38,0,3,1
-290,82,942,518,50,38,0,3,1
-291,82,948,518,50,39,0,3,1
-292,82,953,517,50,40,0,3,1
-293,82,958,517,51,40,0,3,1
-294,82,963,517,51,40,0,3,1
-295,82,968,517,52,40,0,3,1
-296,82,972,518,53,39,0,3,1
-297,82,977,519,53,39,0,3,1
-298,82,982,520,54,39,0,3,1
-299,82,985,520,54,40,0,3,1
-300,82,989,521,54,40,0,3,1
-301,82,993,522,54,41,0,3,1
-302,82,999,523,52,38,0,3,1
-303,82,1003,524,53,40,0,3,1
-304,82,1007,525,54,42,0,3,1
-305,82,1012,527,55,43,0,3,1
-306,82,1016,530,55,43,0,3,1
-307,82,1020,531,55,42,0,3,1
-308,82,1024,532,55,42,0,3,1
-309,82,1028,533,56,42,0,3,1
-310,82,1032,534,56,42,0,3,1
-311,82,1036,535,57,42,0,3,1
-312,82,1040,536,57,42,0,3,1
-313,82,1045,538,57,41,0,3,1
-314,82,1049,536,57,43,0,3,1
-315,82,1054,535,57,45,0,3,1
-316,82,1057,535,58,45,0,3,1
-317,82,1060,536,59,45,0,3,1
-318,82,1063,537,60,45,0,3,1
-319,82,1067,538,60,45,0,3,1
-320,82,1071,537,60,45,0,3,1
-321,82,1074,537,60,45,0,3,1
-322,82,1077,537,61,45,0,3,1
-323,82,1081,537,61,45,0,3,1
-324,82,1084,537,62,45,0,3,1
-325,82,1088,537,62,45,0,3,1
-326,82,1090,536,62,46,0,3,1
-327,82,1092,536,62,46,0,3,1
-328,82,1094,536,63,47,0,3,1
-329,82,1097,532,62,48,0,3,1
-330,82,1097,532,65,47,0,3,1
-331,82,1099,529,64,48,0,3,1
-332,82,1101,526,64,49,0,3,1
-333,82,1103,524,64,49,0,3,1
-334,82,1105,521,64,50,0,3,1
-335,82,1108,519,63,50,0,3,1
-336,82,1109,517,64,51,0,3,1
-337,82,1111,519,64,51,0,3,1
-338,82,1113,521,65,51,0,3,1
-339,82,1113,520,67,51,0,3,1
-340,82,1113,519,69,52,0,3,1
-341,82,1114,521,69,53,0,3,1
-342,82,1115,524,69,54,0,3,1
-343,82,1119,528,70,54,0,3,1
-344,82,1117,529,69,55,0,3,1
-345,82,1118,536,73,54,0,3,1
-346,82,1120,540,73,53,0,3,1
-347,82,1122,543,73,53,0,3,1
-348,82,1123,545,73,54,0,3,1
-349,82,1124,548,74,54,0,3,1
-350,82,1126,551,74,54,0,3,1
-351,82,1126,550,75,55,0,3,1
-352,82,1127,550,75,55,0,3,1
-353,82,1128,550,75,56,0,3,1
-354,82,1128,552,75,56,0,3,1
-355,82,1129,555,75,56,0,3,1
-356,82,1129,555,77,58,0,3,1
-357,82,1129,555,78,59,0,3,1
-358,82,1130,555,79,60,0,3,1
-359,82,1130,557,80,60,0,3,1
-360,82,1130,559,81,61,0,3,1
-361,82,1131,561,81,62,0,3,1
-362,82,1131,563,83,62,0,3,1
-363,82,1132,565,83,63,0,3,1
-364,82,1132,567,84,64,0,3,1
-365,82,1133,569,85,65,0,3,1
-366,82,1133,571,86,66,0,3,1
-367,82,1134,574,87,67,0,3,1
-368,82,1134,577,88,68,0,3,1
-369,82,1134,579,89,67,0,3,1
-370,82,1135,582,90,66,0,3,1
-371,82,1135,582,90,67,0,3,1
-372,82,1136,582,90,68,0,3,1
-373,82,1136,583,91,69,0,3,1
-374,82,1137,583,91,70,0,3,1
-375,82,602,169,127,0,3,1
-441,82,359,604,171,128,0,3,1
-442,82,334,605,171,128,0,3,1
-443,82,309,606,172,129,0,3,0.99546
-444,82,280,608,176,130,0,3,0.97757
-445,82,252,610,180,132,0,3,0.96037
-446,82,225,611,178,133,0,3,0.95139
-447,82,196,613,181,134,0,3,0.9396
-448,82,167,614,183,133,0,3,0.91896
-449,82,136,615,183,134,0,3,0.90531
-450,82,106,616,183,136,0,3,0.88765
-451,82,75,617,184,138,0,3,0.87221
-452,82,43,618,186,141,0,3,0.86292
-453,82,10,618,193,149,0,3,0.84873
-454,82,-17,620,185,144,0,3,0.7564
-455,82,-45,624,180,147,0,3,0.58948
-456,82,-79,629,180,147,0,3,0.39779
-515,83,1860,522,89,74,0,3,0.47556
-516,83,1835,521,88,72,0,3,0.80422
-517,83,1810,521,88,70,0,3,0.86422
-518,83,1786,520,86,70,0,3,0.89639
-519,83,1762,519,85,70,0,3,0.93957
-520,83,1738,518,83,70,0,3,0.98625
-521,83,1714,517,82,70,0,3,1
-522,83,1690,516,88,70,0,3,1
-523,83,1667,515,87,71,0,3,1
-524,83,1644,515,86,71,0,3,1
-525,83,1621,515,85,72,0,3,1
-526,83,1599,515,87,72,0,3,1
-527,83,1578,516,89,71,0,3,1
-528,83,1555,517,89,72,0,3,1
-529,83,1535,517,89,71,0,3,1
-530,83,1515,517,90,71,0,3,1
-531,83,1493,516,90,74,0,3,1
-532,83,1474,516,91,74,0,3,1
-533,83,1456,517,91,74,0,3,1
-534,83,1438,518,91,74,0,3,1
-535,83,1420,519,92,74,0,3,1
-536,83,1403,518,93,74,0,3,1
-537,83,1387,517,93,74,0,3,1
-538,83,1371,525,94,74,0,3,1
-539,83,1354,524,93,75,0,3,1
-540,83,1337,525,94,75,0,3,1
-541,83,1320,526,96,75,0,3,1
-542,83,1304,530,98,76,0,3,1
-543,83,1288,530,99,77,0,3,1
-544,83,1273,531,100,78,0,3,1
-545,83,1259,528,102,79,0,3,1
-546,83,1246,527,102,80,0,3,0.99269
-547,83,1230,526,103,79,0,3,0.98558
-548,83,1216,524,103,79,0,3,0.97163
-549,83,1203,522,103,79,0,3,0.96454
-550,83,1190,521,106,80,0,3,0.94369
-551,83,1177,521,110,80,0,3,0.88277
-552,83,1166,521,110,80,0,3,1
-553,83,1155,521,111,81,0,3,1
-554,83,1144,521,112,81,0,3,1
-555,83,1133,521,113,82,0,3,1
-556,83,1122,518,113,83,0,3,1
-557,83,1112,515,112,85,0,3,1
-558,83,1102,514,115,85,0,3,1
-559,83,1093,514,117,85,0,3,1
-560,83,1084,514,119,85,0,3,1
-561,83,1073,515,121,83,0,3,1
-562,83,1063,516,122,85,0,3,1
-563,83,1055,515,123,86,0,3,1
-564,83,1047,514,125,88,0,3,1
-565,83,1040,513,126,90,0,3,1
-566,83,1030,514,129,91,0,3,1
-567,83,1023,516,130,91,0,3,1
-568,83,1017,518,131,91,0,3,1
-569,83,1009,518,133,91,0,3,1
-570,83,1002,518,134,92,0,3,1
-571,83,995,519,135,91,0,3,1
-572,83,988,519,136,92,0,3,1
-573,83,981,520,138,92,0,3,1
-574,83,976,520,139,92,0,3,1
-575,83,971,520,141,93,0,3,1
-576,83,965,522,142,93,0,3,1
-577,83,960,524,143,93,0,3,1
-578,83,955,523,144,94,0,3,1
-579,83,951,523,145,94,0,3,1
-580,83,947,523,146,94,0,3,1
-581,83,943,523,148,95,0,3,1
-582,83,940,523,149,96,0,3,1
-583,83,937,523,150,98,0,3,1
-584,83,934,523,151,99,0,3,1
-585,83,931,523,153,101,0,3,1
-586,83,930,524,154,103,0,3,1
-587,83,929,523,155,104,0,3,1
-588,83,927,522,156,106,0,3,1
-589,83,925,522,158,108,0,3,1
-590,83,925,523,160,110,0,3,1
-591,83,923,522,162,112,0,3,1
-592,83,924,521,162,114,0,3,1
-593,83,925,521,163,115,0,3,1
-594,83,926,521,164,116,0,3,1
-595,83,927,521,165,118,0,3,1
-596,83,929,523,166,116,0,3,1
-597,83,931,525,168,115,0,3,1
-598,83,934,527,169,114,0,3,1
-599,83,937,526,171,116,0,3,1
-600,83,940,526,173,117,0,3,1
-601,83,943,526,175,118,0,3,1
-602,83,946,526,177,119,0,3,1
-603,83,949,526,179,121,0,3,1
-604,83,952,531,180,121,0,3,1
-605,83,956,529,182,123,0,3,1
-606,83,960,529,184,124,0,3,1
-607,83,964,530,187,124,0,3,1
-608,83,968,531,189,124,0,3,1
-609,83,972,532,192,124,0,3,1
-610,83,976,532,194,127,0,3,1
-611,83,980,533,196,130,0,3,1
-612,83,984,534,199,132,0,3,1
-613,83,988,534,201,136,0,3,1
-614,83,992,535,203,138,0,3,1
-615,83,997,536,205,141,0,3,1
-616,83,1001,539,209,142,0,3,1
-617,83,1006,542,213,144,0,3,1
-618,83,1007,544,214,146,0,3,1
-619,83,1013,544,218,147,0,3,1
-620,83,1018,546,220,149,0,3,1
-621,83,1023,548,223,151,0,3,1
-622,83,1029,550,225,153,0,3,1
-623,83,1034,552,227,155,0,3,1
-624,83,1039,554,230,157,0,3,1
-625,83,1045,556,232,159,0,3,1
-626,83,1052,555,237,162,0,3,1
-627,83,1060,555,241,165,0,3,1
-628,83,1066,556,246,168,0,3,1
-629,83,1073,554,249,171,0,3,1
-630,83,1082,555,254,171,0,3,1
-631,83,1091,556,259,171,0,3,1
-632,83,1099,558,264,174,0,3,1
-633,83,1108,560,268,178,0,3,1
-634,83,1117,562,273,182,0,3,1
-635,83,1131,561,275,184,0,3,1
-636,83,1139,567,281,189,0,3,1
-637,83,1151,571,282,191,0,3,1
-638,83,1161,574,289,195,0,3,1
-639,83,1171,577,297,199,0,3,1
-640,83,1182,581,304,203,0,3,1
-641,83,1195,584,309,207,0,3,1
-642,83,1208,587,315,212,0,3,1
-643,83,1221,590,321,217,0,3,1
-644,83,1234,593,327,222,0,3,1
-645,83,1247,597,333,226,0,3,1
-646,83,1259,600,344,230,0,3,1
-647,83,1272,604,354,234,0,3,1
-648,83,1286,606,363,241,0,3,1
-649,83,1303,606,370,241,0,3,1
-650,83,1318,612,381,251,0,3,1
-651,83,1335,611,390,253,0,3,1
-652,83,1353,609,398,260,0,3,1
-653,83,1371,605,411,265,0,3,1
-654,83,1389,601,425,270,0,3,1
-655,83,1410,608,438,279,0,3,1
-656,83,1430,606,450,284,0,3,1
-657,83,1457,614,460,291,0,3,1
-658,83,1476,623,464,301,0,3,0.95699
-659,83,1496,633,467,311,0,3,0.90812
-660,83,1516,643,471,321,0,3,0.85805
-661,83,1538,653,474,326,0,3,0.80632
-662,83,1560,663,477,332,0,3,0.75523
-663,83,1582,673,480,338,0,3,0.70478
-664,83,1604,684,483,343,0,3,0.65496
-665,83,1627,693,490,354,0,3,0.59878
-666,83,1652,702,492,344,0,3,0.54564
-667,83,1675,706,492,341,0,3,0.49899
-668,83,1702,708,493,342,0,3,0.44332
-669,83,1729,711,495,342,0,3,0.3871
-670,83,1758,713,495,342,0,3,0.32863
-671,83,1788,716,494,342,0,3,0.26869
-672,83,1819,718,492,345,0,3,0.2069
-673,83,1850,720,490,348,0,3,0.1446
-674,83,1882,723,488,350,0,3,0.079755
-520,84,1896,552,95,53,0,3,0.26042
-521,84,1869,544,92,61,0,3,0.52584
-522,84,1844,543,93,61,0,3,0.64962
-523,84,1819,543,95,60,0,3,0.75666
-524,84,1794,543,97,59,0,3,0.73367
-525,84,1769,543,99,59,0,3,0.72467
-526,84,1745,543,100,58,0,3,0.71807
-527,84,1721,543,101,57,0,3,0.71129
-528,84,1698,543,101,56,0,3,0.70623
-529,84,1674,543,102,55,0,3,0.73856
-530,84,1651,543,102,54,0,3,0.78076
-531,84,1628,542,103,58,0,3,0.78814
-532,84,1609,544,101,59,0,3,0.78758
-533,84,1586,545,102,60,0,3,0.79803
-534,84,1567,547,101,60,0,3,0.80039
-535,84,1548,545,101,61,0,3,0.83001
-536,84,1528,541,100,61,0,3,0.87863
-537,84,1508,538,100,60,0,3,0.85587
-538,84,1489,548,99,61,0,3,0.87226
-539,84,1470,546,99,61,0,3,0.88129
-540,84,1450,550,101,61,0,3,0.88488
-541,84,1435,546,100,61,0,3,0.90945
-542,84,1416,554,100,61,0,3,0.91185
-543,84,1398,553,100,61,0,3,0.92973
-544,84,1381,553,100,61,0,3,0.94027
-545,84,1364,550,100,61,0,3,0.9564
-546,84,1348,547,99,61,0,3,0.96935
-547,84,1332,546,100,60,0,3,0.97663
-548,84,1316,545,102,60,0,3,0.97995
-549,84,1302,543,99,60,0,3,0.9941
-550,84,1289,541,95,60,0,3,0.91667
-551,84,1271,540,100,61,0,3,0.83168
-552,84,1256,539,100,61,0,3,0.79208
-553,84,1242,539,100,61,0,3,0.75248
-554,84,1228,539,100,61,0,3,0.71287
-555,84,1214,536,100,61,0,3,0.67327
-556,84,1201,534,100,61,0,3,0.65347
-557,84,1189,533,100,61,0,3,0.64356
-558,84,1177,532,100,61,0,3,0.59406
-559,84,1165,530,100,61,0,3,0.54455
-560,84,1153,529,100,61,0,3,0.49505
-561,84,1141,528,100,61,0,3,0.46535
-562,84,1129,528,100,61,0,3,0.43564
-563,84,1118,529,100,61,0,3,0.39604
-564,84,1107,530,100,61,0,3,0.34653
-565,84,1097,532,99,61,0,3,0.3
-566,84,1086,532,100,61,0,3,0.26733
-567,84,1076,532,100,61,0,3,0.22772
-568,84,1066,533,100,61,0,3,0.17822
-569,84,1056,533,100,61,0,3,0.13861
-570,84,1046,534,100,61,0,3,0.09901
-571,84,1039,533,100,61,0,3,0.089109
-572,84,1029,535,100,61,0,3,0.049505
-573,84,1020,537,100,61,0,3,0.009901
-574,84,1009,536,100,61,0,3,0
-1,85,909,478,41,44,0,3,1
-2,85,911,472,41,42,0,3,1
-3,85,912,480,41,41,0,3,1
-4,85,914,476,40,42,0,3,1
-5,85,916,476,40,43,0,3,1
-6,85,916,488,40,44,0,3,1
-7,85,917,478,40,45,0,3,1
-8,85,918,486,41,45,0,3,1
-9,85,919,486,40,45,0,3,1
-10,85,920,487,40,45,0,3,1
-11,85,916,485,41,44,0,3,1
-12,85,917,488,41,44,0,3,1
-13,85,920,478,40,43,0,3,1
-14,85,918,482,40,42,0,3,0.98639
-15,85,919,481,40,42,0,3,0.97277
-16,85,920,480,41,42,0,3,0.97674
-17,85,920,482,41,43,0,3,0.90909
-18,85,920,481,41,43,0,3,0.95455
-19,85,921,480,41,43,0,3,0.97727
-20,85,920,481,41,43,0,3,0.95455
-21,85,922,480,41,44,0,3,0.97778
-22,85,921,481,41,43,0,3,1
-23,85,921,482,40,42,0,3,1
-24,85,922,485,41,42,0,3,1
-25,85,922,487,41,42,0,3,1
-26,85,922,489,42,42,0,3,1
-27,85,922,490,42,43,0,3,1
-28,85,922,492,43,43,0,3,1
-29,85,922,494,42,43,0,3,1
-30,85,923,497,41,43,0,3,1
-31,85,922,503,42,49,0,3,1
-32,85,922,496,42,48,0,3,1
-33,85,922,489,42,48,0,3,1
-34,85,921,494,43,49,0,3,1
-35,85,924,485,43,47,0,3,1
-36,85,924,484,43,45,0,3,1
-37,85,925,483,43,44,0,3,1
-38,85,924,480,43,44,0,3,1
-39,85,925,479,42,44,0,3,1
-40,85,926,478,42,44,0,3,1
-41,85,927,478,42,43,0,3,1
-42,85,927,478,42,44,0,3,1
-43,85,927,478,42,45,0,3,1
-44,85,927,479,42,45,0,3,1
-45,85,927,479,42,46,0,3,1
-46,85,927,480,43,47,0,3,1
-47,85,927,480,43,48,0,3,1
-48,85,927,481,43,48,0,3,1
-49,85,927,481,43,49,0,3,1
-50,85,927,482,44,50,0,3,1
-51,85,927,484,44,49,0,3,1
-52,85,927,483,43,50,0,3,1
-53,85,927,483,43,50,0,3,1
-54,85,927,483,43,50,0,3,1
-55,85,927,483,43,50,0,3,1
-56,85,927,483,43,50,0,3,1
-57,85,926,481,43,50,0,3,1
-58,85,926,479,43,51,0,3,1
-59,85,926,478,43,51,0,3,1
-60,85,926,477,43,51,0,3,1
-61,85,926,477,43,50,0,3,1
-62,85,926,474,44,50,0,3,1
-63,85,925,475,44,50,0,3,1
-64,85,925,476,43,50,0,3,1
-65,85,924,477,43,50,0,3,1
-66,85,924,478,43,50,0,3,1
-67,85,922,478,43,50,0,3,1
-68,85,920,478,44,50,0,3,1
-69,85,919,478,43,50,0,3,1
-70,85,917,478,44,50,0,3,1
-71,85,916,478,44,50,0,3,1
-72,85,913,477,44,50,0,3,1
-73,85,911,477,44,50,0,3,1
-74,85,909,476,44,50,0,3,1
-75,85,907,476,44,50,0,3,1
-76,85,905,475,44,50,0,3,1
-77,85,902,475,44,50,0,3,1
-78,85,900,474,44,50,0,3,1
-79,85,898,474,44,50,0,3,1
-80,85,896,473,44,50,0,3,1
-81,85,894,473,44,50,0,3,1
-82,85,891,473,43,50,0,3,1
-83,85,888,474,43,50,0,3,1
-84,85,885,475,43,50,0,3,1
-85,85,882,475,43,51,0,3,1
-86,85,879,476,43,51,0,3,1
-87,85,876,477,43,51,0,3,1
-88,85,873,477,43,52,0,3,1
-89,85,870,478,43,52,0,3,1
-90,85,867,479,43,52,0,3,1
-91,85,864,480,43,52,0,3,1
-92,85,860,480,43,52,0,3,1
-93,85,856,481,43,52,0,3,1
-94,85,852,482,44,52,0,3,1
-95,85,849,483,43,52,0,3,1
-96,85,845,484,44,52,0,3,1
-97,85,841,485,44,51,0,3,1
-98,85,838,486,43,51,0,3,1
-99,85,834,487,44,51,0,3,1
-100,85,830,488,44,51,0,3,1
-101,85,827,489,44,51,0,3,1
-102,85,823,488,45,51,0,3,1
-103,85,819,488,46,51,0,3,1
-104,85,816,487,46,52,0,3,1
-105,85,812,487,47,51,0,3,1
-106,85,808,486,48,52,0,3,1
-107,85,805,486,48,52,0,3,1
-108,85,801,485,47,52,0,3,1
-109,85,798,485,46,52,0,3,1
-110,85,794,485,45,51,0,3,1
-111,85,791,485,44,51,0,3,1
-112,85,786,485,44,51,0,3,1
-113,85,781,485,45,51,0,3,1
-114,85,776,485,46,51,0,3,1
-115,85,771,485,47,51,0,3,1
-116,85,767,485,47,51,0,3,1
-117,85,762,485,47,51,0,3,1
-118,85,757,485,48,51,0,3,1
-119,85,752,485,49,51,0,3,1
-120,85,747,485,50,51,0,3,1
-121,85,743,486,50,51,0,3,1
-122,85,739,486,50,51,0,3,1
-123,85,735,486,50,51,0,3,1
-124,85,731,486,50,51,0,3,1
-125,85,727,487,50,51,0,3,1
-126,85,723,487,50,51,0,3,1
-127,85,719,487,50,51,0,3,1
-128,85,715,488,50,51,0,3,1
-129,85,711,488,50,51,0,3,1
-130,85,707,488,50,51,0,3,1
-131,85,703,489,51,51,0,3,0.98891
-132,85,698,488,51,52,0,3,0.98875
-133,85,694,488,51,52,0,3,0.9775
-134,85,690,488,51,53,0,3,0.97792
-135,85,686,487,51,54,0,3,0.96853
-136,85,682,487,51,55,0,3,0.95604
-137,85,678,487,50,55,0,3,0.95518
-138,85,674,486,50,56,0,3,0.94496
-139,85,670,486,50,57,0,3,0.93306
-140,85,666,486,50,57,0,3,1
-141,85,662,486,50,58,0,3,1
-142,85,658,486,50,58,0,3,1
-143,85,654,486,50,58,0,3,1
-144,85,650,486,50,58,0,3,1
-145,85,646,486,50,59,0,3,1
-146,85,642,487,50,58,0,3,1
-147,85,638,487,50,58,0,3,1
-148,85,634,487,50,59,0,3,1
-149,85,630,487,50,59,0,3,1
-150,85,626,487,50,59,0,3,1
-151,85,623,488,50,59,0,3,1
-152,85,618,488,50,59,0,3,1
-153,85,613,488,50,59,0,3,1
-154,85,608,488,51,59,0,3,1
-155,85,603,489,51,59,0,3,1
-156,85,599,489,51,59,0,3,1
-157,85,594,489,51,59,0,3,1
-158,85,589,490,51,59,0,3,1
-159,85,584,490,52,59,0,3,1
-160,85,579,490,52,59,0,3,1
-161,85,575,491,52,59,0,3,1
-162,85,570,492,52,59,0,3,1
-163,85,566,493,52,59,0,3,1
-164,85,562,494,52,59,0,3,1
-165,85,558,495,52,59,0,3,1
-166,85,554,494,52,59,0,3,1
-167,85,550,494,53,58,0,3,0.84181
-168,85,547,493,53,59,0,3,0.85556
-169,85,543,493,54,58,0,3,0.85978
-170,85,539,492,55,58,0,3,0.86229
-171,85,536,492,55,58,0,3,0.86229
-172,85,533,492,55,58,0,3,0.85835
-173,85,531,492,55,58,0,3,0.85835
-174,85,528,492,55,58,0,3,1
-175,85,526,492,55,58,0,3,1
-176,85,523,492,55,58,0,3,1
-177,85,521,492,55,58,0,3,1
-178,85,518,492,55,58,0,3,1
-179,85,516,492,55,58,0,3,1
-180,85,513,492,55,58,0,3,1
-181,85,511,493,55,58,0,3,1
-182,85,507,493,56,58,0,3,0.86798
-183,85,504,494,56,58,0,3,0.87898
-184,85,501,495,56,57,0,3,0.88022
-185,85,498,496,56,57,0,3,0.89111
-186,85,495,497,56,56,0,3,0.90305
-187,85,492,497,56,57,0,3,0.90472
-188,85,489,498,56,56,0,3,0.92675
-189,85,486,499,56,56,0,3,0.94768
-190,85,483,500,56,55,0,3,0.94674
-191,85,480,501,56,55,0,3,0.93421
-192,85,477,501,57,55,0,3,0.94612
-193,85,475,501,57,56,0,3,0.96824
-194,85,473,501,57,57,0,3,0.9893
-195,85,471,501,57,57,0,3,1
-196,85,469,502,57,57,0,3,1
-197,85,466,502,58,58,0,3,1
-198,85,464,502,58,58,0,3,1
-199,85,462,502,58,59,0,3,1
-200,85,460,502,58,60,0,3,1
-201,85,458,503,59,60,0,3,1
-202,85,456,503,59,61,0,3,1
-203,85,455,504,59,61,0,3,1
-204,85,453,505,59,61,0,3,1
-205,85,452,506,59,61,0,3,1
-206,85,451,507,59,61,0,3,1
-207,85,449,508,59,61,0,3,1
-208,85,448,509,59,61,0,3,1
-209,85,446,510,59,61,0,3,1
-210,85,445,511,59,61,0,3,1
-211,85,444,512,59,61,0,3,1
-212,85,443,512,59,61,0,3,1
-213,85,442,512,59,61,0,3,1
-214,85,441,512,59,61,0,3,1
-215,85,440,513,59,61,0,3,1
-216,85,439,513,59,61,0,3,1
-217,85,439,513,59,61,0,3,1
-218,85,439,513,59,61,0,3,1
-219,85,439,513,59,61,0,3,1
-220,85,439,513,59,61,0,3,1
-221,85,439,514,59,60,0,3,1
-222,85,439,514,59,60,0,3,1
-223,85,439,514,59,60,0,3,1
-224,85,439,514,59,60,0,3,1
-225,85,439,514,59,61,0,3,1
-226,85,439,515,59,60,0,3,1
-227,85,439,515,59,60,0,3,1
-228,85,439,515,59,61,0,3,1
-229,85,439,515,59,61,0,3,1
-230,85,439,515,59,61,0,3,1
-231,85,439,516,59,61,0,3,1
-232,85,439,515,59,61,0,3,1
-233,85,440,514,59,61,0,3,1
-234,85,441,513,58,61,0,3,1
-235,85,442,513,58,60,0,3,1
-236,85,443,511,59,63,0,3,1
-237,85,444,510,60,65,0,3,1
-238,85,446,509,60,68,0,3,1
-239,85,447,509,60,66,0,3,1
-240,85,449,510,59,63,0,3,1
-241,85,451,511,59,61,0,3,1
-242,85,453,510,59,61,0,3,1
-243,85,455,510,60,61,0,3,1
-244,85,458,510,60,60,0,3,1
-245,85,460,510,61,60,0,3,1
-246,85,463,510,61,60,0,3,1
-247,85,465,509,62,60,0,3,1
-248,85,468,509,62,60,0,3,1
-249,85,470,509,63,60,0,3,1
-250,85,473,509,63,60,0,3,1
-251,85,476,509,64,60,0,3,1
-252,85,480,513,64,59,0,3,1
-253,85,484,512,64,60,0,3,1
-254,85,489,512,63,60,0,3,1
-255,85,493,511,63,62,0,3,0.99107
-256,85,498,511,62,62,0,3,0.99118
-257,85,503,511,62,63,0,3,0.99157
-258,85,505,514,62,61,0,3,0.97619
-259,85,510,513,62,61,0,3,0.97696
-260,85,515,512,62,61,0,3,0.97773
-261,85,521,512,62,61,0,3,0.9703
-262,85,523,514,63,61,0,3,0.95413
-263,85,528,514,63,61,0,3,0.9496
-264,85,533,514,63,61,0,3,0.94556
-265,85,538,514,63,61,0,3,0.94204
-266,85,543,514,63,62,0,3,0.93725
-267,85,548,514,63,62,0,3,0.93452
-268,85,553,514,63,62,0,3,0.93229
-269,85,558,515,63,62,0,3,0.9256
-270,85,562,512,63,61,0,3,0.94556
-271,85,567,509,62,61,0,3,0.95904
-272,85,571,508,62,61,0,3,0.96416
-273,85,576,508,62,61,0,3,0.96339
-274,85,581,507,62,61,0,3,0.96928
-275,85,586,507,61,61,0,3,0.97138
-276,85,591,506,61,62,0,3,0.97235
-277,85,595,506,62,61,0,3,0.98029
-278,85,600,505,61,62,0,3,0.98592
-279,85,605,505,61,61,0,3,0.98959
-280,85,610,504,61,62,0,3,0.99155
-281,85,615,504,61,62,0,3,0.99437
-282,85,619,504,61,62,0,3,1
-283,85,624,504,61,63,0,3,1
-284,85,628,504,62,64,0,3,1
-285,85,633,504,62,64,0,3,1
-286,85,637,505,63,64,0,3,1
-287,85,642,505,62,65,0,3,1
-288,85,646,505,63,65,0,3,1
-289,85,651,505,63,66,0,3,1
-290,85,655,505,64,67,0,3,1
-291,85,660,506,64,67,0,3,1
-292,85,664,506,64,67,0,3,1
-293,85,668,506,64,67,0,3,1
-294,85,672,506,64,67,0,3,1
-295,85,676,506,64,68,0,3,1
-296,85,681,507,64,67,0,3,1
-297,85,685,507,64,67,0,3,1
-298,85,689,507,64,68,0,3,1
-299,85,693,507,64,68,0,3,1
-300,85,697,507,64,68,0,3,1
-301,85,702,508,64,68,0,3,1
-302,85,705,509,64,68,0,3,1
-303,85,708,510,65,68,0,3,1
-304,85,711,511,66,68,0,3,1
-305,85,715,512,65,68,0,3,1
-306,85,718,513,66,68,0,3,1
-307,85,721,514,67,68,0,3,1
-308,85,725,515,66,68,0,3,1
-309,85,728,516,67,68,0,3,1
-310,85,731,517,68,68,0,3,1
-311,85,735,518,68,69,0,3,1
-312,85,738,517,67,69,0,3,1
-313,85,741,517,67,69,0,3,1
-314,85,744,517,67,68,0,3,1
-315,85,747,517,66,68,0,3,1
-316,85,750,517,66,68,0,3,1
-317,85,753,516,66,68,0,3,1
-318,85,756,516,65,68,0,3,1
-319,85,759,516,65,67,0,3,1
-320,85,762,516,65,67,0,3,1
-321,85,765,516,65,67,0,3,1
-322,85,766,515,65,67,0,3,1
-323,85,767,514,66,67,0,3,1
-324,85,768,513,67,67,0,3,1
-325,85,769,512,68,68,0,3,1
-326,85,771,511,68,68,0,3,1
-327,85,772,510,69,68,0,3,1
-328,85,773,509,70,69,0,3,1
-329,85,774,508,71,69,0,3,1
-330,85,775,507,72,69,0,3,1
-331,85,777,506,72,70,0,3,1
-332,85,777,504,72,70,0,3,1
-333,85,778,502,72,71,0,3,1
-334,85,779,501,72,71,0,3,1
-335,85,779,499,73,71,0,3,1
-336,85,780,497,73,71,0,3,1
-337,85,780,497,73,71,0,3,1
-338,85,780,497,74,71,0,3,1
-339,85,780,497,74,71,0,3,1
-340,85,781,498,74,71,0,3,1
-341,85,782,501,74,72,0,3,1
-342,85,781,503,73,72,0,3,1
-343,85,780,506,73,71,0,3,1
-344,85,779,508,73,71,0,3,1
-345,85,779,511,72,71,0,3,1
-346,85,779,515,72,71,0,3,1
-347,85,779,516,71,73,0,3,1
-348,85,778,516,72,73,0,3,1
-349,85,778,517,72,72,0,3,1
-350,85,778,517,72,72,0,3,1
-351,85,778,518,73,71,0,3,1
-352,85,777,518,74,72,0,3,1
-353,85,777,519,74,72,0,3,1
-354,85,777,520,74,72,0,3,1
-355,85,776,521,75,72,0,3,1
-356,85,776,522,75,72,0,3,1
-357,85,776,523,75,73,0,3,1
-358,85,775,523,74,74,0,3,1
-359,85,774,523,74,76,0,3,1
-360,85,773,523,73,77,0,3,1
-361,85,772,523,73,79,0,3,1
-362,85,771,525,73,79,0,3,1
-363,85,771,527,72,79,0,3,1
-364,85,770,529,72,79,0,3,1
-365,85,770,531,72,79,0,3,1
-366,85,769,533,72,79,0,3,1
-367,85,769,535,71,79,0,3,1
-368,85,768,537,72,79,0,3,1
-369,85,768,539,71,79,0,3,1
-370,85,767,541,71,79,0,3,1
-371,85,767,544,71,78,0,3,1
-372,85,764,543,72,74,0,3,1
-373,85,760,541,76,82,0,3,1
-374,85,759,541,76,82,0,3,1
-375,85,758,542,76,81,0,3,1
-376,85,757,543,76,80,0,3,1
-377,85,756,544,76,80,0,3,1
-378,85,752,542,77,79,0,3,1
-379,85,749,540,77,78,0,3,1
-380,85,745,538,78,77,0,3,1
-381,85,742,536,78,77,0,3,1
-382,85,737,533,79,78,0,3,1
-383,85,732,531,80,79,0,3,1
-384,85,727,529,81,80,0,3,1
-385,85,722,527,82,81,0,3,1
-386,85,717,526,82,79,0,3,1
-387,85,713,525,81,78,0,3,1
-388,85,709,524,80,76,0,3,1
-389,85,705,523,79,75,0,3,1
-390,85,701,522,79,74,0,3,1
-391,85,697,520,77,75,0,3,1
-392,85,689,521,79,81,0,3,1
-393,85,682,521,80,80,0,3,1
-394,85,674,520,80,80,0,3,1
-395,85,666,519,80,80,0,3,1
-396,85,658,518,80,80,0,3,1
-397,85,652,518,80,79,0,3,1
-398,85,643,516,80,80,0,3,1
-399,85,634,515,81,80,0,3,1
-400,85,625,514,81,80,0,3,1
-401,85,616,513,82,80,0,3,1
-402,85,605,512,82,81,0,3,1
-403,85,594,512,83,81,0,3,1
-404,85,584,512,83,82,0,3,1
-405,85,572,512,83,82,0,3,1
-406,85,561,512,83,83,0,3,1
-407,85,549,512,83,82,0,3,1
-408,85,539,511,83,83,0,3,1
-409,85,526,510,83,84,0,3,1
-410,85,513,509,84,85,0,3,1
-411,85,500,508,85,86,0,3,1
-412,85,485,508,85,86,0,3,1
-413,85,471,508,85,87,0,3,1
-414,85,456,508,85,87,0,3,1
-415,85,442,508,85,88,0,3,1
-416,85,425,506,86,89,0,3,1
-417,85,409,505,87,89,0,3,1
-418,85,393,504,88,89,0,3,1
-419,85,377,503,88,89,0,3,1
-420,85,361,502,89,89,0,3,1
-421,85,345,501,90,89,0,3,1
-422,85,325,501,91,87,0,3,1
-423,85,306,502,91,84,0,3,1
-424,85,288,500,92,84,0,3,1
-425,85,267,498,93,85,0,3,1
-426,85,245,498,94,86,0,3,1
-427,85,224,499,95,87,0,3,1
-428,85,202,500,97,87,0,3,1
-429,85,181,501,98,88,0,3,1
-430,85,159,502,99,90,0,3,1
-431,85,138,503,99,93,0,3,1
-432,85,114,503,99,92,0,3,1
-433,85,93,502,99,92,0,3,1
-434,85,68,505,99,92,0,3,1
-435,85,48,507,100,92,0,3,1
-436,85,22,507,100,92,0,3,1
-437,85,-2,507,99,92,0,3,0.97
-438,85,-20,507,100,92,0,3,0.79208
-439,85,-47,507,100,92,0,3,0.52475
-522,86,1552,504,49,42,0,3,0.93907
-523,86,1530,503,49,42,0,3,0.93163
-524,86,1508,503,49,42,0,3,0.90698
-525,86,1486,502,49,42,0,3,0.95349
-526,86,1464,502,49,42,0,3,0.93023
-527,86,1442,501,49,42,0,3,0.95349
-528,86,1420,501,49,42,0,3,0.93023
-529,86,1398,501,50,42,0,3,0.93023
-530,86,1377,503,50,41,0,3,0.92857
-531,86,1359,504,50,42,0,3,0.86047
-532,86,1341,506,50,43,0,3,0.79545
-533,86,1322,506,50,42,0,3,0.7907
-534,86,1305,505,50,42,0,3,0.81395
-535,86,1288,505,50,42,0,3,0.74419
-536,86,1271,505,51,42,0,3,0.76744
-537,86,1252,502,51,42,0,3,0.88596
-538,86,1234,507,50,42,0,3,0.8249
-539,86,1218,505,50,42,0,3,0.77428
-540,86,1200,507,50,40,0,3,0.83644
-541,86,1183,509,49,38,0,3,0.79692
-542,86,1168,511,49,43,0,3,0.79636
-543,86,1153,511,49,42,0,3,0.84279
-544,86,1138,511,49,41,0,3,0.88
-545,86,1120,510,51,42,0,3,0.8873
-546,86,1106,507,52,41,0,3,0.89937
-547,86,1091,506,53,41,0,3,0.92504
-548,86,1077,506,53,41,0,3,0.95767
-549,86,1063,506,54,41,0,3,0.99221
-550,86,1049,505,55,41,0,3,1
-551,86,1035,505,56,41,0,3,1
-552,86,1022,505,57,41,0,3,1
-553,86,1009,504,58,41,0,3,1
-554,86,997,503,59,41,0,3,1
-555,86,985,502,59,41,0,3,1
-556,86,973,501,60,41,0,3,1
-557,86,961,501,61,41,0,3,1
-558,86,950,500,61,41,0,3,1
-559,86,939,499,62,41,0,3,1
-560,86,928,498,62,41,0,3,1
-561,86,917,497,63,41,0,3,1
-562,86,906,496,64,42,0,3,1
-563,86,896,496,64,42,0,3,1
-564,86,886,496,65,42,0,3,1
-565,86,877,496,64,42,0,3,1
-566,86,867,496,65,42,0,3,1
-567,86,858,497,65,42,0,3,1
-568,86,850,499,65,42,0,3,1
-569,86,841,498,65,43,0,3,1
-570,86,832,498,65,44,0,3,1
-571,86,823,498,65,45,0,3,1
-572,86,817,496,65,47,0,3,1
-573,86,808,498,65,47,0,3,1
-574,86,800,499,66,47,0,3,1
-575,86,792,500,68,47,0,3,1
-576,86,785,502,69,46,0,3,1
-577,86,778,499,70,46,0,3,1
-578,86,770,499,70,45,0,3,1
-579,86,764,498,70,47,0,3,1
-580,86,758,498,71,48,0,3,1
-581,86,752,498,72,50,0,3,1
-582,86,748,497,72,49,0,3,1
-583,86,742,497,72,49,0,3,1
-584,86,736,498,73,49,0,3,1
-585,86,732,497,74,50,0,3,1
-586,86,729,497,74,50,0,3,1
-587,86,725,497,75,51,0,3,1
-588,86,722,497,76,51,0,3,1
-589,86,718,497,77,52,0,3,1
-590,86,715,497,77,52,0,3,1
-591,86,712,497,78,53,0,3,1
-592,86,708,499,80,54,0,3,1
-593,86,707,499,81,54,0,3,1
-594,86,706,499,82,55,0,3,1
-595,86,706,500,82,55,0,3,1
-596,86,705,498,85,54,0,3,1
-597,86,705,498,86,55,0,3,1
-598,86,706,499,86,56,0,3,1
-599,86,706,500,87,56,0,3,1
-600,86,707,501,87,57,0,3,1
-601,86,707,502,88,57,0,3,1
-602,86,708,503,89,58,0,3,1
-603,86,709,503,91,58,0,3,1
-604,86,711,503,92,58,0,3,1
-605,86,713,503,93,58,0,3,1
-606,86,715,503,95,59,0,3,1
-607,86,717,503,96,59,0,3,1
-608,86,718,503,98,59,0,3,1
-609,86,720,503,100,60,0,3,1
-610,86,722,503,101,60,0,3,1
-611,86,724,503,102,60,0,3,1
-612,86,726,503,104,61,0,3,1
-613,86,727,500,106,60,0,3,1
-614,86,728,501,107,60,0,3,1
-615,86,730,502,108,61,0,3,1
-616,86,732,503,109,62,0,3,1
-617,86,734,504,109,63,0,3,1
-618,86,736,505,110,63,0,3,1
-619,86,738,506,111,64,0,3,1
-620,86,740,507,111,65,0,3,1
-621,86,742,508,112,66,0,3,1
-622,86,744,510,113,66,0,3,1
-623,86,746,512,114,67,0,3,1
-624,86,749,514,115,68,0,3,1
-625,86,752,517,116,68,0,3,1
-626,86,757,512,117,70,0,3,1
-627,86,760,512,118,70,0,3,1
-628,86,763,513,119,70,0,3,1
-629,86,766,514,121,70,0,3,1
-630,86,774,515,120,70,0,3,1
-631,86,779,516,120,69,0,3,1
-632,86,784,517,121,69,0,3,1
-633,86,789,520,121,69,0,3,0.99368
-634,86,794,517,122,70,0,3,0.98282
-635,86,799,519,123,71,0,3,0.97581
-636,86,805,521,124,72,0,3,0.95781
-637,86,811,523,125,73,0,3,0.94595
-638,86,817,525,126,72,0,3,0.93593
-639,86,823,527,127,72,0,3,0.92487
-640,86,829,529,128,71,0,3,0.91441
-641,86,835,532,130,70,0,3,0.89937
-642,86,840,533,132,70,0,3,0.89537
-643,86,846,533,133,72,0,3,0.899
-644,86,853,534,133,74,0,3,0.89453
-645,86,863,537,132,74,0,3,0.87779
-646,86,869,538,131,75,0,3,0.86842
-647,86,875,540,130,75,0,3,0.87626
-648,86,883,542,130,74,0,3,0.87461
-649,86,891,541,130,74,0,3,0.86891
-650,86,899,540,130,75,0,3,0.86832
-651,86,907,539,131,76,0,3,0.86305
-652,86,915,531,129,78,0,3,0.87527
-653,86,924,532,129,78,0,3,0.87118
-654,86,933,531,129,77,0,3,0.8716
-655,86,942,531,130,77,0,3,0.86044
-656,86,955,534,129,77,0,3,0.83156
-657,86,965,540,129,77,0,3,0.83491
-658,86,975,546,129,78,0,3,0.83797
-659,86,985,553,129,78,0,3,0.84907
-660,86,992,554,130,79,0,3,0.84866
-661,86,1000,555,131,80,0,3,0.84287
-662,86,1008,557,132,81,0,3,0.84596
-663,86,1017,561,132,81,0,3,0.84898
-664,86,1026,562,133,81,0,3,0.84711
-665,86,1035,563,134,82,0,3,0.84212
-666,86,1045,565,134,82,0,3,0.834
-667,86,1054,564,135,83,0,3,0.83447
-668,86,1064,564,136,83,0,3,0.82795
-669,86,1073,563,137,84,0,3,0.82899
-670,86,1083,563,138,84,0,3,0.82818
-671,86,1093,561,137,86,0,3,0.82725
-672,86,1103,560,137,87,0,3,0.82642
-673,86,1112,558,137,86,0,3,0.83783
-674,86,1121,556,137,85,0,3,0.84589
-675,86,1131,557,138,86,0,3,0.83354
-676,86,1141,556,141,85,0,3,0.82607
-677,86,1150,558,142,87,0,3,0.85577
-678,86,1160,560,143,89,0,3,0.83472
-679,86,1169,567,143,91,0,3,0.8362
-680,86,1178,574,144,93,0,3,0.83566
-681,86,1188,582,144,94,0,3,0.8347
-682,86,1200,579,144,94,0,3,0.83797
-683,86,1204,572,146,94,0,3,0.84647
-684,86,1214,566,146,93,0,3,0.82776
-685,86,1222,558,148,94,0,3,0.83214
-686,86,1231,553,149,97,0,3,0.83163
-687,86,1241,552,150,97,0,3,0.83227
-688,86,1249,552,152,97,0,3,0.84154
-689,86,1258,552,154,97,0,3,0.84575
-690,86,1269,552,156,99,0,3,0.83949
-691,86,1281,553,157,100,0,3,0.83074
-692,86,1288,559,157,101,0,3,0.85232
-693,86,1298,561,161,101,0,3,0.84314
-694,86,1307,566,163,102,0,3,0.84869
-695,86,1316,572,165,103,0,3,0.85809
-696,86,1328,572,169,101,0,3,0.85006
-697,86,1337,577,171,103,0,3,0.84956
-698,86,1346,583,173,104,0,3,0.85025
-699,86,1355,589,175,105,0,3,0.86353
-700,86,1362,587,177,106,0,3,0.88055
-701,86,1372,592,179,108,0,3,0.87513
-702,86,1383,598,180,110,0,3,0.8676
-703,86,1391,603,182,109,0,3,0.8773
-704,86,1399,608,184,113,0,3,0.86155
-705,86,1407,612,187,115,0,3,0.85748
-706,86,1415,616,190,117,0,3,0.85691
-707,86,1423,614,191,118,0,3,0.86765
-708,86,1432,613,192,118,0,3,0.87682
-709,86,1440,609,194,121,0,3,0.88903
-710,86,1448,623,197,122,0,3,0.87189
-711,86,1455,608,198,125,0,3,0.88083
-712,86,1464,617,197,126,0,3,0.90098
-713,86,1474,605,201,126,0,3,0.88867
-714,86,1484,601,206,130,0,3,0.87949
-715,86,1487,606,209,134,0,3,0.88825
-716,86,1494,600,212,133,0,3,0.89573
-717,86,1501,601,215,133,0,3,0.89932
-718,86,1509,602,218,134,0,3,0.90039
-719,86,1520,613,221,133,0,3,0.89828
-720,86,1528,607,225,132,0,3,0.89404
-721,86,1536,609,229,134,0,3,0.89333
-722,86,1549,614,233,135,0,3,0.88436
-723,86,1556,618,236,137,0,3,0.89705
-724,86,1564,622,238,140,0,3,0.90819
-725,86,1572,622,241,143,0,3,0.91919
-726,86,1582,634,246,146,0,3,0.9101
-727,86,1590,630,250,146,0,3,0.92398
-728,86,1600,642,253,150,0,3,0.91912
-729,86,1609,643,257,152,0,3,0.91724
-730,86,1619,645,260,153,0,3,0.92118
-731,86,1625,649,264,154,0,3,0.92511
-732,86,1634,648,268,158,0,3,0.90847
-733,86,1645,651,269,157,0,3,0.82883
-734,86,1653,656,269,157,0,3,0.81149
-735,86,1662,654,269,158,0,3,0.76604
-736,86,1671,653,269,158,0,3,0.69783
-737,86,1680,652,270,158,0,3,0.60449
-738,86,1689,656,270,158,0,3,0.53262
-739,86,1699,661,269,157,0,3,0.46709
-740,86,1709,663,269,157,0,3,0.43371
-741,86,1719,665,269,158,0,3,0.45986
-742,86,1729,668,269,158,0,3,0.53629
-743,86,1735,671,269,160,0,3,0.68889
-744,86,1742,675,269,162,0,3,0.66296
-745,86,1749,677,269,165,0,3,0.63704
-746,86,1757,680,269,167,0,3,0.60741
-747,86,1767,678,269,170,0,3,0.57037
-748,86,1775,681,270,157,0,3,0.53875
-749,86,1784,683,270,157,0,3,0.50554
-750,86,1794,685,269,158,0,3,0.47037
-520,87,1475,500,42,29,0,3,1
-521,87,1450,499,42,29,0,3,1
-522,87,1425,499,42,28,0,3,1
-523,87,1403,498,42,28,0,3,1
-524,87,1381,497,42,28,0,3,1
-525,87,1359,496,42,29,0,3,1
-526,87,1337,496,42,28,0,3,1
-527,87,1315,495,42,28,0,3,1
-528,87,1293,494,42,29,0,3,1
-529,87,1271,493,42,29,0,3,1
-530,87,1249,493,42,29,0,3,1
-531,87,1229,494,41,29,0,3,1
-532,87,1209,496,41,29,0,3,1
-533,87,1190,495,41,28,0,3,1
-534,87,1169,495,42,28,0,3,1
-535,87,1149,495,41,28,0,3,1
-536,87,1136,494,37,27,0,3,1
-537,87,1117,490,37,30,0,3,1
-538,87,1101,496,37,28,0,3,1
-539,87,1082,494,38,28,0,3,1
-540,87,1066,495,42,29,0,3,1
-541,87,1049,496,41,29,0,3,1
-542,87,1032,498,41,28,0,3,1
-543,87,1017,497,41,29,0,3,1
-478,88,1892,780,105,153,0,10,0.27358
-479,88,1859,781,105,153,0,10,0.58491
-480,88,1823,782,113,154,0,10,0.85965
-481,88,1787,784,122,154,0,10,1
-482,88,1751,782,121,158,0,10,1
-483,88,1715,781,120,162,0,10,1
-484,88,1679,782,118,163,0,10,1
-485,88,1643,783,117,165,0,10,1
-486,88,1607,785,116,166,0,10,1
-487,88,1571,789,119,165,0,10,1
-488,88,1535,793,122,165,0,10,1
-489,88,1500,798,117,166,0,10,1
-490,88,1460,801,120,166,0,10,1
-491,88,1421,804,122,166,0,10,1
-492,88,1381,807,125,169,0,10,1
-493,88,1343,812,125,171,0,10,1
-494,88,1305,817,125,173,0,10,1
-495,88,1265,824,125,174,0,10,1
-496,88,1225,827,127,176,0,10,1
-497,88,1185,830,129,178,0,10,1
-498,88,1147,829,127,180,0,10,1
-499,88,1110,829,125,181,0,10,1
-500,88,1074,832,121,182,0,10,1
-501,88,1038,835,117,185,0,10,1
-502,88,995,833,118,190,0,10,1
-503,88,952,833,125,186,0,10,1
-504,88,915,836,122,186,0,10,1
-505,88,874,838,124,190,0,10,1
-506,88,829,844,126,191,0,10,1
-507,88,791,844,126,198,0,10,1
-508,88,750,856,124,199,0,10,1
-509,88,705,863,129,205,0,10,1
-510,88,660,872,133,205,0,10,1
-511,88,613,883,135,205,0,10,0.96117
-512,88,567,894,138,204,0,10,0.9122
-513,88,520,900,140,205,0,10,0.87864
-514,88,473,907,143,204,0,10,0.84878
-515,88,423,915,144,203,0,10,0.81373
-516,88,377,920,146,202,0,10,0.7931
-517,88,325,925,148,202,0,10,0.76847
-518,88,273,930,151,202,0,10,0.74384
-519,88,222,935,153,202,0,10,0.71921
-520,88,170,943,154,202,0,10,0.6798
-521,88,114,945,160,206,0,10,0.657
-522,88,58,953,165,205,0,10,0.62136
-523,88,7,957,161,202,0,10,0.61084
-524,88,-47,968,161,202,0,10,0.39172
-81,89,1095,492,36,25,0,3,1
-82,89,1092,492,36,25,0,3,1
-83,89,1090,493,36,25,0,3,1
-84,89,1087,494,37,25,0,3,1
-85,89,1085,495,36,25,0,3,1
-86,89,1083,496,36,25,0,3,1
-87,89,1080,496,37,26,0,3,1
-88,89,1078,497,36,26,0,3,1
-89,89,1075,498,37,26,0,3,1
-90,89,1073,499,37,26,0,3,1
-91,89,1071,500,37,26,0,3,1
-92,89,1067,501,36,25,0,3,1
-93,89,1064,502,36,25,0,3,1
-94,89,1061,503,36,25,0,3,1
-95,89,1058,504,36,25,0,3,1
-96,89,1055,505,36,25,0,3,1
-97,89,1052,506,36,25,0,3,1
-98,89,1049,508,36,25,0,3,1
-99,89,1045,507,36,25,0,3,1
-100,89,1042,507,36,25,0,3,1
-101,89,1039,507,36,25,0,3,1
-102,89,1035,507,36,25,0,3,1
-103,89,1032,507,36,25,0,3,1
-104,89,1029,507,36,25,0,3,1
-105,89,1025,507,36,25,0,3,1
-106,89,1022,507,36,25,0,3,1
-107,89,1019,507,36,25,0,3,1
-108,89,1015,507,36,25,0,3,1
-109,89,1012,507,36,25,0,3,1
-110,89,1009,507,36,25,0,3,1
-111,89,1006,507,36,25,0,3,1
-112,89,1002,507,36,25,0,3,1
-113,89,998,507,36,25,0,3,1
-114,89,994,507,36,25,0,3,1
-115,89,990,508,36,25,0,3,1
-116,89,987,508,36,25,0,3,1
-117,89,983,508,36,25,0,3,1
-118,89,979,509,36,25,0,3,1
-119,89,975,509,36,25,0,3,1
-120,89,971,509,36,25,0,3,1
-121,89,968,510,36,25,0,3,1
-122,89,964,510,36,25,0,3,1
-123,89,960,510,36,25,0,3,1
-124,89,956,510,36,25,0,3,1
-125,89,952,511,36,25,0,3,1
-126,89,949,511,36,25,0,3,1
-127,89,945,511,36,25,0,3,1
-128,89,941,512,36,25,0,3,1
-129,89,937,512,36,25,0,3,1
-130,89,933,512,36,25,0,3,1
-131,89,930,513,36,25,0,3,1
-132,89,926,512,36,26,0,3,1
-133,89,923,512,36,26,0,3,1
-134,89,919,512,37,26,0,3,1
-135,89,916,512,37,26,0,3,1
-136,89,912,512,37,27,0,3,1
-137,89,909,512,37,27,0,3,1
-138,89,905,512,38,27,0,3,1
-139,89,902,512,38,27,0,3,1
-140,89,898,512,38,27,0,3,1
-141,89,895,512,38,28,0,3,1
-142,89,891,512,39,28,0,3,1
-143,89,888,512,39,28,0,3,1
-144,89,884,512,39,28,0,3,1
-145,89,881,512,39,28,0,3,1
-146,89,877,512,40,29,0,3,1
-147,89,874,512,40,29,0,3,1
-148,89,870,512,40,29,0,3,1
-149,89,867,512,40,29,0,3,1
-150,89,863,512,41,29,0,3,1
-151,89,860,512,41,30,0,3,1
-152,89,855,512,41,30,0,3,1
-153,89,851,512,41,31,0,3,1
-154,89,847,513,40,31,0,3,1
-155,89,842,513,41,31,0,3,1
-156,89,838,513,40,32,0,3,1
-157,89,834,514,40,32,0,3,1
-158,89,831,514,39,32,0,3,1
-159,89,828,514,39,33,0,3,1
-160,89,825,515,39,32,0,3,1
-161,89,822,515,39,33,0,3,1
-162,89,819,515,39,33,0,3,1
-163,89,816,516,39,33,0,3,1
-164,89,813,515,39,33,0,3,1
-165,89,810,515,39,33,0,3,1
-166,89,807,514,39,34,0,3,1
-167,89,804,514,39,34,0,3,1
-168,89,801,514,39,34,0,3,1
-169,89,798,513,39,35,0,3,1
-170,89,795,513,39,35,0,3,1
-171,89,792,513,39,35,0,3,1
-172,89,789,513,40,35,0,3,1
-173,89,787,513,40,36,0,3,1
-174,89,784,513,41,36,0,3,1
-175,89,782,513,42,37,0,3,1
-176,89,779,513,43,37,0,3,1
-177,89,777,513,43,38,0,3,1
-178,89,774,513,45,38,0,3,1
-179,89,772,513,45,39,0,3,1
-180,89,769,513,46,39,0,3,1
-181,89,767,514,47,39,0,3,1
-182,89,764,515,47,39,0,3,1
-183,89,762,516,47,39,0,3,1
-184,89,760,517,47,39,0,3,1
-185,89,757,518,48,39,0,3,1
-186,89,755,519,47,39,0,3,1
-187,89,753,520,47,39,0,3,1
-188,89,750,521,48,39,0,3,1
-189,89,748,522,48,39,0,3,1
-190,89,746,523,48,40,0,3,1
-191,89,745,523,48,40,0,3,1
-192,89,745,523,48,40,0,3,1
-193,89,745,524,48,40,0,3,1
-194,89,745,524,48,40,0,3,1
-195,89,745,525,48,40,0,3,1
-196,89,743,525,48,40,0,3,1
-197,89,742,526,47,39,0,3,1
-198,89,740,526,48,40,0,3,1
-199,89,739,527,47,39,0,3,1
-200,89,737,527,47,39,0,3,1
-201,89,736,528,47,39,0,3,1
-202,89,734,529,48,39,0,3,1
-203,89,732,530,49,39,0,3,1
-204,89,731,531,50,40,0,3,1
-205,89,730,531,51,41,0,3,1
-206,89,730,532,51,41,0,3,1
-207,89,729,533,52,42,0,3,1
-208,89,729,534,52,42,0,3,1
-209,89,728,535,53,42,0,3,1
-210,89,728,536,53,43,0,3,1
-211,89,728,536,53,44,0,3,1
-212,89,727,537,54,44,0,3,1
-213,89,727,538,54,45,0,3,1
-214,89,726,539,55,45,0,3,1
-215,89,726,540,55,45,0,3,1
-216,89,726,541,55,46,0,3,1
-217,89,726,541,56,46,0,3,1
-218,89,727,542,56,46,0,3,0.95745
-219,89,728,542,56,47,0,3,0.91667
-220,89,729,543,57,47,0,3,0.875
-221,89,729,543,58,47,0,3,0.85417
-222,89,730,544,58,47,0,3,0.85417
-223,89,731,544,58,48,0,3,0.83673
-224,89,732,545,59,48,0,3,0.81633
-225,89,733,544,60,49,0,3,0.82
-226,89,735,544,60,49,0,3,0.82
-227,89,736,544,61,49,0,3,0.82
-228,89,738,544,62,49,0,3,0.8819
-229,89,739,544,62,49,0,3,0.87778
-230,89,740,544,63,49,0,3,0.8775
-231,89,741,544,64,50,0,3,0.88326
-232,89,743,544,63,50,0,3,0.89583
-233,89,744,544,64,51,0,3,0.90769
-234,89,745,544,65,51,0,3,0.92803
-235,89,747,544,65,52,0,3,0.95283
-236,89,749,543,66,53,0,3,0.98673
-237,89,752,543,66,53,0,3,1
-238,89,754,543,67,53,0,3,1
-239,89,757,542,68,54,0,3,1
-240,89,759,542,69,54,0,3,1
-241,89,762,542,69,54,0,3,1
-242,89,765,542,70,55,0,3,1
-243,89,769,542,71,55,0,3,1
-244,89,774,542,71,56,0,3,1
-245,89,779,542,71,57,0,3,1
-246,89,784,543,71,57,0,3,1
-247,89,787,543,72,58,0,3,1
-248,89,790,544,73,58,0,3,1
-249,89,793,544,74,59,0,3,1
-250,89,796,545,75,59,0,3,1
-251,89,800,546,75,59,0,3,1
-252,89,805,546,76,59,0,3,1
-253,89,811,546,76,60,0,3,1
-254,89,817,546,77,61,0,3,1
-255,89,823,547,77,61,0,3,1
-256,89,829,547,77,62,0,3,1
-257,89,835,547,78,62,0,3,1
-258,89,841,547,78,63,0,3,1
-259,89,847,548,78,63,0,3,1
-260,89,853,548,79,64,0,3,1
-261,89,859,548,79,65,0,3,1
-262,89,865,549,80,65,0,3,1
-263,89,869,549,84,66,0,3,1
-264,89,874,550,87,67,0,3,1
-265,89,879,551,90,67,0,3,1
-266,89,884,552,94,68,0,3,1
-267,89,890,552,96,68,0,3,1
-268,89,897,552,97,69,0,3,1
-269,89,903,552,99,69,0,3,1
-270,89,910,553,100,69,0,3,1
-271,89,918,552,101,70,0,3,1
-272,89,926,552,102,71,0,3,1
-273,89,934,552,103,72,0,3,1
-274,89,941,552,104,73,0,3,1
-275,89,948,553,105,73,0,3,0.99324
-276,89,955,553,107,74,0,3,0.98469
-277,89,962,554,108,74,0,3,1
-278,89,969,554,109,75,0,3,1
-279,89,976,555,111,75,0,3,1
-280,89,983,555,112,76,0,3,0.97724
-281,89,991,556,113,76,0,3,0.95033
-282,89,998,556,115,76,0,3,0.92208
-283,89,1005,556,118,76,0,3,0.90909
-284,89,1013,556,120,76,0,3,0.88312
-285,89,1020,556,123,76,0,3,0.87013
-286,89,1028,556,125,76,0,3,0.85714
-287,89,1035,556,127,76,0,3,0.83117
-288,89,1043,556,129,76,0,3,0.81818
-289,89,1050,556,132,76,0,3,0.80519
-290,89,1058,556,134,76,0,3,0.81818
-291,89,1065,556,137,76,0,3,0.84416
-292,89,1073,557,139,76,0,3,0.85714
-293,89,1080,557,141,76,0,3,0.87013
-294,89,1088,558,143,76,0,3,0.87013
-295,89,1096,559,145,76,0,3,0.87013
-296,89,1104,560,147,75,0,3,0.89474
-297,89,1111,560,150,76,0,3,0.87013
-298,89,1119,561,152,76,0,3,0.85714
-299,89,1127,562,154,75,0,3,0.85526
-300,89,1135,563,156,75,0,3,0.82895
-301,89,1143,564,158,75,0,3,0.81579
-302,89,1150,566,160,76,0,3,0.79221
-303,89,1157,568,162,77,0,3,0.78205
-304,89,1164,570,165,78,0,3,0.77215
-305,89,1171,572,167,80,0,3,0.75309
-306,89,1178,574,170,81,0,3,0.69106
-307,89,1185,576,172,82,0,3,0.65569
-308,89,1193,578,174,84,0,3,0.62319
-309,89,1200,578,176,86,0,3,0.6392
-310,89,1208,579,178,87,0,3,0.62925
-311,89,1215,580,180,88,0,3,0.64467
-312,89,1223,581,182,89,0,3,0.64906
-313,89,1231,582,184,90,0,3,0.67942
-314,89,1237,582,186,91,0,3,0.64706
-315,89,1243,583,188,92,0,3,0.57672
-316,89,1249,583,190,94,0,3,0.50262
-317,89,1255,584,192,95,0,3,0.45078
-318,89,1261,584,194,96,0,3,0.42564
-319,89,1267,585,196,97,0,3,0.40102
-320,89,1273,585,198,99,0,3,0.38693
-321,89,1279,586,200,100,0,3,0.37811
-322,89,1284,585,201,100,0,3,0.37624
-323,89,1289,584,202,101,0,3,0.35468
-324,89,1294,583,203,101,0,3,0.36275
-325,89,1299,582,204,102,0,3,0.38049
-326,89,1304,581,206,103,0,3,0.41546
-327,89,1309,580,207,103,0,3,0.45192
-328,89,1314,579,208,104,0,3,0.48435
-329,89,1319,578,209,104,0,3,0.51887
-330,89,1324,577,210,105,0,3,0.4907
-331,89,1329,576,212,106,0,3,0.41753
-332,89,1331,574,213,107,0,3,0.37673
-333,89,1333,573,214,107,0,3,0.34109
-334,89,1335,571,216,108,0,3,0.34554
-335,89,1337,570,217,108,0,3,0.34395
-336,89,1339,569,219,108,0,3,0.34137
-337,89,1343,569,220,108,0,3,0.34277
-338,89,1347,569,221,109,0,3,0.35168
-339,89,1351,569,222,110,0,3,0.32291
-340,89,1356,569,223,111,0,3,0.30796
-341,89,1358,572,224,111,0,3,0.33484
-342,89,1360,575,226,112,0,3,0.34088
-343,89,1363,578,226,112,0,3,0.36962
-344,89,1365,582,228,112,0,3,0.35657
-345,89,1367,585,229,113,0,3,0.34523
-346,89,1370,588,230,113,0,3,0.3647
-347,89,1372,591,231,114,0,3,0.36079
-348,89,1375,595,232,114,0,3,0.33902
-349,89,1376,596,234,115,0,3,0.32993
-350,89,1377,598,236,116,0,3,0.32929
-351,89,1379,600,237,117,0,3,0.34749
-352,89,1380,602,239,118,0,3,0.33669
-353,89,1381,604,241,119,0,3,0.32769
-354,89,1382,607,244,119,0,3,0.35034
-355,89,1383,609,246,120,0,3,0.37357
-356,89,1385,611,248,122,0,3,0.34313
-357,89,1386,614,250,122,0,3,0.33887
-358,89,1387,616,252,123,0,3,0.32912
-359,89,1388,618,255,124,0,3,0.34056
-360,89,1390,621,256,125,0,3,0.35368
-361,89,1391,623,259,126,0,3,0.36826
-362,89,1392,625,261,127,0,3,0.39346
-363,89,1393,628,263,127,0,3,0.37752
-364,89,1395,630,265,129,0,3,0.39401
-365,89,1396,632,267,130,0,3,0.41011
-366,89,1397,635,270,130,0,3,0.46894
-367,89,1398,637,272,131,0,3,0.50685
-368,89,1400,640,274,132,0,3,0.54977
-369,89,1401,640,276,132,0,3,0.53899
-370,89,1402,640,278,133,0,3,0.52627
-371,89,1403,640,280,134,0,3,0.51256
-372,89,1404,640,282,135,0,3,0.50294
-373,89,1405,640,284,135,0,3,0.48617
-374,89,1406,640,286,136,0,3,0.50334
-375,89,1407,640,288,137,0,3,0.51281
-376,89,1408,640,290,138,0,3,0.54031
-377,89,1410,640,292,139,0,3,0.5658
-378,89,1407,639,294,140,0,3,0.57947
-379,89,1404,639,297,141,0,3,0.60299
-380,89,1401,638,299,142,0,3,0.65023
-381,89,1399,638,301,143,0,3,0.69723
-382,89,1399,636,302,144,0,3,0.71672
-383,89,1399,634,304,146,0,3,0.71498
-384,89,1399,633,306,147,0,3,0.71082
-385,89,1395,633,307,148,0,3,0.71206
-386,89,1391,634,308,148,0,3,0.71037
-387,89,1387,635,310,149,0,3,0.71023
-388,89,1383,636,311,149,0,3,0.7022
-389,89,1380,636,312,151,0,3,0.68446
-390,89,1376,637,313,151,0,3,0.68367
-391,89,1372,638,315,152,0,3,0.69374
-392,89,1368,639,316,152,0,3,0.68827
-393,89,1365,640,317,153,0,3,0.70636
-394,89,1357,640,318,154,0,3,0.721
-395,89,1350,641,319,155,0,3,0.73381
-396,89,1342,642,321,156,0,3,0.74287
-397,89,1335,643,321,157,0,3,0.7523
-398,89,1327,644,323,158,0,3,0.76887
-399,89,1320,645,324,159,0,3,0.772
-400,89,1310,644,325,160,0,3,0.77556
-401,89,1301,644,326,160,0,3,0.77928
-402,89,1291,643,328,162,0,3,0.79018
-403,89,1282,643,329,162,0,3,0.79822
-404,89,1273,643,330,163,0,3,0.80119
-405,89,1262,643,331,164,0,3,0.80234
-406,89,1251,644,332,164,0,3,0.80046
-407,89,1240,645,334,165,0,3,0.79696
-408,89,1227,645,335,166,0,3,0.8091
-409,89,1215,645,336,167,0,3,0.83206
-410,89,1202,645,337,168,0,3,0.84097
-411,89,1190,646,338,168,0,3,0.85111
-412,89,1174,646,339,169,0,3,0.86303
-413,89,1158,646,340,170,0,3,0.91636
-414,89,1142,646,342,172,0,3,0.92922
-415,89,1126,646,343,173,0,3,0.93899
-416,89,1110,646,344,174,0,3,0.95548
-417,89,1095,647,345,175,0,3,0.96231
-418,89,1075,647,346,176,0,3,0.97099
-419,89,1055,647,347,177,0,3,0.98063
-420,89,1035,647,348,178,0,3,0.99376
-421,89,1016,647,349,179,0,3,1
-422,89,996,647,350,180,0,3,1
-423,89,976,647,351,181,0,3,1
-424,89,956,647,352,182,0,3,1
-425,89,937,647,353,183,0,3,1
-426,89,915,648,354,183,0,3,1
-427,89,893,649,355,184,0,3,1
-428,89,872,650,356,185,0,3,1
-429,89,848,653,357,186,0,3,1
-430,89,824,656,358,187,0,3,1
-431,89,801,660,359,188,0,3,1
-432,89,776,661,361,191,0,3,1
-433,89,751,663,363,193,0,3,1
-434,89,726,665,365,195,0,3,1
-435,89,702,667,366,197,0,3,1
-436,89,674,669,368,199,0,3,1
-437,89,646,671,370,201,0,3,1
-438,89,618,673,372,203,0,3,1
-439,89,591,676,374,204,0,3,1
-440,89,563,678,376,206,0,3,1
-441,89,535,680,378,208,0,3,1
-442,89,507,682,380,210,0,3,1
-443,89,480,685,382,212,0,3,1
-444,89,447,687,384,214,0,3,1
-445,89,415,690,385,215,0,3,0.95596
-446,89,382,692,387,217,0,3,0.91495
-447,89,350,695,388,218,0,3,0.88946
-448,89,314,694,390,220,0,3,0.88491
-449,89,278,694,392,222,0,3,0.8855
-450,89,242,694,394,223,0,3,0.88608
-451,89,207,694,395,225,0,3,0.88384
-452,89,174,695,395,226,0,3,0.88131
-453,89,142,697,394,227,0,3,0.87848
-454,89,109,699,395,227,0,3,0.87626
-455,89,77,701,394,228,0,3,0.87342
-456,89,44,703,394,228,0,3,0.87089
-457,89,12,705,394,229,0,3,0.87089
-458,89,-30,709,394,229,0,3,0.92152
-459,89,-72,713,394,230,0,3,0.81519
-460,89,-114,717,394,231,0,3,0.70886
-461,89,-156,721,394,232,0,3,0.60253
-462,89,-200,729,394,232,0,3,0.49114
-463,89,-244,738,394,232,0,3,0.37975
-464,89,-288,747,394,232,0,3,0.26835
-465,89,-339,747,394,232,0,3,0.13924
-98,90,1279,519,7,147,0,10,0.72297
-99,90,1275,519,8,147,0,10,0.73649
-100,90,1272,519,9,148,0,10,0.73826
-101,90,1269,520,10,148,0,10,0.75168
-102,90,1266,520,10,149,0,10,0.76
-103,90,1263,521,11,149,0,10,0.77333
-104,90,1260,521,12,150,0,10,0.77483
-105,90,1257,521,12,151,0,10,0.77632
-106,90,1254,522,13,151,0,10,0.78289
-107,90,1251,522,14,152,0,10,0.78431
-108,90,1248,523,15,152,0,10,0.79085
-109,90,1244,523,15,152,0,10,0.79739
-110,90,1240,523,15,153,0,10,0.7987
-111,90,1236,523,15,154,0,10,0.80645
-112,90,1233,523,15,154,0,10,0.8129
-113,90,1229,523,15,155,0,10,0.8141
-114,90,1225,523,15,156,0,10,0.81529
-115,90,1222,523,14,156,0,10,0.82166
-116,90,1218,523,15,157,0,10,0.82278
-117,90,1214,523,15,158,0,10,0.83019
-118,90,1211,523,14,159,0,10,0.83125
-119,90,1207,523,14,159,0,10,0.8125
-120,90,1203,523,15,160,0,10,0.78882
-121,90,1199,523,15,161,0,10,0.78395
-122,90,1196,523,14,161,0,10,0.79012
-123,90,1192,523,14,162,0,10,0.79141
-124,90,1188,523,15,163,0,10,0.79878
-125,90,1185,523,14,163,0,10,0.80488
-126,90,1181,523,14,164,0,10,0.82949
-127,90,1177,523,14,165,0,10,0.84217
-128,90,1174,523,14,166,0,10,0.86627
-129,90,1170,523,14,167,0,10,0.87857
-130,90,1166,523,14,168,0,10,0.90217
-131,90,1163,523,14,169,0,10,0.93137
-132,90,1159,523,14,170,0,10,0.94308
-133,90,1156,523,14,171,0,10,0.96589
-134,90,1152,523,14,172,0,10,0.98844
-135,90,1149,523,14,173,0,10,0.98851
-136,90,1145,524,14,173,0,10,0.99425
-137,90,1142,524,13,174,0,10,0.99429
-138,90,1138,524,14,175,0,10,0.99432
-139,90,1135,524,13,176,0,10,0.99435
-140,90,1131,524,14,177,0,10,0.99438
-141,90,1128,524,13,178,0,10,0.99441
-142,90,1124,524,14,179,0,10,0.99444
-143,90,1121,524,13,180,0,10,0.98895
-144,90,1117,525,13,180,0,10,0.99448
-145,90,1114,525,13,181,0,10,0.99451
-146,90,1110,525,13,182,0,10,0.99454
-147,90,1107,525,13,183,0,10,0.99457
-148,90,1103,525,13,184,0,10,0.98919
-149,90,1100,525,13,185,0,10,0.98925
-150,90,1096,525,13,186,0,10,0.9893
-151,90,1093,526,13,187,0,10,0.99468
-152,90,1088,526,13,188,0,10,0.99471
-153,90,1083,527,13,188,0,10,0.99471
-154,90,1078,527,13,190,0,10,0.99476
-155,90,1074,528,13,190,0,10,1
-156,90,1069,528,13,192,0,10,1
-157,90,1064,529,13,192,0,10,1
-158,90,1060,530,13,193,0,10,1
-159,90,1056,530,14,194,0,10,1
-160,90,1053,530,14,196,0,10,1
-161,90,1050,530,14,197,0,10,1
-162,90,1047,530,14,199,0,10,1
-163,90,1044,531,14,199,0,10,1
-164,90,1041,531,14,201,0,10,1
-165,90,1038,531,14,203,0,10,1
-166,90,1034,531,15,204,0,10,1
-167,90,1031,532,15,205,0,10,1
-168,90,1028,532,15,206,0,10,1
-169,90,1025,532,15,208,0,10,1
-170,90,1022,532,15,209,0,10,1
-171,90,1019,532,15,211,0,10,1
-172,90,1016,533,15,212,0,10,1
-173,90,1013,533,15,213,0,10,1
-174,90,1009,533,17,215,0,10,0.99537
-175,90,1006,533,17,216,0,10,0.99539
-176,90,1003,534,17,217,0,10,0.99541
-177,90,1000,534,17,219,0,10,0.99091
-178,90,997,534,17,220,0,10,0.98643
-179,90,994,534,17,222,0,10,0.98655
-180,90,991,534,17,223,0,10,0.98214
-181,90,988,535,17,224,0,10,0.98222
-182,90,984,535,18,225,0,10,0.97788
-183,90,981,535,18,227,0,10,0.97368
-184,90,978,535,18,229,0,10,0.96957
-185,90,975,536,18,229,0,10,0.97391
-186,90,972,536,18,231,0,10,0.96983
-187,90,969,536,18,232,0,10,0.96567
-188,90,966,536,18,234,0,10,0.9617
-189,90,963,537,19,235,0,10,0.96186
-190,90,960,537,20,237,0,10,0.95798
-191,90,958,538,20,238,0,10,0.95816
-192,90,956,539,20,239,0,10,0.9625
-193,90,954,540,20,240,0,10,0.96266
-194,90,952,541,20,242,0,10,0.96296
-195,90,950,542,20,243,0,10,0.96311
-196,90,948,543,20,244,0,10,0.96327
-197,90,946,544,20,245,0,10,0.96748
-198,90,944,545,20,246,0,10,0.96761
-199,90,942,546,20,248,0,10,0.96787
-200,90,940,546,20,250,0,10,0.96414
-201,90,938,547,20,251,0,10,0.96429
-202,90,936,548,20,252,0,10,0.96443
-203,90,934,549,20,253,0,10,0.9685
-204,90,932,549,21,255,0,10,0.96484
-205,90,930,550,21,256,0,10,0.96498
-206,90,928,551,21,257,0,10,0.96512
-207,90,926,552,21,258,0,10,0.96525
-208,90,924,553,22,259,0,10,0.96538
-209,90,922,553,22,262,0,10,0.96198
-210,90,921,554,22,265,0,10,0.96241
-211,90,920,555,22,267,0,10,0.96269
-212,90,918,556,23,270,0,10,0.9631
-213,90,917,557,23,272,0,10,0.96337
-214,90,916,558,23,275,0,10,0.96377
-215,90,916,558,23,278,0,10,0.96057
-216,90,916,559,23,280,0,10,0.96085
-217,90,916,559,24,283,0,10,0.95775
-218,90,916,560,24,286,0,10,0.95819
-219,90,916,560,24,289,0,10,0.95862
-220,90,916,561,25,291,0,10,0.9589
-221,90,916,561,25,295,0,10,0.95946
-222,90,916,562,26,297,0,10,0.95973
-223,90,916,562,26,300,0,10,0.96013
-224,90,916,563,26,303,0,10,0.96053
-225,90,916,563,27,306,0,10,0.95765
-226,90,916,564,27,308,0,10,0.96117
-227,90,917,565,27,311,0,10,0.96154
-228,90,918,566,27,313,0,10,0.96497
-229,90,919,567,28,316,0,10,0.9653
-230,90,921,568,27,319,0,10,0.96562
-231,90,922,569,28,321,0,10,0.96584
-232,90,923,570,28,324,0,10,0.96615
-233,90,925,571,28,327,0,10,0.96646
-234,90,926,572,28,330,0,10,0.96677
-235,90,927,573,29,332,0,10,0.96697
-236,90,929,574,28,335,0,10,0.96726
-237,90,930,575,29,338,0,10,0.96755
-238,90,932,576,29,341,0,10,0.96784
-239,90,935,574,30,346,0,10,0.95965
-240,90,938,572,31,352,0,10,0.95184
-241,90,942,571,31,357,0,10,0.94693
-242,90,946,572,32,362,0,10,0.95041
-243,90,950,573,33,368,0,10,0.95393
-244,90,954,575,34,372,0,10,0.9571
-245,90,959,576,34,378,0,10,0.96042
-246,90,963,578,35,383,0,10,0.96354
-247,90,967,579,36,388,0,10,0.96658
-248,90,972,580,36,394,0,10,0.96709
-249,90,976,582,37,398,0,10,0.96992
-250,90,980,583,38,404,0,10,0.9679
-251,90,985,585,39,409,0,10,0.97073
-252,90,992,587,39,414,0,10,0.97108
-253,90,999,589,40,420,0,10,0.9715
-254,90,1006,592,41,424,0,10,0.97412
-255,90,1013,594,42,430,0,10,0.97448
-256,90,1020,596,43,435,0,10,0.97477
-257,90,1027,599,44,440,0,10,0.97732
-258,90,1034,601,45,445,0,10,0.97758
-259,90,1042,604,45,450,0,10,0.98004
-260,90,1052,606,46,452,0,10,0.98013
-261,90,1063,609,46,453,0,10,0.98238
-262,90,1073,611,48,455,0,10,0.98246
-263,90,1084,614,48,457,0,10,0.98472
-264,90,1094,616,49,459,0,10,0.98478
-265,90,1105,619,50,460,0,10,0.98698
-266,90,1115,621,51,462,0,10,0.98056
-267,90,1126,624,52,464,0,10,0.97204
-268,90,1139,626,51,461,0,10,0.97403
-269,90,1152,629,50,458,0,10,0.97603
-270,90,1165,632,49,455,0,10,0.97807
-271,90,1178,635,48,451,0,10,0.98009
-272,90,1191,638,47,448,0,10,0.97773
-273,90,1204,641,46,445,0,10,0.97534
-274,90,1218,644,45,442,0,10,0.97291
-275,90,1234,647,46,439,0,10,0.97045
-276,90,1251,651,46,436,0,10,0.97025
-277,90,1267,655,47,433,0,10,0.96774
-278,90,1284,659,48,430,0,10,0.9652
-279,90,1301,664,49,430,0,10,0.95592
-280,90,1318,669,51,430,0,10,0.94664
-281,90,1335,675,52,430,0,10,0.93735
-282,90,1352,680,54,430,0,10,0.92343
-283,90,1369,685,55,430,0,10,0.90951
-284,90,1386,691,57,430,0,10,0.89559
-285,90,1409,696,59,430,0,10,0.88167
-286,90,1432,701,61,430,0,10,0.86775
-287,90,1455,706,63,430,0,10,0.85383
-288,90,1478,711,65,430,0,10,0.83991
-289,90,1502,716,66,430,0,10,0.82599
-290,90,1531,724,68,430,0,10,0.80974
-291,90,1561,732,69,430,0,10,0.78886
-292,90,1595,744,70,430,0,10,0.76566
-293,90,1629,757,72,429,0,10,0.74419
-294,90,1663,769,74,429,0,10,0.72093
-295,90,1698,782,75,429,0,10,0.6814
-296,90,1742,797,76,429,0,10,0.64186
-297,90,1786,812,78,429,0,10,0.60233
-298,90,1831,827,79,429,0,10,0.56047
-98,91,1270,446,39,83,0,11,1
-99,91,1267,445,39,83,0,11,1
-100,91,1264,445,39,83,0,11,1
-101,91,1261,445,39,83,0,11,1
-102,91,1258,445,39,83,0,11,1
-103,91,1255,445,39,83,0,11,1
-104,91,1252,445,39,83,0,11,1
-105,91,1249,445,39,83,0,11,1
-106,91,1246,445,39,83,0,11,1
-107,91,1243,445,39,83,0,11,1
-108,91,1240,445,39,83,0,11,1
-109,91,1237,445,39,83,0,11,1
-110,91,1235,445,39,83,0,11,1
-111,91,1231,444,39,83,0,11,1
-112,91,1227,444,39,83,0,11,1
-113,91,1224,444,39,83,0,11,1
-114,91,1220,444,39,83,0,11,1
-115,91,1216,444,39,83,0,11,1
-116,91,1213,444,39,83,0,11,1
-117,91,1209,443,39,83,0,11,1
-118,91,1206,443,39,83,0,11,1
-119,91,1202,443,39,83,0,11,1
-120,91,1198,443,39,83,0,11,1
-121,91,1195,443,39,83,0,11,1
-122,91,1191,443,39,83,0,11,1
-123,91,1188,443,39,83,0,11,1
-124,91,1184,442,39,83,0,11,1
-125,91,1180,442,39,83,0,11,1
-126,91,1176,442,39,83,0,11,1
-127,91,1172,442,39,83,0,11,1
-128,91,1168,442,39,83,0,11,1
-129,91,1164,442,39,83,0,11,1
-130,91,1160,442,39,83,0,11,1
-131,91,1156,441,39,83,0,11,1
-132,91,1152,441,39,83,0,11,1
-133,91,1148,441,39,83,0,11,1
-134,91,1144,441,39,83,0,11,1
-135,91,1140,441,39,83,0,11,1
-136,91,1136,441,39,83,0,11,1
-137,91,1132,441,39,83,0,11,1
-138,91,1128,441,39,83,0,11,1
-139,91,1124,440,39,84,0,11,1
-140,91,1120,440,39,84,0,11,1
-141,91,1116,439,40,85,0,11,1
-142,91,1112,439,40,85,0,11,1
-143,91,1108,439,40,86,0,11,1
-144,91,1104,438,41,87,0,11,1
-145,91,1100,438,41,87,0,11,1
-146,91,1096,438,41,87,0,11,1
-147,91,1092,437,42,88,0,11,1
-148,91,1088,437,42,89,0,11,1
-149,91,1084,437,42,89,0,11,1
-150,91,1080,436,43,90,0,11,1
-151,91,1076,436,43,90,0,11,1
-152,91,1072,435,43,91,0,11,1
-153,91,1068,435,44,92,0,11,1
-154,91,1064,435,44,92,0,11,1
-155,91,1060,434,44,93,0,11,1
-156,91,1056,434,45,93,0,11,1
-157,91,1052,434,45,94,0,11,1
-158,91,1048,433,45,95,0,11,1
-159,91,1044,433,46,95,0,11,1
-160,91,1040,433,46,95,0,11,1
-161,91,1036,432,46,96,0,11,1
-162,91,1032,432,47,97,0,11,1
-163,91,1028,431,47,98,0,11,1
-164,91,1024,431,47,98,0,11,1
-165,91,1020,431,48,98,0,11,1
-166,91,1016,430,48,99,0,11,1
-167,91,1012,430,48,100,0,11,1
-168,91,1008,430,49,100,0,11,1
-169,91,1004,429,49,101,0,11,1
-170,91,1000,429,49,101,0,11,1
-171,91,997,429,49,102,0,11,1
-172,91,994,429,50,102,0,11,1
-173,91,992,429,50,103,0,11,1
-174,91,990,429,50,104,0,11,1
-175,91,987,429,51,104,0,11,1
-176,91,985,429,51,105,0,11,1
-177,91,983,429,51,106,0,11,1
-178,91,981,430,51,106,0,11,1
-179,91,977,429,52,107,0,11,1
-180,91,974,429,52,108,0,11,1
-181,91,971,429,53,109,0,11,1
-182,91,968,429,53,110,0,11,1
-183,91,965,429,54,111,0,11,1
-184,91,962,429,54,112,0,11,1
-185,91,958,428,56,113,0,11,1
-186,91,955,428,56,114,0,11,1
-187,91,952,428,57,115,0,11,1
-188,91,949,428,57,116,0,11,1
-189,91,946,428,58,117,0,11,1
-190,91,943,428,58,118,0,11,1
-191,91,940,428,59,119,0,11,1
-192,91,937,427,60,120,0,11,1
-193,91,935,427,60,121,0,11,1
-194,91,932,427,61,122,0,11,1
-195,91,930,427,61,123,0,11,1
-196,91,927,427,62,124,0,11,1
-197,91,925,427,62,124,0,11,1
-198,91,922,427,63,125,0,11,1
-199,91,920,427,63,126,0,11,1
-200,91,917,426,65,128,0,11,1
-201,91,915,426,65,129,0,11,1
-202,91,912,426,66,130,0,11,1
-203,91,910,426,66,130,0,11,1
-204,91,907,426,67,131,0,11,1
-205,91,905,426,67,132,0,11,1
-206,91,902,426,68,133,0,11,1
-207,91,900,426,68,134,0,11,1
-208,91,898,426,69,135,0,11,1
-209,91,897,426,70,136,0,11,1
-210,91,896,426,71,137,0,11,1
-211,91,896,426,71,138,0,11,1
-212,91,895,426,72,139,0,11,1
-213,91,895,426,72,140,0,11,1
-214,91,894,426,73,141,0,11,1
-215,91,893,426,74,142,0,11,1
-216,91,893,426,74,143,0,11,1
-217,91,892,426,75,144,0,11,1
-218,91,892,426,75,145,0,11,1
-219,91,891,425,76,146,0,11,1
-220,91,891,424,76,148,0,11,1
-221,91,890,423,78,149,0,11,1
-222,91,890,422,78,151,0,11,1
-223,91,889,421,79,152,0,11,1
-224,91,889,420,80,154,0,11,1
-225,91,889,419,80,156,0,11,1
-226,91,888,418,81,157,0,11,1
-227,91,888,417,82,159,0,11,1
-228,91,887,416,83,160,0,11,1
-229,91,887,415,83,162,0,11,1
-230,91,887,414,84,164,0,11,1
-231,91,888,412,85,167,0,11,1
-232,91,890,411,86,169,0,11,1
-233,91,892,410,86,171,0,11,1
-234,91,894,408,87,174,0,11,1
-235,91,896,407,87,176,0,11,1
-236,91,897,406,89,178,0,11,1
-237,91,899,405,89,180,0,11,1
-238,91,901,403,90,183,0,11,1
-239,91,903,402,90,185,0,11,1
-240,91,905,401,91,187,0,11,1
-241,91,907,400,92,189,0,11,1
-242,91,911,399,92,190,0,11,1
-243,91,915,398,93,191,0,11,1
-244,91,919,397,94,193,0,11,1
-245,91,923,396,94,194,0,11,1
-246,91,927,395,95,196,0,11,1
-247,91,931,394,96,197,0,11,1
-248,91,936,394,96,198,0,11,1
-249,91,942,392,97,201,0,11,1
-250,91,948,390,98,205,0,11,1
-251,91,954,388,99,208,0,11,1
-252,91,960,386,100,212,0,11,1
-253,91,965,384,104,216,0,11,1
-254,91,971,382,107,220,0,11,1
-255,91,977,380,110,224,0,11,1
-256,91,983,378,114,228,0,11,1
-257,91,989,376,117,232,0,11,1
-258,91,995,374,120,236,0,11,1
-259,91,1001,372,123,240,0,11,1
-260,91,1007,370,127,244,0,11,1
-261,91,1017,368,130,248,0,11,1
-262,91,1028,366,132,252,0,11,1
-263,91,1039,364,134,256,0,11,1
-264,91,1050,362,137,260,0,11,1
-265,91,1061,361,139,263,0,11,1
-266,91,1071,359,142,267,0,11,1
-267,91,1082,357,145,271,0,11,1
-268,91,1093,355,147,275,0,11,1
-269,91,1104,353,149,279,0,11,1
-270,91,1115,352,152,282,0,11,1
-271,91,1129,348,156,289,0,11,1
-272,91,1144,344,159,297,0,11,1
-273,91,1159,340,162,305,0,11,1
-274,91,1173,336,166,313,0,11,1
-275,91,1188,332,169,321,0,11,1
-276,91,1203,329,173,327,0,11,1
-277,91,1218,325,176,335,0,11,1
-278,91,1232,321,180,343,0,11,1
-279,91,1247,317,183,351,0,11,1
-280,91,1262,313,186,359,0,11,1
-281,91,1277,310,190,366,0,11,1
-282,91,1297,302,198,380,0,11,1
-283,91,1317,295,207,393,0,11,1
-284,91,1338,288,214,406,0,11,1
-285,91,1358,281,223,419,0,11,1
-286,91,1379,274,230,432,0,11,1
-287,91,1399,267,239,445,0,11,1
-288,91,1420,260,246,458,0,11,1
-289,91,1440,253,255,471,0,11,1
-290,91,1461,246,263,485,0,11,1
-291,91,1491,235,276,505,0,11,1
-292,91,1522,224,289,526,0,11,1
-293,91,1553,213,302,547,0,11,1
-294,91,1584,203,315,567,0,11,1
-295,91,1625,196,309,591,0,11,1
-296,91,1667,189,303,615,0,11,1
-297,91,1708,182,298,639,0,11,1
-298,91,1750,176,292,663,0,11,1
-299,91,1801,167,292,698,0,11,1
-18,92,1339,398,13,188,0,10,1
-19,92,1341,398,13,188,0,10,1
-20,92,1343,398,13,188,0,10,1
-21,92,1345,398,13,188,0,10,1
-22,92,1347,398,13,188,0,10,1
-23,92,1349,399,13,188,0,10,1
-24,92,1351,399,13,188,0,10,1
-25,92,1353,399,13,188,0,10,1
-26,92,1355,399,13,188,0,10,0.91534
-27,92,1357,399,13,188,0,10,0.71429
-28,92,1359,400,13,188,0,10,0.71958
-29,92,1360,400,13,188,0,10,0.73545
-30,92,1362,401,13,188,0,10,0.74074
-31,92,1364,402,13,188,0,10,0.7672
-32,92,1366,403,13,188,0,10,0.77249
-33,92,1368,404,13,188,0,10,0.70899
-34,92,1370,404,13,188,0,10,0.69312
-35,92,1372,405,13,188,0,10,1
-36,92,1374,406,13,188,0,10,1
-37,92,1376,407,13,188,0,10,1
-38,92,1378,408,13,188,0,10,1
-39,92,1380,411,13,188,0,10,1
-40,92,1383,415,13,188,0,10,1
-41,92,1385,418,13,188,0,10,1
-42,92,1388,422,13,188,0,10,1
-43,92,1391,426,13,188,0,10,1
-44,92,1393,429,13,188,0,10,1
-45,92,1396,433,13,188,0,10,1
-46,92,1398,436,13,188,0,10,1
-47,92,1401,440,13,188,0,10,1
-48,92,1404,444,13,188,0,10,1
-49,92,1406,444,13,188,0,10,1
-50,92,1408,444,13,188,0,10,1
-51,92,1410,444,13,188,0,10,1
-52,92,1412,444,13,188,0,10,1
-53,92,1414,444,13,188,0,10,1
-54,92,1416,444,13,188,0,10,1
-55,92,1418,444,13,188,0,10,1
-56,92,1420,444,13,188,0,10,1
-57,92,1422,444,13,188,0,10,1
-58,92,1424,445,13,188,0,10,1
-59,92,1425,445,13,188,0,10,1
-60,92,1426,445,13,188,0,10,1
-61,92,1428,445,13,188,0,10,1
-62,92,1429,445,13,188,0,10,1
-63,92,1431,445,13,188,0,10,1
-64,92,1432,445,13,188,0,10,1
-65,92,1433,445,13,188,0,10,1
-66,92,1435,445,13,188,0,10,1
-67,92,1436,445,13,188,0,10,1
-68,92,1438,445,13,188,0,10,1
-69,92,1437,445,13,188,0,10,1
-70,92,1437,445,13,188,0,10,1
-71,92,1437,446,13,188,0,10,1
-72,92,1437,446,13,188,0,10,1
-73,92,1437,447,13,188,0,10,1
-74,92,1437,447,13,188,0,10,1
-75,92,1437,448,13,188,0,10,1
-76,92,1435,448,13,188,0,10,1
-77,92,1434,449,13,188,0,10,1
-78,92,1433,449,13,188,0,10,1
-79,92,1432,450,13,188,0,10,1
-80,92,1430,450,13,188,0,10,1
-81,92,1429,451,13,188,0,10,1
-82,92,1428,452,13,188,0,10,1
-83,92,1427,452,13,188,0,10,1
-84,92,1425,453,13,188,0,10,1
-85,92,1424,453,13,188,0,10,1
-86,92,1423,454,13,188,0,10,1
-87,92,1422,455,13,188,0,10,1
-88,92,1419,455,13,188,0,10,1
-89,92,1417,456,13,188,0,10,1
-90,92,1415,456,13,188,0,10,1
-91,92,1413,457,13,188,0,10,1
-92,92,1411,457,13,188,0,10,1
-93,92,1409,458,13,188,0,10,1
-94,92,1407,458,13,188,0,10,1
-95,92,1405,459,13,188,0,10,1
-96,92,1403,459,13,188,0,10,1
-97,92,1401,460,13,188,0,10,1
-98,92,1399,461,13,188,0,10,1
-99,92,1396,461,13,188,0,10,1
-100,92,1393,462,13,188,0,10,1
-101,92,1390,463,13,188,0,10,1
-102,92,1387,464,13,188,0,10,1
-103,92,1385,465,13,188,0,10,1
-104,92,1382,466,13,188,0,10,1
-105,92,1379,467,13,188,0,10,1
-106,92,1376,468,13,188,0,10,1
-107,92,1373,469,13,188,0,10,1
-108,92,1371,469,13,188,0,10,1
-109,92,1368,470,13,188,0,10,1
-110,92,1365,471,13,188,0,10,1
-111,92,1362,472,13,188,0,10,1
-112,92,1359,473,13,188,0,10,1
-113,92,1357,474,13,188,0,10,1
-114,92,1354,475,13,188,0,10,1
-115,92,1351,476,13,188,0,10,1
-116,92,1348,477,13,188,0,10,1
-117,92,1346,478,13,188,0,10,1
-118,92,1342,478,13,188,0,10,1
-119,92,1339,479,13,188,0,10,1
-120,92,1336,480,13,188,0,10,1
-121,92,1333,481,13,188,0,10,1
-122,92,1329,482,13,188,0,10,1
-123,92,1326,483,13,188,0,10,1
-124,92,1323,484,13,188,0,10,1
-125,92,1320,485,13,188,0,10,1
-126,92,1316,486,13,188,0,10,1
-127,92,1313,487,13,188,0,10,1
-128,92,1310,488,13,188,0,10,1
-129,92,1307,489,13,188,0,10,1
-130,92,1303,490,13,188,0,10,1
-131,92,1300,491,13,188,0,10,0.95465
-132,92,1297,492,13,188,0,10,0.94142
-133,92,1294,493,13,188,0,10,0.93953
-134,92,1290,494,13,188,0,10,0.95011
-135,92,1287,495,13,188,0,10,0.95314
-136,92,1284,496,13,188,0,10,0.95616
-137,92,1281,497,13,188,0,10,0.94709
-138,92,1278,498,13,188,0,10,0.94898
-139,92,1275,497,13,190,0,10,0.94951
-140,92,1272,497,14,191,0,10,0.95312
-141,92,1270,496,13,193,0,10,0.94845
-142,92,1267,496,14,194,0,10,0.95214
-143,92,1265,495,14,196,0,10,0.94112
-144,92,1262,495,14,197,0,10,0.95118
-145,92,1259,494,15,199,0,10,0.94375
-146,92,1257,494,14,200,0,10,0.95025
-147,92,1254,493,15,202,0,10,0.94273
-148,92,1252,493,15,204,0,10,0.94329
-149,92,1248,492,15,206,0,10,0.95169
-150,92,1244,492,15,207,0,10,0.95343
-151,92,1240,491,16,209,0,10,0.95518
-152,92,1237,491,15,210,0,10,0.95261
-153,92,1233,490,16,212,0,10,0.95581
-154,92,1229,490,16,213,0,10,0.9365
-155,92,1225,489,17,215,0,10,0.9321
-156,92,1222,489,16,216,0,10,0.9306
-157,92,1218,488,17,218,0,10,0.92237
-158,92,1214,488,17,220,0,10,0.92534
-159,92,1210,487,18,222,0,10,0.92211
-160,92,1207,487,17,223,0,10,0.93254
-161,92,1203,486,18,225,0,10,0.93479
-162,92,1199,486,18,226,0,10,0.94319
-163,92,1195,485,19,228,0,10,0.94498
-164,92,1192,485,18,229,0,10,0.95057
-165,92,1188,484,19,231,0,10,0.94569
-166,92,1184,484,19,232,0,10,0.94292
-167,92,1181,484,19,234,0,10,0.94043
-168,92,1179,483,19,236,0,10,0.95063
-169,92,1177,483,19,237,0,10,1
-170,92,1175,483,20,239,0,10,1
-171,92,1173,483,20,240,0,10,1
-172,92,1171,482,20,242,0,10,1
-173,92,1169,482,21,244,0,10,1
-174,92,1167,482,21,245,0,10,1
-175,92,1165,482,21,246,0,10,1
-176,92,1164,482,21,248,0,10,1
-177,92,1162,482,21,249,0,10,1
-178,92,1160,482,22,251,0,10,1
-179,92,1158,482,22,253,0,10,1
-180,92,1157,483,22,254,0,10,0.94408
-181,92,1155,483,22,256,0,10,0.95145
-182,92,1153,483,23,258,0,10,0.94723
-183,92,1151,483,23,260,0,10,0.94764
-184,92,1150,484,23,261,0,10,0.94132
-185,92,1148,484,24,262,0,10,0.94388
-186,92,1147,484,24,264,0,10,0.9443
-187,92,1146,484,24,266,0,10,0.94472
-188,92,1145,485,24,267,0,10,0.9403
-189,92,1144,483,24,271,0,10,0.93206
-190,92,1143,481,25,276,0,10,0.92974
-191,92,1142,479,25,280,0,10,1
-192,92,1141,478,26,284,0,10,1
-193,92,1140,476,26,288,0,10,1
-194,92,1139,474,27,293,0,10,1
-195,92,1138,472,27,297,0,10,1
-196,92,1137,471,28,301,0,10,1
-197,92,1136,469,28,306,0,10,1
-198,92,1135,467,29,310,0,10,1
-199,92,1134,466,29,314,0,10,1
-200,92,1133,464,30,318,0,10,1
-201,92,1132,462,30,323,0,10,1
-202,92,1131,460,31,327,0,10,1
-203,92,1130,459,31,331,0,10,1
-204,92,1129,457,32,335,0,10,1
-205,92,1128,455,32,340,0,10,1
-206,92,1128,454,32,344,0,10,1
-207,92,1128,452,32,348,0,10,1
-208,92,1128,451,33,352,0,10,1
-209,92,1128,450,33,356,0,10,1
-210,92,1128,448,34,361,0,10,1
-211,92,1128,447,34,365,0,10,1
-212,92,1128,446,35,369,0,10,1
-213,92,1128,444,35,374,0,10,1
-214,92,1128,443,36,378,0,10,1
-215,92,1128,442,36,382,0,10,1
-216,92,1128,440,37,387,0,10,1
-217,92,1128,439,37,391,0,10,1
-218,92,1128,438,38,395,0,10,1
-219,92,1129,437,38,399,0,10,1
-220,92,1131,436,39,403,0,10,1
-221,92,1134,435,39,407,0,10,1
-222,92,1137,434,39,412,0,10,1
-223,92,1139,433,40,416,0,10,1
-224,92,1142,432,40,421,0,10,1
-225,92,1145,432,41,424,0,10,1
-226,92,1147,431,42,428,0,10,1
-227,92,1150,430,42,433,0,10,1
-228,92,1153,429,42,437,0,10,1
-229,92,1155,428,43,442,0,10,1
-230,92,1158,427,43,446,0,10,1
-231,92,1161,427,44,450,0,10,1
-232,92,1166,427,44,454,0,10,1
-233,92,1171,427,45,459,0,10,1
-234,92,1176,427,45,463,0,10,1
-235,92,1181,428,46,467,0,10,1
-236,92,1186,428,46,471,0,10,1
-237,92,1191,428,47,476,0,10,1
-238,92,1197,429,47,480,0,10,1
-239,92,1204,426,47,489,0,10,1
-240,92,1212,424,47,497,0,10,1
-241,92,1219,422,48,505,0,10,1
-242,92,1227,420,47,513,0,10,1
-243,92,1234,417,48,522,0,10,1
-244,92,1242,415,48,530,0,10,1
-245,92,1249,413,48,538,0,10,1
-246,92,1257,411,48,546,0,10,1
-247,92,1265,409,48,554,0,10,1
-248,92,1276,407,48,562,0,10,1
-249,92,1287,405,48,570,0,10,1
-250,92,1298,403,48,579,0,10,1
-251,92,1309,401,48,587,0,10,1
-252,92,1320,399,48,596,0,10,1
-253,92,1331,397,48,604,0,10,1
-254,92,1342,396,49,612,0,10,1
-255,92,1356,394,49,620,0,10,0.87053
-256,92,1371,393,49,628,0,10,0.87644
-257,92,1386,391,49,637,0,10,0.88238
-258,92,1401,390,49,645,0,10,0.88384
-259,92,1413,401,49,645,0,10,0.90043
-260,92,1425,413,49,645,0,10,0.89672
-261,92,1438,425,49,645,0,10,0.90043
-262,92,1454,427,49,645,0,10,0.91146
-263,92,1471,429,49,645,0,10,0.90805
-264,92,1488,431,49,645,0,10,0.90464
-265,92,1505,434,49,645,0,10,0.90898
-266,92,1526,441,49,645,0,10,0.88966
-267,92,1548,448,49,645,0,10,0.90341
-268,92,1570,455,49,645,0,10,0.8961
-269,92,1588,453,49,645,0,10,0.97214
-270,92,1607,452,49,645,0,10,0.97368
-271,92,1626,451,49,645,0,10,0.97523
-272,92,1654,450,49,645,0,10,0.97678
-273,92,1682,449,49,645,0,10,0.97833
-274,92,1710,448,49,645,0,10,0.97988
-275,92,1737,447,49,645,0,10,0.98142
-276,92,1765,447,49,645,0,10,0.98142
-277,92,1792,446,49,645,0,10,0.98297
-278,92,1820,446,49,645,0,10,0.98297
-279,92,1850,449,49,645,0,10,0.97833
-122,93,1364,458,15,203,0,10,1
-123,93,1360,457,15,204,0,10,1
-124,93,1357,457,15,205,0,10,1
-125,93,1354,457,15,206,0,10,1
-126,93,1351,457,15,207,0,10,1
-127,93,1348,457,14,208,0,10,1
-128,93,1344,457,15,208,0,10,1
-129,93,1341,457,15,209,0,10,1
-130,93,1338,457,15,210,0,10,1
-131,93,1335,456,14,212,0,10,0.70423
-132,93,1332,456,14,213,0,10,0.70561
-133,93,1328,456,15,213,0,10,0.70561
-134,93,1325,456,15,214,0,10,0.70698
-135,93,1322,456,14,215,0,10,0.70833
-136,93,1319,456,14,216,0,10,0.70968
-137,93,1316,456,14,217,0,10,0.71101
-138,93,1313,456,14,218,0,10,0.71233
-139,93,1310,456,14,218,0,10,0.71233
-140,93,1307,456,14,219,0,10,0.71364
-141,93,1305,456,14,220,0,10,0.71493
-142,93,1302,456,14,221,0,10,0.71622
-143,93,1299,456,14,222,0,10,0.71749
-144,93,1297,456,14,223,0,10,0.71875
-145,93,1294,456,14,224,0,10,0.72
-146,93,1291,456,14,225,0,10,0.72124
-147,93,1289,456,14,226,0,10,0.72247
-148,93,1286,456,14,227,0,10,0.72368
-149,93,1283,456,14,228,0,10,0.72489
-150,93,1281,456,14,229,0,10,0.73043
-151,93,1278,456,14,230,0,10,0.7316
-152,93,1276,456,14,231,0,10,0.73276
-153,93,1272,455,14,232,0,10,0.73391
-154,93,1269,454,14,233,0,10,0.73504
-155,93,1265,453,14,234,0,10,0.73617
-156,93,1262,452,14,235,0,10,0.74153
-157,93,1258,451,14,236,0,10,0.7384
-158,93,1255,450,14,237,0,10,0.7395
-159,93,1251,449,14,238,0,10,0.74059
-160,93,1248,448,14,239,0,10,0.7375
-161,93,1245,448,14,240,0,10,0.73859
-162,93,1242,447,14,241,0,10,0.73967
-163,93,1239,447,14,242,0,10,0.74074
-164,93,1237,447,13,242,0,10,0.74074
-165,93,1234,446,14,244,0,10,0.74286
-166,93,1231,446,14,245,0,10,0.73171
-167,93,1229,446,13,245,0,10,0.72358
-168,93,1226,446,13,246,0,10,0.7247
-169,93,1223,445,14,248,0,10,1
-170,93,1221,445,13,248,0,10,1
-171,93,1218,445,13,249,0,10,1
-172,93,1216,445,13,250,0,10,1
-173,93,1214,445,13,250,0,10,1
-174,93,1213,445,13,251,0,10,1
-175,93,1211,445,13,252,0,10,1
-176,93,1210,445,13,253,0,10,1
-177,93,1209,445,13,254,0,10,1
-178,93,1207,445,13,255,0,10,1
-179,93,1206,445,13,256,0,10,1
-180,93,1204,445,13,257,0,10,0.72868
-181,93,1203,445,13,258,0,10,0.72973
-182,93,1202,445,13,259,0,10,0.73077
-183,93,1200,444,13,261,0,10,0.73282
-184,93,1199,443,13,264,0,10,0.73585
-185,93,1198,442,13,266,0,10,0.73783
-186,93,1196,442,14,268,0,10,0.73978
-187,93,1195,441,14,270,0,10,0.7417
-188,93,1194,440,14,273,0,10,0.74453
-189,93,1193,440,14,275,0,10,0.74638
-190,93,1191,439,15,277,0,10,0.73741
-191,93,1190,438,15,280,0,10,1
-192,93,1189,437,15,282,0,10,1
-193,93,1187,437,16,284,0,10,1
-194,93,1186,436,16,286,0,10,1
-195,93,1185,435,16,289,0,10,1
-196,93,1184,435,16,291,0,10,1
-197,93,1183,434,17,294,0,10,1
-198,93,1183,434,17,296,0,10,1
-199,93,1183,434,17,298,0,10,1
-200,93,1183,434,17,300,0,10,1
-201,93,1183,433,17,303,0,10,1
-202,93,1183,433,17,305,0,10,1
-203,93,1182,433,18,307,0,10,1
-204,93,1182,433,18,309,0,10,1
-205,93,1182,432,18,312,0,10,1
-206,93,1182,432,18,314,0,10,1
-207,93,1182,432,18,316,0,10,1
-208,93,1182,432,18,318,0,10,1
-209,93,1182,432,18,320,0,10,1
-210,93,1183,431,18,322,0,10,1
-211,93,1184,430,19,324,0,10,1
-212,93,1186,429,18,327,0,10,1
-213,93,1187,428,19,329,0,10,1
-214,93,1189,428,18,331,0,10,1
-215,93,1190,427,19,333,0,10,1
-216,93,1192,426,18,336,0,10,1
-217,93,1193,425,19,338,0,10,1
-218,93,1195,425,19,340,0,10,1
-219,93,1197,425,19,342,0,10,1
-220,93,1199,425,20,345,0,10,1
-221,93,1202,425,19,347,0,10,1
-222,93,1204,426,20,349,0,10,1
-223,93,1206,426,20,182,0,10,1
-336,94,1239,526,18,184,0,10,1
-337,94,1241,525,19,187,0,10,1
-338,94,1244,524,18,190,0,10,0.98953
-339,94,1247,524,18,192,0,10,0.98446
-340,94,1249,526,18,191,0,10,0.98438
-341,94,1251,528,18,191,0,10,0.98438
-342,94,1254,530,18,191,0,10,0.97917
-343,94,1256,532,18,191,0,10,0.97917
-344,94,1259,534,18,191,0,10,0.97917
-345,94,1261,536,18,191,0,10,0.97396
-346,94,1264,538,18,191,0,10,0.97396
-347,94,1266,540,18,191,0,10,0.97396
-348,94,1269,542,18,191,0,10,0.96875
-349,94,1271,544,18,191,0,10,0.96875
-350,94,1274,546,18,191,0,10,0.96354
-351,94,1275,548,18,196,0,10,0.96447
-352,94,1277,550,18,201,0,10,0.96535
-353,94,1279,552,18,206,0,10,0.96618
-354,94,1281,554,17,211,0,10,0.96698
-355,94,1282,557,18,215,0,10,0.96759
-356,94,1284,559,18,220,0,10,0.96833
-357,94,1286,561,17,225,0,10,0.96903
-358,94,1288,563,17,230,0,10,0.9697
-359,94,1289,565,18,235,0,10,0.97034
-360,94,1291,568,18,239,0,10,0.97083
-361,94,1293,570,17,244,0,10,0.97143
-362,94,1295,572,17,249,0,10,0.86311
-363,94,1296,574,18,254,0,10,0.8388
-364,94,1298,576,17,259,0,10,0.82692
-365,94,1300,579,17,263,0,10,0.82197
-366,94,1302,581,17,268,0,10,0.81784
-367,94,1303,583,17,273,0,10,0.82948
-368,94,1305,585,17,278,0,10,0.82597
-369,94,1307,587,17,283,0,10,0.80869
-370,94,1309,590,17,287,0,10,0.80671
-371,94,1308,589,18,290,0,10,0.84409
-372,94,1308,589,18,292,0,10,0.87354
-373,94,1308,589,18,295,0,10,0.90149
-374,94,1307,588,19,298,0,10,0.8903
-375,94,1307,588,19,300,0,10,0.88987
-376,94,1307,588,19,303,0,10,0.8898
-377,94,1307,588,19,305,0,10,0.88938
-378,94,1306,587,20,308,0,10,0.89105
-379,94,1306,587,20,311,0,10,0.88996
-380,94,1306,587,20,313,0,10,0.8896
-381,94,1306,587,20,316,0,10,0.88959
-382,94,1302,586,21,319,0,10,0.92557
-383,94,1299,586,21,321,0,10,0.95822
-384,94,1296,586,21,324,0,10,0.95105
-385,94,1293,586,21,326,0,10,0.9412
-386,94,1290,586,22,329,0,10,0.92398
-387,94,1287,585,22,332,0,10,0.91579
-388,94,1284,585,23,334,0,10,0.90547
-389,94,1281,584,23,337,0,10,0.89867
-390,94,1279,584,23,339,0,10,0.8864
-391,94,1272,586,23,341,0,10,0.91813
-392,94,1266,588,23,344,0,10,0.93696
-393,94,1259,590,24,346,0,10,0.9668
-394,94,1253,592,24,349,0,10,0.94491
-395,94,1245,591,24,352,0,10,0.93598
-396,94,1237,591,25,354,0,10,0.93261
-397,94,1229,590,25,357,0,10,0.93038
-398,94,1221,590,26,359,0,10,0.93374
-399,94,1213,589,26,362,0,10,0.98623
-400,94,1206,589,26,365,0,10,0.98361
-401,94,1192,589,26,365,0,10,0.98361
-402,94,1178,589,26,365,0,10,0.98087
-403,94,1164,589,26,365,0,10,0.97814
-404,94,1150,590,26,365,0,10,0.97814
-405,94,1136,590,26,365,0,10,0.97541
-406,94,1122,590,26,365,0,10,0.97268
-407,94,1108,591,26,365,0,10,0.97268
-408,94,1094,591,26,365,0,10,0.47966
-409,94,1080,591,26,365,0,10,0.51063
-410,94,1067,592,26,365,0,10,0.5936
-411,94,1048,592,26,369,0,10,0.602
-412,94,1029,592,26,373,0,10,0.54427
-413,94,1011,593,25,376,0,10,0.65181
-414,94,992,593,26,380,0,10,0.97638
-415,94,973,593,26,384,0,10,0.97922
-416,94,955,594,25,387,0,10,0.98196
-417,94,936,594,25,391,0,10,0.98469
-418,94,918,595,25,394,0,10,0.98734
-419,94,891,593,25,398,0,10,0.98496
-420,94,865,592,25,401,0,10,0.98259
-421,94,841,594,25,401,0,10,0.89437
-422,94,817,596,25,401,0,10,0.77497
-423,94,793,599,25,401,0,10,0.53157
-424,94,761,600,25,401,0,10,0.5
-425,94,730,601,25,401,0,10,0.50498
-426,94,699,603,25,401,0,10,0.50746
-427,94,668,604,25,401,0,10,0.51741
-428,94,637,606,25,401,0,10,0.52488
-429,94,604,608,25,401,0,10,0.55473
-430,94,571,610,25,401,0,10,0.56468
-431,94,533,613,25,401,0,10,0.58209
-432,94,495,617,25,401,0,10,0.59204
-433,94,458,621,25,401,0,10,0.59357
-434,94,420,624,25,401,0,10,0.56372
-435,94,383,628,25,401,0,10,0.52545
-436,94,345,632,25,401,0,10,0.48259
-437,94,308,636,25,401,0,10,0.49751
-438,94,261,638,25,401,0,10,0.49254
-439,94,214,640,25,401,0,10,0.50995
-440,94,168,643,25,401,0,10,0.52488
-441,94,121,647,25,401,0,10,0.5398
-442,94,74,652,25,401,0,10,0.56716
-330,95,1204,428,52,109,0,11,1
-331,95,1207,424,53,109,0,11,1
-332,95,1210,420,54,110,0,11,1
-333,95,1213,416,55,110,0,11,1
-334,95,1217,412,55,111,0,11,1
-335,95,1218,412,56,111,0,11,1
-336,95,1220,412,56,112,0,11,1
-337,95,1221,412,57,112,0,11,1
-338,95,1223,412,57,113,0,11,1
-339,95,1225,413,58,113,0,11,1
-340,95,1226,414,59,114,0,11,1
-341,95,1228,416,60,114,0,11,1
-342,95,1230,418,60,115,0,11,1
-343,95,1232,420,61,115,0,11,1
-344,95,1234,422,62,115,0,11,1
-345,95,1236,424,62,116,0,11,1
-346,95,1238,426,63,116,0,11,1
-347,95,1240,428,64,116,0,11,1
-348,95,1242,430,64,117,0,11,1
-349,95,1244,432,65,117,0,11,1
-350,95,1246,434,66,118,0,11,1
-351,95,1247,434,66,120,0,11,1
-352,95,1249,435,66,121,0,11,1
-353,95,1251,436,66,122,0,11,1
-354,95,1253,437,66,123,0,11,1
-355,95,1255,438,65,125,0,11,1
-356,95,1256,439,66,126,0,11,1
-357,95,1258,440,66,127,0,11,1
-358,95,1260,441,66,128,0,11,1
-359,95,1262,442,65,129,0,11,1
-360,95,1264,443,65,131,0,11,1
-361,95,1265,443,66,133,0,11,1
-362,95,1267,444,66,134,0,11,1
-363,95,1269,445,65,135,0,11,1
-364,95,1271,446,65,136,0,11,1
-365,95,1273,447,65,138,0,11,1
-366,95,1274,448,66,139,0,11,1
-367,95,1276,449,65,140,0,11,1
-368,95,1278,450,65,141,0,11,1
-369,95,1280,451,65,142,0,11,1
-370,95,1282,452,65,144,0,11,1
-371,95,1281,450,66,146,0,11,1
-372,95,1281,449,67,147,0,11,1
-373,95,1281,448,67,148,0,11,1
-374,95,1280,447,69,149,0,11,1
-375,95,1280,446,70,150,0,11,1
-376,95,1280,444,70,152,0,11,1
-377,95,1280,443,71,153,0,11,1
-378,95,1279,442,73,154,0,11,1
-379,95,1279,441,73,155,0,11,1
-380,95,1279,440,74,156,0,11,1
-381,95,1279,439,75,157,0,11,1
-382,95,1276,437,76,158,0,11,1
-383,95,1274,435,77,160,0,11,1
-384,95,1271,434,78,160,0,11,1
-385,95,1269,432,79,162,0,11,1
-386,95,1267,431,80,163,0,11,1
-387,95,1262,428,81,165,0,11,1
-388,95,1258,426,82,166,0,11,1
-389,95,1254,424,83,167,0,11,1
-390,95,1250,422,84,168,0,11,1
-391,95,1243,421,85,169,0,11,1
-392,95,1237,421,86,170,0,11,1
-393,95,1230,420,87,172,0,11,1
-394,95,1224,420,88,173,0,11,1
-395,95,1215,419,89,174,0,11,1
-396,95,1206,418,90,175,0,11,1
-397,95,1197,417,91,176,0,11,1
-398,95,1188,416,92,177,0,11,1
-399,95,1179,415,93,178,0,11,1
-400,95,1171,414,94,180,0,11,1
-401,95,1157,412,94,182,0,11,1
-402,95,1144,411,94,184,0,11,1
-403,95,1131,409,94,187,0,11,1
-404,95,1118,408,94,189,0,11,1
-405,95,1105,406,94,192,0,11,1
-406,95,1092,405,93,194,0,11,1
-407,95,1079,403,93,197,0,11,1
-408,95,1066,402,93,199,0,11,1
-409,95,1053,400,93,202,0,11,1
-410,95,1040,399,93,204,0,11,1
-411,95,1018,397,95,205,0,11,1
-412,95,996,396,98,206,0,11,1
-413,95,974,394,100,207,0,11,1
-414,95,952,393,103,208,0,11,1
-415,95,930,391,105,209,0,11,1
-416,95,908,390,108,210,0,11,1
-417,95,886,388,110,211,0,11,1
-418,95,864,387,113,212,0,11,1
-419,95,842,385,115,213,0,11,1
-420,95,820,384,118,214,0,11,1
-421,95,794,380,119,218,0,11,1
-422,95,768,377,120,221,0,11,1
-423,95,742,373,121,225,0,11,1
-424,95,716,370,123,229,0,11,1
-425,95,682,369,124,233,0,11,1
-426,95,649,369,125,237,0,11,1
-427,95,616,369,126,240,0,11,1
-428,95,583,369,127,244,0,11,1
-429,95,547,369,128,248,0,11,1
-430,95,512,370,129,252,0,11,1
-431,95,474,370,129,255,0,11,1
-432,95,436,370,129,258,0,11,1
-433,95,398,370,129,262,0,11,1
-434,95,360,371,129,264,0,11,1
-435,95,322,371,129,268,0,11,1
-436,95,284,371,129,271,0,11,1
-437,95,247,372,128,274,0,11,1
-438,95,200,369,128,277,0,11,1
-439,95,153,367,128,280,0,11,1
-440,95,106,365,128,283,0,11,1
-441,95,64,362,127,288,0,11,1
-442,95,22,359,127,293,0,11,1
-270,96,1102,435,19,233,0,10,0.70085
-271,96,1109,435,19,233,0,10,1
-272,96,1116,436,19,233,0,10,1
-273,96,1123,437,19,233,0,10,1
-274,96,1130,438,19,233,0,10,1
-275,96,1138,439,19,233,0,10,1
-276,96,1145,440,19,233,0,10,1
-277,96,1152,441,19,233,0,10,1
-278,96,1159,442,19,233,0,10,1
-279,96,1166,443,19,233,0,10,1
-280,96,1174,444,19,233,0,10,1
-281,96,1181,444,19,233,0,10,1
-282,96,1188,445,19,233,0,10,1
-283,96,1195,445,20,233,0,10,1
-284,96,1202,446,20,233,0,10,1
-285,96,1209,447,21,232,0,10,1
-286,96,1216,447,21,233,0,10,1
-287,96,1223,448,21,232,0,10,1
-288,96,1230,448,22,233,0,10,1
-289,96,1237,449,22,232,0,10,0.92834
-290,96,1244,450,23,232,0,10,0.75966
-291,96,1251,449,23,232,0,10,0.7382
-292,96,1258,449,23,232,0,10,0.74678
-293,96,1265,448,23,232,0,10,0.75536
-294,96,1272,448,23,232,0,10,0.75966
-295,96,1279,447,23,232,0,10,0.73498
-296,96,1286,447,23,232,0,10,0.7103
-297,96,1293,446,23,232,0,10,0.68187
-298,96,1300,446,23,232,0,10,0.65236
-299,96,1307,445,23,232,0,10,0.6309
-300,96,1315,445,23,232,0,10,0.59675
-301,96,1322,446,23,232,0,10,0.57189
-302,96,1329,447,23,232,0,10,0.55794
-303,96,1337,449,23,232,0,10,0.55365
-304,96,1344,450,23,232,0,10,0.55794
-305,96,1352,452,23,232,0,10,0.55794
-306,96,1359,453,23,232,0,10,0.56223
-307,96,1366,454,23,232,0,10,0.56652
-308,96,1374,456,23,232,0,10,0.56223
-309,96,1381,457,23,232,0,10,0.56652
-310,96,1389,459,23,232,0,10,0.56652
-311,96,1395,451,23,236,0,10,0.49367
-312,96,1402,454,23,239,0,10,0.47917
-313,96,1410,457,22,243,0,10,0.46311
-314,96,1417,460,23,247,0,10,0.59543
-315,96,1425,463,22,251,0,10,0.60386
-316,96,1432,467,23,253,0,10,0.62057
-317,96,1440,470,22,257,0,10,0.63313
-318,96,1447,473,23,261,0,10,0.95833
-319,96,1455,476,22,265,0,10,1
-320,96,1463,480,22,268,0,10,1
-321,96,1469,479,23,270,0,10,1
-322,96,1475,479,24,271,0,10,1
-323,96,1482,479,24,273,0,10,1
-324,96,1488,479,25,274,0,10,1
-325,96,1495,479,25,275,0,10,1
-326,96,1501,479,26,277,0,10,1
-327,96,1508,479,26,278,0,10,1
-328,96,1514,479,27,279,0,10,1
-329,96,1521,479,27,281,0,10,1
-330,96,1529,479,27,282,0,10,1
-331,96,1534,479,27,282,0,10,1
-332,96,1540,480,27,282,0,10,1
-333,96,1545,481,27,282,0,10,1
-334,96,1551,481,27,282,0,10,1
-335,96,1557,482,27,282,0,10,1
-336,96,1562,483,27,282,0,10,1
-337,96,1568,483,27,282,0,10,1
-338,96,1573,484,27,282,0,10,1
-339,96,1579,485,27,282,0,10,1
-340,96,1585,486,27,282,0,10,1
-341,96,1590,491,27,282,0,10,1
-342,96,1596,497,27,282,0,10,1
-343,96,1602,502,27,282,0,10,1
-344,96,1608,508,27,282,0,10,1
-345,96,1614,514,27,282,0,10,1
-346,96,1619,519,27,282,0,10,1
-347,96,1625,525,27,282,0,10,1
-348,96,1631,530,27,282,0,10,1
-349,96,1637,536,27,282,0,10,1
-350,96,1643,542,27,282,0,10,1
-351,96,1647,535,28,293,0,10,1
-352,96,1652,529,29,304,0,10,1
-353,96,1657,522,30,315,0,10,1
-354,96,1661,516,32,326,0,10,1
-355,96,1666,510,33,337,0,10,1
-356,96,1671,503,33,348,0,10,1
-357,96,1675,497,35,359,0,10,1
-358,96,1680,490,36,370,0,10,1
-359,96,1685,484,37,381,0,10,1
-360,96,1690,478,38,392,0,10,1
-361,96,1695,483,38,392,0,10,1
-362,96,1701,489,38,392,0,10,1
-363,96,1707,495,38,392,0,10,1
-364,96,1712,501,38,392,0,10,1
-365,96,1718,507,38,392,0,10,1
-366,96,1724,513,38,392,0,10,1
-367,96,1729,519,38,392,0,10,1
-368,96,1735,525,38,392,0,10,1
-369,96,1741,531,38,392,0,10,1
-370,96,1747,537,38,392,0,10,1
-371,96,1752,539,38,392,0,10,1
-372,96,1757,541,38,392,0,10,1
-373,96,1762,543,38,392,0,10,1
-374,96,1767,545,38,392,0,10,1
-375,96,1773,547,38,392,0,10,1
-376,96,1778,549,38,392,0,10,1
-377,96,1783,551,38,392,0,10,1
-378,96,1788,553,38,392,0,10,1
-379,96,1793,555,38,392,0,10,1
-380,96,1799,558,38,392,0,10,1
-381,96,1801,554,38,400,0,10,1
-382,96,1804,551,38,407,0,10,1
-383,96,1807,548,37,414,0,10,1
-384,96,1809,545,38,421,0,10,1
-385,96,1812,542,38,429,0,10,1
-386,96,1815,538,37,437,0,10,1
-387,96,1817,535,38,444,0,10,1
-388,96,1820,532,37,451,0,10,1
-389,96,1823,529,37,458,0,10,1
-390,96,1826,526,37,466,0,10,1
-391,96,1823,521,38,476,0,10,1
-392,96,1821,517,38,486,0,10,1
-393,96,1818,513,39,496,0,10,1
-394,96,1816,509,40,506,0,10,1
-395,96,1812,505,40,516,0,10,1
-396,96,1808,501,41,526,0,10,1
-397,96,1804,497,42,536,0,10,1
-398,96,1800,493,43,546,0,10,1
-399,96,1796,489,44,556,0,10,1
-400,96,1792,485,45,566,0,10,1
-401,96,1789,482,39,570,0,10,1
-402,96,1780,481,39,575,0,10,1
-403,96,1771,480,40,580,0,10,1
-404,96,1762,479,41,585,0,10,1
-405,96,1753,479,42,590,0,10,1
-406,96,1744,478,42,595,0,10,1
-407,96,1735,477,43,600,0,10,1
-408,96,1726,476,44,605,0,10,0.99835
-409,96,1718,476,44,610,0,10,0.99018
-410,96,1702,472,44,615,0,10,0.98864
-411,96,1689,471,43,615,0,10,0.99026
-412,96,1677,471,41,614,0,10,0.99187
-413,96,1665,470,39,614,0,10,0.9935
-414,96,1653,470,37,614,0,10,0.9935
-415,96,1637,469,38,615,0,10,0.99351
-416,96,1622,469,39,615,0,10,0.99351
-417,96,1606,469,41,615,0,10,0.99351
-418,96,1591,469,41,615,0,10,0.99351
-419,96,1575,469,43,615,0,10,0.99351
-420,96,1560,469,44,615,0,10,0.99351
-421,96,1536,468,43,615,0,10,0.99513
-422,96,1512,468,42,615,0,10,0.99513
-423,96,1488,468,42,614,0,10,0.99675
-424,96,1465,468,40,614,0,10,0.99675
-425,96,1441,467,39,615,0,10,0.99675
-426,96,1417,467,39,614,0,10,0.99837
-427,96,1393,467,38,614,0,10,0.99837
-428,96,1370,467,37,614,0,10,0.99837
-429,96,1342,467,40,614,0,10,0.99837
-430,96,1314,467,44,615,0,10,0.99675
-431,96,1283,468,42,615,0,10,0.99513
-432,96,1253,469,40,615,0,10,0.99351
-433,96,1222,470,39,615,0,10,0.99188
-434,96,1192,472,36,614,0,10,0.99024
-435,96,1161,473,35,614,0,10,0.98862
-436,96,1131,474,33,614,0,10,0.98699
-437,96,1101,476,31,614,0,10,0.98374
-438,96,1062,481,36,614,0,10,0.97561
-439,96,1024,486,40,614,0,10,0.96748
-440,96,986,491,44,615,0,10,0.95779
-441,96,947,489,43,615,0,10,0.96104
-442,96,909,488,41,615,0,10,0.96266
-443,96,870,487,40,614,0,10,0.96585
-444,96,832,486,38,614,0,10,0.96748
-445,96,784,484,40,614,0,10,0.97073
-446,96,737,483,41,614,0,10,0.97236
-447,96,690,481,42,615,0,10,0.97403
-448,96,643,480,44,615,0,10,0.97565
-449,96,588,479,44,615,0,10,0.97727
-450,96,534,479,44,615,0,10,0.97727
-451,96,485,434,45,655,0,10,0.98628
-452,96,417,393,46,695,0,10,0.98851
-453,96,350,353,47,734,0,10,0.99048
-454,96,283,313,48,774,0,10,0.99097
-455,96,216,273,49,813,0,10,0.99263
-456,96,149,233,50,853,0,10,0.99297
-457,96,74,231,50,853,0,10,0.99532
-509,97,1884,644,71,94,0,4,0.51389
-510,97,1854,645,73,97,0,4,0.90541
-511,97,1824,646,76,100,0,4,1
-512,97,1794,647,79,103,0,4,1
-513,97,1766,647,79,102,0,4,1
-514,97,1738,647,79,102,0,4,1
-515,97,1711,647,78,102,0,4,1
-516,97,1683,647,78,102,0,4,1
-517,97,1656,647,77,102,0,4,1
-518,97,1628,647,77,102,0,4,1
-519,97,1601,647,77,102,0,4,1
-520,97,1573,647,77,102,0,4,1
-521,97,1546,647,76,102,0,4,1
-522,97,1518,647,76,102,0,4,1
-523,97,1491,647,75,102,0,4,1
-524,97,1463,647,75,102,0,4,1
-525,97,1436,647,75,102,0,4,1
-526,97,1411,648,75,102,0,4,1
-527,97,1387,650,75,102,0,4,1
-528,97,1363,652,74,101,0,4,1
-529,97,1339,654,74,101,0,4,1
-530,97,1315,656,73,100,0,4,1
-531,97,1291,658,73,100,0,4,1
-532,97,1267,660,73,100,0,4,1
-533,97,1245,660,74,101,0,4,0.98588
-534,97,1224,661,75,101,0,4,0.95124
-535,97,1203,661,76,102,0,4,0.9188
-536,97,1181,662,78,102,0,4,0.91053
-537,97,1160,663,79,103,0,4,0.85
-538,97,1139,663,80,104,0,4,0.83974
-539,97,1117,664,81,104,0,4,0.80256
-540,97,1096,664,82,105,0,4,0.81541
-541,97,1075,665,83,106,0,4,0.78304
-542,97,1053,666,85,106,0,4,0.78537
-543,97,1032,666,86,107,0,4,0.82759
-544,97,1011,667,87,107,0,4,0.87963
-545,97,990,668,88,108,0,4,0.79817
-546,97,971,668,87,109,0,4,0.80909
-547,97,952,669,87,110,0,4,0.79279
-548,97,934,670,86,110,0,4,0.77477
-549,97,915,670,86,112,0,4,0.75221
-550,97,897,671,85,112,0,4,0.73204
-551,97,878,672,85,113,0,4,0.7144
-552,97,860,673,84,113,0,4,0.72126
-553,97,841,673,84,115,0,4,0.76897
-554,97,823,674,83,115,0,4,0.81527
-555,97,804,675,83,116,0,4,0.86569
-556,97,786,676,82,117,0,4,0.87135
-557,97,769,676,80,117,0,4,0.8847
-558,97,752,676,79,118,0,4,0.91597
-559,97,735,676,78,119,0,4,0.91646
-560,97,718,676,77,119,0,4,0.95417
-561,97,701,676,76,120,0,4,0.98283
-562,97,684,676,75,121,0,4,1
-563,97,667,678,76,122,0,4,1
-564,97,650,680,77,124,0,4,1
-565,97,633,682,79,125,0,4,1
-566,97,616,684,80,127,0,4,1
-567,97,600,686,81,129,0,4,1
-568,97,583,688,82,130,0,4,1
-569,97,566,690,84,132,0,4,1
-570,97,549,692,85,133,0,4,1
-571,97,533,694,86,135,0,4,1
-572,97,516,696,87,137,0,4,1
-573,97,499,698,89,138,0,4,1
-574,97,482,700,90,140,0,4,1
-575,97,466,702,91,142,0,4,1
-576,97,450,704,92,143,0,4,1
-577,97,435,706,93,145,0,4,1
-578,97,419,709,95,146,0,4,1
-579,97,404,711,96,148,0,4,1
-580,97,389,713,96,149,0,4,1
-581,97,373,716,98,150,0,4,1
-582,97,358,718,99,152,0,4,1
-583,97,343,721,100,153,0,4,1
-584,97,328,724,101,154,0,4,1
-585,97,313,727,102,156,0,4,1
-586,97,299,730,102,158,0,4,1
-587,97,284,733,103,160,0,4,1
-588,97,270,736,103,162,0,4,1
-589,97,255,739,104,164,0,4,1
-590,97,241,743,105,165,0,4,1
-591,97,228,747,107,167,0,4,1
-592,97,216,752,108,169,0,4,1
-593,97,203,756,110,172,0,4,1
-594,97,191,761,111,174,0,4,1
-595,97,179,765,112,177,0,4,1
-596,97,166,770,114,179,0,4,1
-597,97,154,774,115,182,0,4,1
-598,97,142,779,117,184,0,4,1
-599,97,127,784,119,186,0,4,1
-600,97,113,789,120,189,0,4,1
-601,97,99,795,121,191,0,4,1
-602,97,85,800,122,194,0,4,1
-603,97,71,805,124,197,0,4,1
-604,97,57,811,125,199,0,4,1
-605,97,43,816,126,202,0,4,1
-606,97,29,821,127,205,0,4,1
-607,97,15,827,129,207,0,4,1
-608,97,0,840,129,207,0,4,0.99231
-609,97,-16,845,129,207,0,4,0.86923
-610,97,-32,850,129,207,0,4,0.74615
-611,97,-48,855,129,207,0,4,0.62308
-600,98,293,477,66,27,0,11,1
-601,98,287,480,67,25,0,11,1
-602,98,285,479,67,25,0,11,1
-603,98,284,479,67,25,0,11,1
-604,98,278,480,66,30,0,11,1
-605,98,275,478,66,30,0,11,1
-606,98,272,477,67,30,0,11,1
-607,98,270,476,67,29,0,11,1
-608,98,267,474,67,30,0,11,1
-609,98,265,473,67,29,0,11,1
-610,98,262,472,68,29,0,11,1
-611,98,260,471,68,29,0,11,1
-612,98,255,472,67,29,0,11,1
-613,98,255,468,67,29,0,11,1
-614,98,251,469,67,29,0,11,1
-615,98,247,469,67,29,0,11,1
-616,98,244,467,67,29,0,11,1
-617,98,243,467,67,29,0,11,1
-618,98,238,467,67,29,0,11,1
-619,98,232,467,67,29,0,11,1
-620,98,230,467,71,29,0,11,1
-621,98,225,469,71,29,0,11,1
-622,98,221,469,71,29,0,11,1
-623,98,219,474,71,29,0,11,1
-624,98,218,471,71,29,0,11,1
-625,98,217,477,71,29,0,11,1
-626,98,215,474,71,30,0,11,1
-627,98,210,479,71,31,0,11,1
-628,98,208,481,72,32,0,11,1
-629,98,207,484,73,33,0,11,1
-630,98,207,483,74,34,0,11,1
-631,98,208,483,74,35,0,11,1
-632,98,207,485,75,36,0,11,1
-633,98,207,485,75,36,0,11,1
-634,98,207,485,75,37,0,11,1
-635,98,205,483,76,38,0,11,1
-636,98,207,487,75,38,0,11,1
-637,98,208,489,74,37,0,11,1
-638,98,209,492,74,35,0,11,1
-639,98,211,493,74,35,0,11,1
-640,98,213,494,74,36,0,11,1
-641,98,215,496,75,36,0,11,1
-642,98,215,496,75,36,0,11,1
-643,98,216,496,75,37,0,11,1
-644,98,219,496,75,37,0,11,1
-645,98,222,497,75,37,0,11,1
-646,98,223,497,76,37,0,11,1
-647,98,225,498,76,37,0,11,1
-648,98,227,499,77,37,0,11,1
-649,98,232,492,77,37,0,11,1
-650,98,234,495,77,37,0,11,1
-651,98,238,498,77,37,0,11,1
-652,98,241,489,78,36,0,11,1
-653,98,244,491,79,35,0,11,1
-654,98,248,493,79,35,0,11,1
-655,98,253,490,79,35,0,11,1
-656,98,258,500,79,35,0,11,1
-657,98,264,503,79,35,0,11,1
-658,98,270,505,80,36,0,11,1
-659,98,276,517,81,37,0,11,1
-660,98,278,515,81,38,0,11,1
-661,98,280,514,82,38,0,11,1
-662,98,284,512,82,39,0,11,1
-663,98,288,511,83,39,0,11,1
-664,98,293,507,84,40,0,11,1
-665,98,295,505,85,40,0,11,1
-666,98,299,502,86,40,0,11,1
-667,98,304,500,86,40,0,11,1
-668,98,309,498,87,40,0,11,1
-669,98,314,495,87,40,0,11,1
-670,98,319,492,88,41,0,11,1
-671,98,324,490,89,40,0,11,1
-672,98,329,487,90,41,0,11,1
-673,98,334,485,91,41,0,11,1
-674,98,338,476,92,41,0,11,1
-675,98,340,469,93,41,0,11,1
-676,98,345,477,93,41,0,11,1
-131,99,1310,458,58,62,0,11,1
-132,99,1306,460,58,62,0,11,1
-133,99,1303,462,58,62,0,11,1
-134,99,1300,464,58,62,0,11,1
-135,99,1297,463,58,62,0,11,1
-136,99,1294,462,58,62,0,11,1
-137,99,1290,462,58,62,0,11,1
-138,99,1287,462,58,62,0,11,1
-139,99,1284,461,58,62,0,11,1
-140,99,1282,461,58,62,0,11,1
-141,99,1279,461,58,62,0,11,1
-142,99,1277,461,58,62,0,11,1
-143,99,1274,461,58,62,0,11,1
-144,99,1272,461,58,62,0,11,1
-145,99,1269,461,58,62,0,11,1
-146,99,1267,461,58,62,0,11,1
-147,99,1264,461,58,62,0,11,1
-148,99,1262,461,58,62,0,11,1
-149,99,1259,461,58,62,0,11,1
-150,99,1255,461,60,61,0,11,1
-151,99,1252,461,61,61,0,11,1
-152,99,1248,461,61,61,0,11,1
-153,99,1245,460,61,61,0,11,1
-154,99,1239,461,61,61,0,11,1
-155,99,1235,460,62,61,0,11,1
-156,99,1231,460,63,60,0,11,1
-157,99,1227,460,62,61,0,11,1
-158,99,1223,459,62,61,0,11,1
-159,99,1219,458,62,61,0,11,1
-160,99,1217,458,61,62,0,11,1
-161,99,1214,458,61,62,0,11,1
-162,99,1211,458,61,62,0,11,1
-163,99,1208,458,61,62,0,11,1
-164,99,1205,458,61,62,0,11,1
-165,99,1201,457,61,62,0,11,1
-166,99,1197,456,62,65,0,11,1
-167,99,1194,456,62,67,0,11,1
-168,99,1193,454,62,67,0,11,1
-1,100,1860,557,41,111,0,8,1
-2,100,1870,559,40,115,0,8,1
-3,100,1880,547,40,115,0,8,1
-4,100,1890,548,39,120,0,8,0.775
-46,101,1480,496,16,72,0,10,1
-47,101,1482,499,16,72,0,10,1
-48,101,1483,499,15,72,0,10,1
-49,101,1484,499,15,72,0,10,1
-50,101,1485,499,15,72,0,10,1
-51,101,1487,500,15,72,0,10,1
-52,101,1490,501,15,72,0,10,1
-53,101,1494,503,15,72,0,10,1
-54,101,1495,503,15,72,0,10,1
-55,101,1496,504,15,72,0,10,1
-56,101,1497,505,15,72,0,10,1
-57,101,1499,503,15,72,0,10,1
-58,101,1499,501,15,73,0,10,1
-59,101,1500,499,14,74,0,10,1
-60,101,1501,499,14,74,0,10,1
-61,101,1503,494,14,74,0,10,1
-44,102,1562,514,12,60,0,10,0.65952
-45,102,1564,518,11,59,0,10,0.61806
-46,102,1566,518,11,59,0,10,0.51389
-47,102,1569,519,11,59,0,10,0.46667
-48,102,1570,518,11,59,0,10,0.30833
-49,102,1575,522,11,59,0,10,0.33333
-50,102,1577,521,11,59,0,10,0.225
-51,102,1581,525,11,59,0,10,0.17222
-52,102,1582,525,11,59,0,10,0.1
-53,102,1583,525,11,59,0,10,0.055556
-54,102,1584,522,11,59,0,10,0.025
-55,102,1590,520,11,59,0,10,0.034722
-362,103,1303,773,60,129,0,10,1
-363,103,1303,775,60,129,0,10,1
-364,103,1304,779,61,130,0,10,1
-365,103,1306,783,62,132,0,10,1
-366,103,1308,787,63,134,0,10,1
-367,103,1310,792,63,134,0,10,1
-368,103,1312,796,64,136,0,10,1
-369,103,1313,800,66,138,0,10,1
-370,103,1315,805,66,138,0,10,1
-371,103,1317,809,67,140,0,10,1
-372,103,1319,813,68,142,0,10,1
-373,103,1321,818,69,143,0,10,1
-374,103,1320,819,69,144,0,10,1
-375,103,1320,820,69,146,0,10,1
-376,103,1320,822,69,147,0,10,1
-377,103,1320,823,68,149,0,10,1
-378,103,1320,825,68,150,0,10,1
-379,103,1320,826,68,151,0,10,1
-380,103,1320,827,67,153,0,10,1
-381,103,1320,829,67,154,0,10,1
-382,103,1320,830,67,156,0,10,1
-383,103,1320,832,67,157,0,10,1
-384,103,1316,835,68,159,0,10,1
-385,103,1312,838,69,161,0,10,1
-386,103,1308,842,70,162,0,10,1
-387,103,1304,845,71,165,0,10,1
-388,103,1300,849,72,166,0,10,1
-389,103,1296,852,73,168,0,10,1
-390,103,1292,855,74,171,0,10,1
-391,103,1288,859,75,172,0,10,1
-392,103,1284,862,76,174,0,10,1
-393,103,1281,866,77,176,0,10,1
-394,103,1272,870,77,176,0,10,1
-395,103,1263,874,77,176,0,10,1
-396,103,1255,878,77,176,0,10,1
-397,103,1247,880,77,176,0,10,1
-398,103,1240,883,77,176,0,10,1
-1,104,773,530,19,31,0,10,1
-2,104,773,521,19,31,0,10,1
-3,104,774,531,18,30,0,10,1
-4,104,777,529,18,30,0,10,1
-5,104,776,528,18,30,0,10,1
-6,104,777,538,17,32,0,10,1
-7,104,777,532,17,32,0,10,1
-8,104,778,539,17,32,0,10,1
-9,104,777,539,17,32,0,10,1
-10,104,776,538,17,32,0,10,1
-11,104,775,539,17,32,0,10,1
-12,104,775,540,17,32,0,10,1
-13,104,775,527,17,32,0,10,1
-14,104,773,533,17,32,0,10,1
-15,104,774,532,17,32,0,10,1
-16,104,773,532,17,32,0,10,1
-17,104,773,532,17,32,0,10,1
-18,104,772,532,17,32,0,10,1
-19,104,772,532,17,32,0,10,1
-20,104,772,532,17,32,0,10,1
-21,104,772,533,17,32,0,10,1
-22,104,771,534,17,32,0,10,1
-23,104,771,536,17,32,0,10,1
-24,104,771,538,17,32,0,10,0.94444
-25,104,771,540,17,32,0,10,0.11111
-26,104,770,541,17,32,0,10,0
-27,104,770,542,17,32,0,10,0
-28,104,769,545,17,32,0,10,0
-29,104,769,549,17,32,0,10,0
-30,104,769,552,17,32,0,10,0
-31,104,768,560,17,32,0,10,0
-32,104,768,559,17,32,0,10,0
-33,104,768,549,17,32,0,10,0
-34,104,766,550,16,37,0,10,0.058824
-35,104,767,544,16,37,0,10,1
-36,104,765,541,16,37,0,10,1
-37,104,765,539,16,37,0,10,1
-38,104,764,538,16,37,0,10,1
-39,104,765,534,16,37,0,10,1
-40,104,763,533,16,37,0,10,1
-41,104,762,534,16,37,0,10,1
-42,104,762,535,16,37,0,10,1
-43,104,762,536,16,37,0,10,1
-44,104,762,538,16,37,0,10,1
-45,104,763,538,16,37,0,10,1
-46,104,762,539,16,37,0,10,1
-47,104,761,540,16,37,0,10,1
-48,104,760,542,16,37,0,10,1
-49,104,759,544,16,37,0,10,1
-50,104,760,543,16,37,0,10,1
-51,104,759,544,16,37,0,10,1
-52,104,758,544,16,37,0,10,1
-53,104,758,545,16,37,0,10,1
-54,104,756,544,16,37,0,10,1
-55,104,755,544,16,37,0,10,1
-56,104,754,544,16,37,0,10,1
-57,104,754,544,16,37,0,10,1
-58,104,754,541,16,37,0,10,1
-59,104,752,540,16,37,0,10,1
-60,104,750,539,16,37,0,10,1
-61,104,748,538,16,37,0,10,1
-62,104,747,537,16,38,0,10,1
-63,104,747,543,16,38,0,10,1
-64,104,747,536,16,38,0,10,1
-65,104,744,541,16,38,0,10,1
-66,104,743,543,16,38,0,10,1
-67,104,741,538,16,38,0,10,1
-68,104,739,542,16,38,0,10,1
-69,104,736,541,16,38,0,10,1
-70,104,734,540,16,38,0,10,1
-71,104,731,540,16,38,0,10,1
-72,104,729,539,16,38,0,10,1
-73,104,727,539,16,38,0,10,1
-74,104,723,538,16,39,0,10,1
-75,104,720,538,16,39,0,10,1
-76,104,716,538,16,40,0,10,1
-77,104,713,538,16,40,0,10,1
-78,104,709,538,16,41,0,10,1
-79,104,706,538,16,41,0,10,1
-80,104,703,538,16,42,0,10,1
-81,104,698,537,16,42,0,10,1
-82,104,694,537,16,42,0,10,1
-83,104,691,538,16,42,0,10,1
-84,104,686,540,16,42,0,10,1
-85,104,682,541,16,42,0,10,1
-86,104,677,541,16,42,0,10,1
-87,104,674,542,16,42,0,10,1
-88,104,670,543,16,42,0,10,1
-89,104,665,544,16,42,0,10,1
-90,104,660,547,16,42,0,10,1
-91,104,655,551,16,42,0,10,1
-92,104,651,552,16,42,0,10,1
-93,104,646,553,16,42,0,10,1
-94,104,642,557,16,42,0,10,1
-95,104,636,556,16,42,0,10,1
-96,104,633,561,16,42,0,10,1
-97,104,627,558,16,42,0,10,1
-98,104,622,560,15,47,0,10,1
-99,104,617,559,15,47,0,10,1
-100,104,613,560,15,47,0,10,1
-101,104,608,560,15,47,0,10,1
-102,104,602,561,15,47,0,10,1
-103,104,598,561,15,47,0,10,1
-104,104,592,559,15,47,0,10,1
-105,104,587,560,15,47,0,10,1
-106,104,581,559,15,47,0,10,1
-107,104,578,559,15,47,0,10,1
-108,104,572,558,15,47,0,10,1
-109,104,568,558,15,47,0,10,1
-110,104,561,557,15,47,0,10,1
-111,104,555,558,15,47,0,10,1
-112,104,550,559,15,47,0,10,1
-113,104,543,560,15,47,0,10,1
-114,104,537,560,15,47,0,10,1
-1,105,672,510,15,87,0,10,0.60227
-2,105,672,501,15,87,0,10,0.59659
-3,105,669,513,15,87,0,10,0.53977
-4,105,673,510,15,87,0,10,0.79545
-5,105,672,506,15,87,0,10,0.74787
-6,105,673,522,14,80,0,10,0.67407
-7,105,672,515,14,80,0,10,0.77942
-8,105,672,523,14,80,0,10,0.77613
-9,105,672,518,13,84,0,10,0.82605
-10,105,669,518,13,83,0,10,0.81633
-11,105,669,518,12,86,0,10,1
-12,105,668,520,12,86,0,10,1
-13,105,667,504,11,91,0,10,1
-14,105,666,512,11,91,0,10,0.73551
-15,105,665,512,11,91,0,10,1
-16,105,665,512,11,91,0,10,1
-17,105,662,512,11,91,0,10,0.60326
-18,105,660,512,11,91,0,10,0.53714
-19,105,659,512,11,91,0,10,0.6087
-20,105,658,513,11,91,0,10,0.66938
-21,105,658,516,11,91,0,10,0.72826
-22,105,658,520,11,91,0,10,1
-23,105,656,520,11,91,0,10,0.79076
-24,105,653,522,11,91,0,10,0.72101
-25,105,653,523,11,91,0,10,0.79348
-26,105,652,525,11,91,0,10,0.79348
-27,105,649,529,11,91,0,10,0.72101
-28,105,650,532,11,91,0,10,0.8587
-6,106,699,524,15,85,0,10,1
-7,106,700,514,12,84,0,10,1
-8,106,699,518,12,84,0,10,1
-9,106,697,518,12,84,0,10,1
-10,106,696,519,12,84,0,10,1
-11,106,695,520,12,84,0,10,1
-12,106,693,519,11,88,0,10,1
-13,106,693,508,11,87,0,10,1
-14,106,690,513,11,87,0,10,1
-15,106,690,512,11,87,0,10,1
-16,106,690,512,11,87,0,10,1
-17,106,688,515,11,87,0,10,1
-18,106,687,515,11,87,0,10,1
-19,106,687,515,11,87,0,10,1
-20,106,685,516,11,87,0,10,1
-21,106,684,517,11,87,0,10,1
-22,106,683,518,11,87,0,10,1
-23,106,683,519,11,87,0,10,1
-24,106,682,520,10,90,0,10,1
-25,106,681,522,10,92,0,10,1
-26,106,680,522,10,92,0,10,1
-27,106,678,524,10,92,0,10,1
-28,106,677,525,10,92,0,10,1
-29,106,676,531,10,92,0,10,1
-30,106,675,538,10,92,0,10,1
-31,106,674,545,10,92,0,10,1
-32,106,672,540,10,91,0,10,1
-33,106,669,532,10,91,0,10,1
-34,106,669,537,12,90,0,10,1
-35,106,669,528,12,90,0,10,1
-36,106,667,525,12,90,0,10,1
-37,106,665,523,12,90,0,10,1
-38,106,664,521,12,91,0,10,1
-39,106,663,519,12,93,0,10,1
-40,106,662,517,12,94,0,10,1
-41,106,662,515,11,96,0,10,1
-42,106,660,516,11,96,0,10,1
-43,106,659,517,11,96,0,10,1
-44,106,658,520,11,96,0,10,1
-45,106,657,520,11,96,0,10,1
-46,106,657,521,11,96,0,10,1
-47,106,657,522,11,96,0,10,1
-48,106,653,521,10,101,0,10,1
-49,106,653,524,10,101,0,10,1
-50,106,652,523,10,101,0,10,1
-51,106,651,522,10,101,0,10,0.11765
-52,106,649,524,12,100,0,10,1
-53,106,648,526,13,100,0,10,1
-54,106,645,525,13,100,0,10,1
-55,106,643,525,13,100,0,10,1
-56,106,640,524,13,100,0,10,1
-57,106,638,524,13,100,0,10,1
-58,106,635,523,13,100,0,10,1
-59,106,633,523,13,100,0,10,1
-60,106,631,523,13,100,0,10,1
-61,106,629,520,13,102,0,10,1
-62,106,628,518,12,103,0,10,1
-63,106,627,529,13,103,0,10,0.88462
-64,106,624,521,13,102,0,10,0.18585
-65,106,621,528,13,101,0,10,0.11765
-66,106,618,536,13,100,0,10,0.42079
-67,106,617,525,13,99,0,10,0.13
-68,106,613,533,13,99,0,10,0.56
-69,106,607,524,12,107,0,10,0.29487
-70,106,605,524,12,107,0,10,0.21368
-71,106,602,522,12,107,0,10,0.35185
-72,106,597,525,12,107,0,10,0.26353
-73,106,594,523,12,107,0,10,0.34473
-74,106,590,523,12,107,0,10,0.34473
-75,106,586,525,12,107,0,10,0.33048
-76,106,580,524,14,106,0,10,0.31215
-77,106,578,526,14,106,0,10,0.41433
-78,106,572,523,13,111,0,10,0.38776
-79,106,569,522,13,111,0,10,0.51531
-80,106,565,522,13,111,0,10,0.58036
-81,106,560,522,13,111,0,10,0.58036
-82,106,554,524,13,111,0,10,0.51531
-83,106,549,523,13,111,0,10,0.52041
-84,106,541,521,13,111,0,10,0.13393
-85,106,536,528,13,111,0,10,0.3125
-86,106,530,530,13,111,0,10,0.24235
-87,106,525,532,13,111,0,10,0.3125
-88,106,519,534,13,111,0,10,0.3125
-89,106,514,536,13,111,0,10,0.375
-90,106,508,537,13,111,0,10,0.098214
-91,106,502,539,13,111,0,10,0.089286
-92,106,496,541,13,111,0,10,0.089286
-93,106,490,543,12,111,0,10,0.080357
-94,106,484,546,12,110,0,10,0.063063
-95,106,479,549,11,110,0,10,0.045045
-96,106,470,547,13,115,0,10,0.086207
-97,106,465,548,13,115,0,10,0.086207
-98,106,458,549,13,115,0,10,0.094828
-99,106,451,552,13,115,0,10,0.45135
-100,106,444,550,13,115,0,10,0.077586
-101,106,438,549,13,115,0,10,0.086207
-102,106,432,551,13,115,0,10,0.068966
-103,106,423,553,13,115,0,10,0.58621
-104,106,416,552,13,115,0,10,0.59483
-105,106,411,544,11,126,0,10,0.74803
-106,106,407,548,12,122,0,10,0.94059
-107,106,399,547,12,122,0,10,1
-108,106,391,546,12,122,0,10,1
-109,106,385,549,12,122,0,10,1
-110,106,377,548,12,122,0,10,1
-111,106,368,550,12,122,0,10,1
-112,106,363,552,12,122,0,10,1
-113,106,354,552,12,122,0,10,1
-114,106,345,554,12,122,0,10,1
-115,106,338,555,12,122,0,10,1
-116,106,328,552,11,127,0,10,1
-117,106,320,553,10,127,0,10,1
-118,106,312,554,10,127,0,10,1
-119,106,304,555,10,127,0,10,1
-120,106,297,556,9,128,0,10,1
-121,106,289,558,10,125,0,10,1
-122,106,278,559,13,130,0,10,1
-123,106,271,562,10,126,0,10,1
-124,106,261,558,9,131,0,10,1
-125,106,253,559,11,132,0,10,1
-126,106,244,561,14,133,0,10,1
-127,106,239,553,11,144,0,10,1
-128,106,230,557,11,141,0,10,1
-129,106,221,555,11,143,0,10,1
-130,106,211,562,12,141,0,10,1
-131,106,202,540,11,160,0,10,0.21118
-132,106,196,552,10,154,0,10,1
-133,106,183,552,17,153,0,10,0.15584
-134,106,177,556,17,153,0,10,1
-135,106,164,563,16,147,0,10,1
-136,106,156,564,16,147,0,10,1
-137,106,150,565,16,147,0,10,1
-138,106,137,569,16,147,0,10,1
-139,106,128,568,16,147,0,10,1
-140,106,124,568,16,147,0,10,1
-141,106,115,569,16,147,0,10,0.087838
-142,106,106,572,16,147,0,10,1
-143,106,100,569,16,147,0,10,0.081081
-144,106,91,571,16,147,0,10,1
-145,106,81,570,16,147,0,10,0.074324
-146,106,72,574,16,147,0,10,1
-147,106,61,574,16,147,0,10,1
-148,106,53,573,15,151,0,10,1
-149,106,44,576,15,151,0,10,1
-150,106,33,577,15,151,0,10,1
-151,106,23,581,15,151,0,10,1
-152,106,13,582,15,151,0,10,1
-153,106,4,583,15,151,0,10,1
-76,107,1419,541,13,43,0,10,1
-77,107,1418,541,12,46,0,10,1
-78,107,1416,541,16,46,0,10,1
-79,107,1415,541,16,44,0,10,1
-80,107,1414,539,14,46,0,10,1
-81,107,1414,540,15,45,0,10,0.9375
-82,107,1408,540,17,44,0,10,1
-83,107,1407,541,15,44,0,10,1
-84,107,1406,540,16,45,0,10,1
-85,107,1403,542,22,46,0,10,0.91304
-86,107,1401,540,19,48,0,10,1
-87,107,1399,542,16,47,0,10,1
-88,107,1398,542,16,49,0,10,1
-89,107,1396,544,16,49,0,10,1
-90,107,1392,545,16,51,0,10,1
-91,107,1391,545,16,51,0,10,1
-92,107,1387,547,16,48,0,10,1
-93,107,1384,551,16,45,0,10,1
-94,107,1382,550,16,47,0,10,1
-95,107,1380,550,16,47,0,10,1
-96,107,1377,554,16,46,0,10,1
-97,107,1375,554,16,47,0,10,1
-98,107,1373,556,16,47,0,10,1
-99,107,1370,556,16,48,0,10,1
-100,107,1366,556,16,47,0,10,1
-101,107,1364,552,16,52,0,10,1
-102,107,1361,557,16,47,0,10,1
-103,107,1358,557,16,47,0,10,1
-104,107,1356,559,16,45,0,10,1
-105,107,1355,558,16,46,0,10,1
-106,107,1351,561,16,44,0,10,1
-107,107,1347,559,16,45,0,10,1
-108,107,1345,556,16,48,0,10,1
-109,107,1344,559,16,47,0,10,1
-110,107,1339,561,16,45,0,10,1
-111,107,1336,560,16,46,0,10,1
-112,107,1334,559,16,48,0,10,1
-113,107,1329,561,16,46,0,10,1
-114,107,1325,557,16,49,0,10,0.058824
-115,107,1321,562,16,44,0,10,0
-116,107,1319,559,16,47,0,10,1
-117,107,1313,561,16,44,0,10,0
-118,107,1313,561,16,45,0,10,0
-119,107,1308,561,16,45,0,10,1
-120,107,1304,559,16,47,0,10,1
-121,107,1300,559,16,47,0,10,0
-122,107,1297,556,16,50,0,10,0
-123,107,1294,559,16,49,0,10,1
-124,107,1291,559,16,47,0,10,0
-125,107,1287,558,16,48,0,10,0
-126,107,1284,558,15,48,0,10,0
-127,107,1280,559,15,48,0,10,0
-128,107,1277,561,15,47,0,10,0
-129,107,1274,561,15,48,0,10,0
-130,107,1271,561,15,48,0,10,0
-131,107,1266,562,17,51,0,10,1
-132,107,1264,559,16,51,0,10,0.17647
-133,107,1259,559,16,53,0,10,0.29412
-134,107,1255,559,15,54,0,10,0.5625
-135,107,1252,559,18,54,0,10,0.42105
-136,107,1248,558,16,55,0,10,0.47059
-137,107,1245,559,15,55,0,10,0.5
-138,107,1241,559,18,53,0,10,0.52632
-69,108,1478,503,8,89,0,10,1
-70,108,1476,501,12,89,0,10,1
-71,108,1478,502,10,90,0,10,1
-72,108,1478,527,9,66,0,10,1
-144,109,1265,515,13,103,0,10,0.13049
-145,109,1262,514,13,103,0,10,0.06456
-146,109,1258,520,13,103,0,10,0
-147,109,1255,522,13,103,0,10,0
-148,109,1251,516,12,108,0,10,0.076923
-149,109,1249,515,12,108,0,10,0
-150,109,1247,517,12,108,0,10,0
-151,109,1242,516,12,108,0,10,0
-152,109,1237,516,12,108,0,10,0
-153,109,1232,515,12,108,0,10,0.076923
-154,109,1227,515,12,108,0,10,0.15385
-155,109,1224,515,12,108,0,10,0.076923
-156,109,1220,515,12,108,0,10,0.15385
-157,109,1217,516,12,108,0,10,0.076923
-158,109,1214,516,12,108,0,10,0
-159,109,1211,516,12,108,0,10,0
-160,109,1209,516,12,108,0,10,0
-161,109,1205,515,12,109,0,10,0
-162,109,1201,515,12,109,0,10,0
-163,109,1197,514,12,110,0,10,0
-164,109,1194,514,12,111,0,10,0
-165,109,1191,514,12,112,0,10,0
-166,109,1189,514,12,113,0,10,0
-167,109,1186,512,12,114,0,10,0
-168,109,1183,511,12,115,0,10,0
-169,109,1180,509,12,116,0,10,0
-170,109,1178,508,11,117,0,10,0
-171,109,1177,507,11,117,0,10,0
-172,109,1176,507,11,117,0,10,0
-173,109,1175,507,11,117,0,10,0
-174,109,1172,511,11,117,0,10,0
-175,109,1170,507,11,117,0,10,0
-176,109,1169,507,11,117,0,10,0
-350,110,1638,614,24,142,0,10,0.0044755
-351,110,1641,618,24,142,0,10,0.0083916
-352,110,1645,622,24,142,0,10,0.0058741
-353,110,1648,626,23,142,0,10,0.0078671
-354,110,1651,630,22,142,0,10,0.0091213
-355,110,1654,634,22,142,0,10,0.010946
-356,110,1659,632,22,142,0,10,0.23016
-357,110,1668,638,22,142,0,10,0.30435
-358,110,1669,637,22,146,0,10,0.47826
-359,110,1671,637,21,150,0,10,0.63636
-360,110,1676,643,21,150,0,10,0.63636
-361,110,1683,644,21,150,0,10,0.54545
-362,110,1686,651,21,150,0,10,0.68182
-363,110,1689,655,21,152,0,10,0.81818
-364,110,1695,663,22,152,0,10,0.73913
-365,110,1701,661,22,152,0,10,0.73913
-366,110,1703,666,22,152,0,10,0.91304
-367,110,1711,671,22,152,0,10,0.78261
-368,110,1716,679,22,152,0,10,0.82609
-369,110,1722,679,22,152,0,10,0.82609
-370,110,1726,681,22,152,0,10,0.91304
-371,110,1730,683,22,152,0,10,0.95652
-372,110,1733,683,22,152,0,10,1
-373,110,1737,683,22,152,0,10,1
-374,110,1737,680,27,156,0,10,1
-375,110,1738,677,31,161,0,10,1
-376,110,1738,680,31,161,0,10,1
-377,110,1743,680,31,161,0,10,1
-378,110,1749,682,31,161,0,10,1
-379,110,1750,681,31,161,0,10,1
-380,110,1752,681,31,161,0,10,1
-381,110,1753,681,31,161,0,10,1
-382,110,1754,681,31,161,0,10,1
-383,110,1757,678,30,169,0,10,1
-384,110,1759,678,29,172,0,10,1
-385,110,1761,678,29,176,0,10,1
-386,110,1760,677,29,178,0,10,1
-387,110,1760,677,28,179,0,10,1
-388,110,1760,677,28,180,0,10,1
-389,110,1758,679,28,181,0,10,1
-390,110,1756,682,28,182,0,10,1
-391,110,1754,684,28,183,0,10,1
-392,110,1752,687,28,184,0,10,1
-393,110,1747,688,29,185,0,10,1
-394,110,1743,689,29,186,0,10,1
-395,110,1739,690,29,187,0,10,1
-396,110,1735,691,29,188,0,10,1
-397,110,1731,692,29,189,0,10,1
-398,110,1727,693,30,191,0,10,1
-399,110,1720,696,30,191,0,10,1
-400,110,1713,699,30,191,0,10,1
-401,110,1705,698,31,194,0,10,1
-402,110,1698,698,31,197,0,10,1
-403,110,1691,697,31,201,0,10,1
-404,110,1684,697,32,204,0,10,1
-525,111,1367,541,13,140,0,10,1
-526,111,1344,541,12,141,0,10,1
-527,111,1316,536,11,141,0,10,1
-528,111,1294,538,11,142,0,10,1
-529,111,1270,542,11,142,0,10,1
-530,111,1250,540,11,142,0,10,1
-531,111,1224,541,11,142,0,10,1
-532,111,1200,541,13,140,0,10,1
-533,111,1180,542,13,142,0,10,1
-534,111,1154,542,13,142,0,10,1
-535,111,1133,544,15,142,0,10,1
-536,111,1114,537,15,148,0,10,1
-537,111,1092,536,15,148,0,10,1
-538,111,1070,539,15,148,0,10,1
-539,111,1048,540,15,148,0,10,1
-540,111,1027,534,14,155,0,10,1
-541,111,1007,538,14,155,0,10,1
-542,111,988,541,14,155,0,10,1
-543,111,974,533,15,162,0,10,1
-544,111,948,537,15,162,0,10,0.91411
-545,111,929,534,15,162,0,10,1
-546,111,915,534,15,162,0,10,1
-547,111,893,534,17,161,0,10,1
-548,111,878,530,14,165,0,10,1
-549,111,860,530,14,165,0,10,1
-550,111,842,532,15,165,0,10,1
-551,111,823,532,15,165,0,10,1
-552,111,804,523,15,175,0,10,1
-553,111,785,523,15,175,0,10,1
-554,111,768,524,15,175,0,10,1
-561,112,689,408,85,135,0,11,1
-562,112,668,409,95,135,0,11,1
-563,112,654,409,95,135,0,11,1
-564,112,638,410,95,135,0,11,1
-565,112,620,409,95,135,0,11,1
-566,112,605,409,95,135,0,11,1
-567,112,589,410,95,135,0,11,1
-568,112,565,409,95,135,0,11,1
-569,112,554,409,95,135,0,11,1
-570,112,538,408,95,135,0,11,1
-571,112,521,406,95,143,0,11,1
-572,112,507,406,95,143,0,11,1
-573,112,485,403,95,143,0,11,1
-574,112,471,406,95,143,0,11,1
-575,112,453,400,98,154,0,11,1
-576,112,439,403,98,154,0,11,1
-577,112,419,399,98,155,0,11,1
-578,112,406,401,96,155,0,11,1
-579,112,394,397,96,155,0,11,1
-580,112,372,393,105,162,0,11,1
-581,112,362,393,105,162,0,11,1
-582,112,340,391,110,161,0,11,1
-583,112,327,391,110,161,0,11,1
-584,112,310,386,112,165,0,11,1
-585,112,294,388,114,165,0,11,1
-567,113,621,544,16,255,0,10,0.54688
-568,113,602,545,15,264,0,10,0.53962
-569,113,588,545,14,272,0,10,0.53114
-570,113,571,545,14,272,0,10,0.53846
-571,113,556,550,14,272,0,10,0.52747
-572,113,536,547,13,275,0,10,0.52899
-573,113,523,548,15,275,0,10,0.54348
-574,113,504,549,15,285,0,10,0.52448
-575,113,491,551,15,285,0,10,0.51399
-579,114,490,514,24,303,0,10,0.84
-580,114,475,518,24,304,0,10,0.82636
-581,114,463,522,25,304,0,10,0.85259
-582,114,446,522,25,304,0,10,0.81551
-583,114,432,525,25,304,0,10,0.81387
-584,114,421,527,25,305,0,10,0.87041
-585,114,406,523,25,311,0,10,0.8554
-586,114,395,528,25,311,0,10,0.90508
-587,114,381,519,25,325,0,10,0.9075
-588,114,369,523,25,325,0,10,0.93334
-589,114,356,518,24,335,0,10,0.94524
-590,114,345,518,25,335,0,10,0.97459
-591,114,332,523,25,335,0,10,0.94872
-592,114,319,520,24,344,0,10,0.92139
-620,115,265,491,11,135,0,10,0.26471
-621,115,265,495,11,131,0,10,0.27273
-622,115,261,495,15,133,0,10,0.27612
-623,115,256,501,12,135,0,10,0.25
-624,115,255,500,13,130,0,10,0.27481
-625,115,253,501,15,144,0,10,0.24828
-626,115,250,500,13,135,0,10,0.25
-627,115,245,505,12,138,0,10,0.28058
-628,115,247,510,13,135,0,10,0.25
-629,115,246,511,12,141,0,10,0.23239
-630,115,246,512,12,139,0,10,0.24286
-631,115,246,513,12,138,0,10,0.22302
-632,115,246,515,12,142,0,10,0.22378
-633,115,246,516,12,139,0,10,0.22857
-634,115,247,518,12,145,0,10,0.21918
-635,115,247,519,12,139,0,10,0.22143
-636,115,248,520,13,144,0,10,0.2
-637,115,248,521,12,145,0,10,0.20548
-638,115,248,526,14,147,0,10,0.20946
-639,115,250,525,12,144,0,10,0.22069
-640,115,252,526,15,148,0,10,0.26174
-641,115,253,527,15,147,0,10,0.35008
-1,116,806,503,9,51,0,10,0.73462
-2,116,807,492,9,57,0,10,1
-3,116,807,495,10,57,0,10,0.8558
-4,116,808,499,10,56,0,10,1
-5,116,809,502,10,56,0,10,1
-6,116,810,506,10,56,0,10,1
-7,116,810,506,10,56,0,10,1
-8,116,810,506,10,57,0,10,1
-9,116,810,507,10,57,0,10,1
-10,116,810,507,10,57,0,10,1
-11,116,810,507,10,58,0,10,1
-569,117,1872,555,29,196,0,10,0.778
-570,117,1867,556,29,196,0,10,1
-571,117,1862,558,29,196,0,10,1
-572,117,1857,560,29,195,0,10,1
-573,117,1852,561,29,196,0,10,1
-574,117,1847,563,29,196,0,10,1
-575,117,1842,565,29,195,0,10,1
-576,117,1837,566,29,196,0,10,1
-577,117,1832,568,29,195,0,10,1
-578,117,1827,570,29,195,0,10,1
-579,117,1822,572,29,195,0,10,1
-580,117,1819,573,29,195,0,10,1
-581,117,1817,574,29,196,0,10,1
-582,117,1814,576,29,195,0,10,1
-583,117,1812,577,29,196,0,10,1
-584,117,1810,579,29,196,0,10,1
-585,117,1810,579,29,195,0,10,1
-586,117,1810,579,29,195,0,10,1
-587,117,1810,579,29,195,0,10,1
-588,117,1811,579,29,196,0,10,1
-589,117,1814,575,28,201,0,10,1
-590,117,1815,569,28,211,0,10,1
-595,118,1735,563,24,201,0,10,1
-596,118,1741,561,24,202,0,10,1
-597,118,1747,559,24,203,0,10,1
-598,118,1753,558,24,204,0,10,1
-599,118,1759,558,24,205,0,10,1
-600,118,1766,558,24,206,0,10,1
-601,118,1773,558,23,208,0,10,1
-602,118,1780,558,23,209,0,10,1
-603,118,1787,558,22,211,0,10,1
-604,118,1794,558,22,212,0,10,1
-605,118,1801,559,22,213,0,10,1
-606,118,1811,562,22,213,0,10,1
-607,118,1821,565,22,214,0,10,1
-608,118,1831,568,22,215,0,10,0.56944
-609,118,1841,571,22,215,0,10,0.5787
-610,118,1851,574,22,216,0,10,0.60829
-611,118,1861,577,22,217,0,10,0.63761
-612,118,1871,580,22,218,0,10,0.67123
-613,118,1881,581,21,223,0,10,0.70536
-614,118,1891,583,20,227,0,10,0.73684
-707,119,1316,542,31,62,0,10,1
-708,119,1322,541,30,62,0,10,1
-709,119,1328,541,30,62,0,10,1
-710,119,1335,541,28,61,0,10,1
-711,119,1341,541,28,61,0,10,1
-712,119,1348,541,26,61,0,10,1
-713,119,1354,540,26,61,0,10,1
-714,119,1360,540,25,61,0,10,1
-715,119,1367,540,24,60,0,10,1
-716,119,1373,540,23,60,0,10,1
-717,119,1380,540,22,60,0,10,1
-718,119,1385,537,23,59,0,10,1
-719,119,1391,543,23,60,0,10,1
-720,119,1397,545,23,60,0,10,1
-721,119,1403,547,23,60,0,10,1
-722,119,1409,549,23,60,0,10,1
-723,119,1415,552,23,59,0,10,1
-724,119,1421,554,23,59,0,10,1
-725,119,1427,556,23,59,0,10,1
-726,119,1433,558,23,59,0,10,1
-727,119,1440,561,22,59,0,10,1
-728,119,1446,569,22,60,0,10,1
-729,119,1451,569,23,60,0,10,1
-730,119,1457,570,23,60,0,10,1
-731,119,1463,571,23,60,0,10,1
-732,119,1468,570,23,60,0,10,1
-733,119,1473,569,24,61,0,10,1
-734,119,1478,568,24,61,0,10,1
-735,119,1483,567,25,62,0,10,1
-736,119,1488,566,25,62,0,10,1
-737,119,1494,565,25,63,0,10,1
-738,119,1500,568,25,63,0,10,1
-739,119,1506,571,25,64,0,10,1
-740,119,1510,572,25,64,0,10,1
-741,119,1514,573,25,64,0,10,1
-742,119,1518,575,26,64,0,10,1
-743,119,1522,576,26,64,0,10,1
-744,119,1526,577,26,64,0,10,1
-745,119,1531,579,26,64,0,10,1
-746,119,1535,580,25,63,0,10,1
-747,119,1539,581,25,63,0,10,1
-748,119,1542,581,25,63,0,10,1
-749,119,1545,582,25,63,0,10,1
-750,119,1549,583,25,63,0,10,1
-259,120,1258,516,16,93,0,10,0.45745
-260,120,1265,511,17,93,0,10,0.5
-261,120,1270,514,16,93,0,10,0.45745
-262,120,1278,514,16,97,0,10,0.42857
-263,120,1286,510,16,100,0,10,0.45545
-264,120,1294,507,16,108,0,10,0.44954
-265,120,1300,500,13,121,0,10,0.69087
-266,120,1311,505,13,121,0,10,1
-267,120,1319,507,13,121,0,10,1
-268,120,1327,505,13,124,0,10,1
-269,120,1335,503,14,127,0,10,1
-270,120,1343,501,14,130,0,10,1
-271,120,1352,499,14,134,0,10,1
-272,120,1360,498,15,136,0,10,1
-273,120,1368,496,15,139,0,10,1
-274,120,1377,494,15,143,0,10,1
-275,120,1385,492,15,146,0,10,1
-276,120,1393,490,16,149,0,10,1
-277,120,1402,489,16,152,0,10,1
-278,120,1410,490,16,152,0,10,0.82353
-474,121,1181,763,75,509,0,10,0.62353
-475,121,1122,766,75,509,0,10,0.61765
-476,121,1063,770,76,508,0,10,0.611
-477,121,1005,774,76,508,0,10,0.17878
-478,121,938,784,75,510,0,10,0.58121
-479,121,871,794,74,512,0,10,0.55945
-480,121,804,804,74,514,0,10,0.53786
-481,121,727,795,74,516,0,10,0.55319
-504,122,1881,551,15,112,0,10,0.89381
-505,122,1851,552,15,112,0,10,0.90265
-506,122,1822,554,15,112,0,10,0.90265
-507,122,1792,556,15,112,0,10,0.91482
-508,122,1763,557,15,112,0,10,0.89491
-509,122,1734,559,14,112,0,10,0.88555
-510,122,1704,561,15,112,0,10,0.88496
-511,122,1675,562,14,112,0,10,0.9115
-512,122,1645,564,15,112,0,10,0.90265
-513,122,1616,566,14,112,0,10,0.14218
-514,122,1587,568,14,112,0,10,0.14159
-515,122,1558,567,14,112,0,10,0.3056
-675,123,1107,516,22,55,0,10,1
-676,123,1115,517,21,55,0,10,1
-677,123,1123,518,21,55,0,10,1
-678,123,1131,519,21,55,0,10,1
-679,123,1139,521,21,54,0,10,1
-680,123,1150,527,21,55,0,10,1
-681,123,1152,541,22,55,0,10,1
-682,123,1161,541,22,55,0,10,1
-683,123,1168,532,22,55,0,10,1
-684,123,1175,523,22,55,0,10,1
-512,124,1858,559,106,106,0,3,0.56223
-513,124,1828,555,121,110,0,3,0.73704
-514,124,1798,560,134,108,0,3,0.88121
-515,124,1760,558,134,108,0,3,0.95923
-516,124,1732,555,129,109,0,3,0.96224
-517,124,1703,553,128,107,0,3,0.96885
-518,124,1675,551,126,105,0,3,0.97697
-519,124,1645,549,125,104,0,3,0.98201
-520,124,1615,548,124,103,0,3,0.98615
-521,124,1585,547,123,102,0,3,0.99107
-522,124,1558,545,122,102,0,3,0.99708
-523,124,1531,543,121,102,0,3,1
-524,124,1505,542,119,102,0,3,1
-525,124,1480,543,117,97,0,3,1
-526,124,1452,542,117,97,0,3,1
-527,124,1427,542,114,96,0,3,1
-528,124,1403,541,112,95,0,3,1
-529,124,1379,541,110,94,0,3,1
-530,124,1355,542,110,94,0,3,1
-531,124,1332,541,109,93,0,3,1
-532,124,1309,541,108,92,0,3,1
-533,124,1286,540,107,92,0,3,1
-534,124,1263,540,106,91,0,3,1
-535,124,1241,537,105,90,0,3,1
-536,124,1220,538,104,90,0,3,1
-537,124,1199,540,103,89,0,3,1
-538,124,1179,542,102,89,0,3,1
-539,124,1159,537,103,89,0,3,1
-540,124,1136,539,101,88,0,3,1
-541,124,1117,537,101,93,0,3,1
-542,124,1099,541,100,92,0,3,1
-543,124,1079,541,99,91,0,3,1
-544,124,1060,541,98,90,0,3,1
-545,124,1039,539,98,88,0,3,1
-546,124,1023,533,96,90,0,3,1
-547,124,1004,531,96,87,0,3,1
-548,124,985,532,97,85,0,3,1
-549,124,966,530,97,83,0,3,1
-550,124,951,527,93,86,0,3,1
-551,124,936,526,92,86,0,3,1
-552,124,921,525,92,86,0,3,1
-553,124,906,524,92,86,0,3,1
-554,124,892,524,88,85,0,3,1
-555,124,878,524,85,85,0,3,1
-556,124,862,521,85,86,0,3,1
-557,124,847,518,85,87,0,3,1
-558,124,832,515,85,89,0,3,1
-559,124,815,514,86,88,0,3,1
-560,124,799,514,87,86,0,3,1
-561,124,783,513,88,86,0,3,1
-562,124,767,512,90,86,0,3,1
-563,124,751,511,91,86,0,3,1
-564,124,735,510,93,86,0,3,1
-565,124,726,510,90,82,0,3,1
-566,124,713,510,90,81,0,3,1
-567,124,700,511,90,80,0,3,1
-568,124,687,511,90,80,0,3,1
-569,124,675,512,90,79,0,3,1
-570,124,663,511,90,79,0,3,1
-571,124,652,510,89,79,0,3,1
-572,124,640,510,89,78,0,3,1
-573,124,629,509,88,78,0,3,1
-574,124,617,508,88,78,0,3,1
-575,124,606,508,88,78,0,3,1
-576,124,597,509,85,78,0,3,1
-577,124,585,508,86,77,0,3,1
-578,124,574,507,86,77,0,3,1
-579,124,564,506,86,77,0,3,1
-580,124,554,505,86,77,0,3,1
-581,124,544,504,87,78,0,3,1
-582,124,536,502,86,79,0,3,1
-583,124,528,501,86,80,0,3,1
-584,124,520,500,85,80,0,3,1
-585,124,512,499,85,81,0,3,1
-586,124,506,498,84,82,0,3,1
-587,124,496,496,85,81,0,3,1
-588,124,490,497,84,81,0,3,1
-589,124,484,498,84,81,0,3,1
-590,124,478,497,85,81,0,3,1
-591,124,470,496,85,82,0,3,1
-592,124,466,496,82,81,0,3,1
-593,124,462,496,80,81,0,3,1
-594,124,458,498,81,81,0,3,1
-595,124,454,495,80,81,0,3,1
-596,124,447,495,84,81,0,3,1
-597,124,444,495,81,79,0,3,1
-598,124,441,496,82,78,0,3,1
-599,124,439,497,82,77,0,3,1
-600,124,437,498,82,76,0,3,1
-601,124,436,499,82,76,0,3,1
-602,124,431,500,82,77,0,3,1
-603,124,429,499,81,77,0,3,1
-604,124,427,499,81,76,0,3,1
-605,124,425,497,81,76,0,3,1
-606,124,423,495,81,76,0,3,1
-607,124,422,494,80,75,0,3,1
-608,124,421,493,80,75,0,3,1
-609,124,420,492,79,74,0,3,1
-610,124,419,490,78,74,0,3,1
-611,124,418,489,78,74,0,3,1
-612,124,417,488,77,73,0,3,1
-613,124,416,487,77,73,0,3,1
-614,124,415,486,78,74,0,3,1
-615,124,414,485,79,75,0,3,1
-616,124,412,484,78,73,0,3,1
-617,124,410,484,78,74,0,3,1
-618,124,408,485,79,74,0,3,1
-619,124,407,485,79,73,0,3,1
-620,124,407,485,79,73,0,3,1
-621,124,405,484,78,74,0,3,1
-622,124,404,485,78,74,0,3,1
-623,124,404,486,77,74,0,3,1
-624,124,404,484,77,73,0,3,1
-625,124,405,490,77,75,0,3,1
-626,124,403,486,77,74,0,3,1
-627,124,403,491,77,73,0,3,1
-628,124,405,491,77,73,0,3,1
-629,124,407,492,77,73,0,3,1
-630,124,409,491,77,73,0,3,1
-631,124,412,491,76,73,0,3,1
-632,124,415,491,75,73,0,3,1
-633,124,417,491,75,73,0,3,1
-634,124,420,491,74,73,0,3,1
-635,124,423,491,73,73,0,3,1
-636,124,424,491,73,71,0,3,1
-637,124,428,496,73,71,0,3,1
-638,124,432,501,73,70,0,3,1
-639,124,435,500,73,71,0,3,1
-640,124,439,500,73,71,0,3,1
-641,124,442,500,74,71,0,3,1
-642,124,446,500,74,71,0,3,1
-643,124,450,500,74,71,0,3,1
-644,124,455,500,74,71,0,3,1
-645,124,461,500,73,71,0,3,1
-646,124,466,503,72,67,0,3,1
-647,124,471,501,72,66,0,3,1
-648,124,476,499,73,66,0,3,1
-649,124,482,497,73,66,0,3,1
-650,124,488,501,73,66,0,3,1
-651,124,494,500,70,66,0,3,1
-652,124,501,494,69,66,0,3,1
-653,124,507,493,70,67,0,3,1
-654,124,513,492,72,68,0,3,1
-655,124,520,491,73,69,0,3,1
-656,124,527,494,73,70,0,3,1
-657,124,539,499,74,69,0,3,1
-658,124,549,503,69,65,0,3,1
-659,124,555,516,69,66,0,3,1
-660,124,560,511,70,67,0,3,1
-661,124,564,514,69,66,0,3,1
-662,124,573,511,70,69,0,3,1
-663,124,580,508,69,70,0,3,1
-664,124,587,506,68,70,0,3,1
-665,124,594,504,68,71,0,3,1
-666,124,601,503,69,69,0,3,1
-667,124,607,503,69,67,0,3,1
-668,124,613,503,69,65,0,3,1
-669,124,621,501,69,65,0,3,1
-670,124,629,499,69,65,0,3,1
-671,124,636,497,69,65,0,3,1
-672,124,643,495,70,65,0,3,1
-673,124,651,494,70,64,0,3,1
-674,124,661,488,70,62,0,3,1
-675,124,666,483,72,65,0,3,1
-676,124,673,484,71,64,0,3,1
-677,124,681,485,70,63,0,3,1
-678,124,689,487,69,62,0,3,1
-679,124,696,491,68,66,0,3,1
-680,124,706,491,69,65,0,3,1
-681,124,707,514,70,66,0,3,1
-682,124,715,528,66,65,0,3,1
-683,124,720,504,65,65,0,3,1
-684,124,724,497,68,61,0,3,1
-685,124,730,492,69,63,0,3,1
-686,124,737,486,66,62,0,3,1
-687,124,744,483,66,61,0,3,1
-688,124,752,483,67,61,0,3,1
-689,124,758,480,67,62,0,3,1
-690,124,764,478,68,63,0,3,1
-691,124,770,475,69,63,0,3,1
-692,124,778,477,66,61,0,3,1
-693,124,784,475,65,61,0,3,1
-694,124,790,478,67,64,0,3,1
-695,124,796,482,69,66,0,3,1
-696,124,803,481,68,65,0,3,1
-697,124,810,480,68,65,0,3,1
-698,124,816,481,68,64,0,3,1
-699,124,823,482,67,63,0,3,1
-700,124,830,483,66,63,0,3,1
-701,124,837,484,65,62,0,3,1
-702,124,844,485,65,62,0,3,1
-703,124,849,487,65,63,0,3,1
-704,124,855,490,65,64,0,3,1
-705,124,861,489,65,66,0,3,1
-706,124,865,495,65,64,0,3,1
-707,124,869,493,65,64,0,3,1
-708,124,873,495,65,65,0,3,1
-709,124,877,495,64,65,0,3,1
-710,124,884,507,64,61,0,3,1
-711,124,887,504,64,61,0,3,1
-712,124,892,508,64,61,0,3,1
-713,124,894,506,65,62,0,3,1
-714,124,898,508,65,61,0,3,1
-715,124,903,508,64,59,0,3,1
-716,124,905,508,65,57,0,3,1
-717,124,908,509,65,57,0,3,1
-718,124,912,510,64,57,0,3,1
-719,124,916,510,64,57,0,3,1
-720,124,920,510,65,57,0,3,1
-721,124,924,511,66,57,0,3,1
-722,124,926,511,66,58,0,3,1
-723,124,932,513,65,58,0,3,1
-724,124,936,520,66,59,0,3,1
-725,124,941,516,65,61,0,3,1
-726,124,945,516,66,61,0,3,1
-727,124,949,521,64,60,0,3,1
-728,124,955,523,64,61,0,3,1
-729,124,958,523,65,60,0,3,1
-730,124,962,523,65,60,0,3,1
-731,124,965,522,65,60,0,3,1
-732,124,969,521,64,60,0,3,1
-733,124,973,520,63,60,0,3,1
-734,124,977,519,63,61,0,3,1
-735,124,979,518,62,62,0,3,1
-736,124,983,518,62,61,0,3,1
-737,124,985,515,61,62,0,3,1
-738,124,989,516,62,62,0,3,1
-739,124,991,517,62,62,0,3,1
-740,124,994,518,61,62,0,3,1
-741,124,997,520,61,61,0,3,1
-742,124,998,520,61,61,0,3,1
-743,124,1000,521,61,60,0,3,1
-744,124,1001,522,61,59,0,3,1
-745,124,1003,523,61,59,0,3,1
-746,124,1004,522,61,60,0,3,1
-747,124,1005,522,61,60,0,3,1
-748,124,1006,521,61,61,0,3,1
-749,124,1008,521,61,61,0,3,1
-750,124,1013,522,61,62,0,3,1
-53,125,548,552,29,72,1,1,0.48128
-54,125,544,552,29,72,1,1,0.54292
-55,125,541,552,29,72,1,1,0.57306
-56,125,537,552,29,72,1,1,0.67215
-57,125,534,552,29,73,1,1,0.70631
-58,125,530,551,29,73,1,1,0.73784
-59,125,527,551,29,73,1,1,0.73784
-60,125,523,550,29,74,1,1,0.77289
-61,125,520,550,29,74,1,1,0.772
-62,125,519,543,29,75,1,1,0.70351
-63,125,514,560,29,75,1,1,0.8
-64,125,511,546,29,75,1,1,0.77281
-65,125,508,552,29,76,1,1,0.74242
-66,125,506,559,29,76,1,1,0.74026
-67,125,499,550,29,76,1,1,0.86667
-68,125,495,557,29,76,1,1,0.86667
-69,125,491,554,29,76,1,1,0.9
-70,125,486,555,29,76,1,1,0.86667
-71,125,481,556,29,76,1,1,0.93333
-72,125,476,557,29,77,1,1,0.86667
-73,125,471,558,29,76,1,1,0.9
-74,125,467,559,29,76,1,1,1
-75,125,462,560,29,75,1,1,1
-76,125,458,562,29,74,1,1,0.93333
-77,125,451,559,29,77,1,1,1
-78,125,444,557,29,79,1,1,1
-79,125,437,555,30,82,1,1,1
-80,125,430,556,30,82,1,1,1
-81,125,424,557,30,83,1,1,1
-82,125,417,558,30,84,1,1,1
-83,125,411,559,30,85,1,1,1
-84,125,404,560,30,86,1,1,1
-85,125,398,562,30,86,1,1,1
-86,125,390,564,30,86,1,1,1
-87,125,383,566,30,87,1,1,1
-88,125,376,568,30,88,1,1,0.96774
-89,125,369,570,30,89,1,1,0.96774
-90,125,362,572,30,90,1,1,0.93548
-91,125,355,574,30,91,1,1,0.93548
-92,125,348,577,30,91,1,1,0.93548
-93,125,339,577,30,92,1,1,1
-94,125,330,578,31,92,1,1,1
-95,125,322,579,30,93,1,1,1
-96,125,313,579,31,94,1,1,1
-97,125,305,580,30,95,1,1,1
-98,125,296,581,31,95,1,1,1
-99,125,288,582,30,95,1,1,1
-100,125,279,582,31,97,1,1,1
-101,125,271,583,30,97,1,1,1
-102,125,262,584,31,98,1,1,1
-103,125,254,585,30,98,1,1,1
-104,125,245,585,31,99,1,1,1
-105,125,237,586,30,100,1,1,1
-106,125,228,587,31,100,1,1,1
-107,125,220,588,31,101,1,1,0.96906
-108,125,210,589,31,101,1,1,1
-109,125,200,590,31,102,1,1,1
-110,125,190,591,31,103,1,1,1
-111,125,181,592,31,104,1,1,0.96875
-112,125,171,593,31,104,1,1,0.96875
-113,125,161,594,31,105,1,1,0.90625
-114,125,151,595,31,106,1,1,0.84375
-115,125,142,597,31,106,1,1,0.75
-116,125,131,598,31,106,1,1,0.71875
-117,125,120,599,31,107,1,1,0.6875
-118,125,110,600,31,107,1,1,0.65625
-119,125,100,601,31,108,1,1,0.59375
-120,125,90,602,31,109,1,1,0.5625
-121,125,78,604,31,110,1,1,0.59375
-122,125,67,606,31,111,1,1,0.59375
-123,125,55,608,32,112,1,1,0.57576
-124,125,44,611,32,112,1,1,0.57576
-125,125,32,613,33,113,1,1,0.58824
-126,125,21,615,33,114,1,1,0.58824
-127,125,9,617,34,115,1,1,0.57143
-179,126,1175,531,26,66,1,1,0.023217
-180,126,1172,531,26,66,1,1,0.010503
-181,126,1169,531,26,66,1,1,0.0099502
-182,126,1166,531,26,67,1,1,0.012527
-183,126,1164,531,26,67,1,1,0.021786
-184,126,1161,531,26,68,1,1,0.032206
-185,126,1158,531,26,68,1,1,0.034353
-186,126,1156,532,26,68,1,1,0.05314
-187,126,1153,533,26,67,1,1,0.019063
-188,126,1150,534,26,66,1,1,0.01382
-189,126,1147,535,26,66,1,1,0.0088447
-190,126,1144,536,26,65,1,1,0.0044893
-191,126,1141,537,26,65,1,1,0
-192,126,1138,538,26,64,1,1,0
-193,126,1135,540,27,63,1,1,0
-194,126,1132,540,27,63,1,1,0
-195,126,1129,540,27,63,1,1,0
-196,126,1126,540,27,64,1,1,0
-197,126,1124,541,27,63,1,1,0
-198,126,1121,541,27,63,1,1,0
-199,126,1118,541,27,64,1,1,0
-200,126,1115,541,27,64,1,1,0
-201,126,1113,542,27,64,1,1,0
-202,126,1111,542,28,65,1,1,0
-203,126,1109,542,30,67,1,1,0
-204,126,1106,542,28,68,1,1,0
-205,126,1103,542,27,69,1,1,0.035714
-206,126,1101,543,25,69,1,1,0.076923
-207,126,1098,543,26,69,1,1,0.074074
-208,126,1096,543,26,70,1,1,0.074074
-209,126,1094,543,26,71,1,1,0
-210,126,1092,544,26,71,1,1,0.89558
-211,126,1089,544,27,71,1,1,0.86111
-212,126,1087,545,28,70,1,1,0.042739
-213,126,1084,545,29,71,1,1,0.6
-214,126,1082,546,29,71,1,1,0.60833
-215,126,1079,546,30,72,1,1,0.62042
-216,126,1077,547,30,73,1,1,0.6347
-217,126,1075,547,29,73,1,1,0.66577
-218,126,1074,547,28,73,1,1,0.67474
-219,126,1072,548,28,72,1,1,0.71752
-220,126,1071,548,27,72,1,1,0.71624
-221,126,1070,549,26,72,1,1,0.79401
-222,126,1068,548,28,73,1,1,0.83038
-223,126,1066,548,30,74,1,1,0.86753
-224,126,1064,548,32,74,1,1,0.87556
-225,126,1062,548,35,75,1,1,0.31871
-226,126,1056,547,39,81,1,1,0.92957
-227,126,1059,547,36,80,1,1,0.95996
-228,126,1062,547,34,80,1,1,0.96825
-229,126,1065,547,32,80,1,1,0.9783
-230,126,1064,547,33,79,1,1,0.98971
-231,126,1063,547,34,79,1,1,0.74286
-232,126,1063,547,35,79,1,1,0.72222
-233,126,1062,547,36,79,1,1,0.72973
-234,126,1062,547,37,79,1,1,0.73684
-235,126,1063,546,36,80,1,1,0.72973
-236,126,1064,546,35,81,1,1,0.75
-237,126,1065,546,34,81,1,1,0.59233
-238,126,1066,546,33,82,1,1,0.62792
-239,126,1068,546,31,83,1,1,0.38095
-240,126,1069,545,31,84,1,1,0.37647
-241,126,1070,544,32,85,1,1,0.37209
-242,126,1072,544,31,85,1,1,0.37209
-243,126,1073,543,32,86,1,1,0.36782
-244,126,1075,543,32,86,1,1,0.36782
-245,126,1077,543,32,86,1,1,0.34483
-246,126,1080,543,32,87,1,1,0.32955
-247,126,1082,543,33,87,1,1,0.31818
-248,126,1085,543,33,88,1,1,0.30337
-249,126,1087,543,34,88,1,1,0.30337
-250,126,1090,543,34,89,1,1,0.28889
-251,126,1093,543,34,90,1,1,0.27473
-252,126,1097,543,34,90,1,1,0.27473
-253,126,1101,543,34,91,1,1,0.26087
-254,126,1105,543,35,92,1,1,0.23656
-255,126,1109,543,35,93,1,1,0.2234
-256,126,1113,543,35,94,1,1,0.2
-257,126,1117,544,36,94,1,1,0.55619
-258,126,1121,544,37,94,1,1,0.91247
-259,126,1126,544,37,95,1,1,1
-260,126,1132,544,37,96,1,1,0.94221
-261,126,1138,545,37,96,1,1,0.80467
-262,126,1144,546,38,97,1,1,0.6753
-263,126,1149,547,39,97,1,1,0.52806
-264,126,1155,548,39,98,1,1,0.375
-265,126,1161,549,39,99,1,1,0.24
-266,126,1167,551,39,99,1,1,0.24
-267,126,1173,553,40,100,1,1,0.2113
-268,126,1179,551,40,101,1,1,0.15256
-269,126,1185,549,41,102,1,1,0.10541
-270,126,1192,548,41,102,1,1,0.070273
-271,126,1196,549,42,103,1,1,0.04025
-272,126,1201,551,42,103,1,1,0.014535
-273,126,1204,552,43,103,1,1,0
-274,126,1208,553,43,104,1,1,0.017316
-275,126,1212,554,43,104,1,1,0.02381
-276,126,1216,555,43,105,1,1,0.030017
-277,126,1220,556,43,105,1,1,0.009434
-278,126,1224,557,43,106,1,1,0.18182
-279,126,1228,558,44,107,1,1,0.42222
-280,126,1232,558,44,107,1,1,0.66667
-281,126,1236,558,45,108,1,1,0.8913
-282,126,1241,558,45,109,1,1,1
-283,126,1246,557,45,110,1,1,1
-284,126,1251,557,46,110,1,1,1
-285,126,1257,557,46,111,1,1,1
-286,126,1262,557,46,112,1,1,1
-287,126,1263,556,46,112,1,1,1
-288,126,1269,556,42,113,1,1,1
-289,126,1275,556,39,114,1,1,1
-290,126,1281,556,36,115,1,1,1
-291,126,1284,557,46,117,1,1,0.97079
-292,126,1288,559,47,117,1,1,0.83792
-293,126,1292,560,47,118,1,1,0.67262
-294,126,1296,562,47,119,1,1,0.525
-295,126,1300,564,48,119,1,1,0.51667
-296,126,1304,566,48,120,1,1,0.5124
-297,126,1308,568,49,120,1,1,0.4876
-298,126,1312,569,49,122,1,1,0.47154
-299,126,1316,571,50,122,1,1,0.45528
-300,126,1320,573,50,123,1,1,0.42742
-301,126,1324,575,51,123,1,1,0.41129
-302,126,1329,577,50,124,1,1,0.4
-303,126,1333,578,50,126,1,1,0.40157
-304,126,1337,580,51,126,1,1,0.40157
-305,126,1341,582,51,127,1,1,0.39844
-306,126,1345,584,52,127,1,1,0.375
-307,126,1349,586,52,128,1,1,0.35659
-308,126,1353,587,53,129,1,1,0.34615
-309,126,1357,589,53,130,1,1,0.32061
-310,126,1361,591,54,130,1,1,0.30534
-311,126,1365,593,54,131,1,1,0.28788
-312,126,1370,595,54,132,1,1,0.27068
-313,126,1374,595,54,133,1,1,0.26866
-314,126,1378,596,54,133,1,1,0.26119
-315,126,1382,597,54,134,1,1,0.46438
-316,126,1386,599,54,134,1,1,0.72148
-317,126,1390,602,54,134,1,1,1
-318,126,1394,604,54,135,1,1,1
-319,126,1398,607,54,134,1,1,1
-320,126,1402,609,54,135,1,1,1
-321,126,1406,612,54,135,1,1,1
-322,126,1406,610,56,138,1,1,1
-323,126,1406,608,58,141,1,1,1
-324,126,1406,606,61,144,1,1,1
-325,126,1413,606,63,147,1,1,1
-326,126,1420,606,65,150,1,1,1
-327,126,1428,607,55,149,1,1,1
-328,126,1428,605,55,151,1,1,1
-329,126,1429,604,54,152,1,1,1
-330,126,1430,602,53,154,1,1,1
-331,126,1431,601,52,155,1,1,1
-332,126,1427,599,59,158,1,1,1
-333,126,1423,597,66,161,1,1,1
-334,126,1420,596,72,163,1,1,1
-335,126,1422,595,73,162,1,1,1
-336,126,1426,595,73,165,1,1,1
-337,126,1431,596,70,170,1,1,1
-338,126,1436,597,69,172,1,1,1
-339,126,1441,599,69,173,1,1,1
-340,126,1442,602,70,173,1,1,1
-341,126,1443,605,72,173,1,1,1
-342,126,1445,609,73,173,1,1,1
-343,126,1443,612,70,177,1,1,1
-344,126,1443,619,68,178,1,1,1
-345,126,1444,626,65,179,1,1,1
-346,126,1448,629,57,181,1,1,1
-347,126,1448,633,60,185,1,1,1
-348,126,1449,637,61,186,1,1,1
-349,126,1449,640,65,186,1,1,1
-350,126,1444,643,69,189,1,1,1
-351,126,1445,646,70,191,1,1,1
-352,126,1446,650,72,192,1,1,1
-353,126,1447,654,73,193,1,1,1
-354,126,1448,658,75,194,1,1,1
-355,126,1449,662,76,195,1,1,1
-356,126,1451,666,77,196,1,1,1
-357,126,1451,669,71,199,1,1,1
-358,126,1452,671,69,201,1,1,1
-359,126,1453,674,68,203,1,1,1
-360,126,1454,677,66,205,1,1,1
-361,126,1455,680,65,207,1,1,1
-362,126,1453,685,70,209,1,1,1
-363,126,1451,690,76,211,1,1,1
-364,126,1450,695,81,213,1,1,1
-365,126,1451,700,81,215,1,1,1
-366,126,1453,706,81,216,1,1,1
-367,126,1454,712,81,217,1,1,1
-368,126,1456,718,81,219,1,1,1
-369,126,1457,720,83,224,1,1,1
-370,126,1458,723,86,228,1,1,1
-371,126,1456,721,86,233,1,1,1
-372,126,1455,720,85,237,1,1,1
-373,126,1454,719,84,241,1,1,1
-374,126,1454,720,84,244,1,1,1
-375,126,1454,722,85,247,1,1,1
-376,126,1454,723,86,250,1,1,1
-377,126,1455,725,86,253,1,1,1
-378,126,1453,726,87,256,1,1,1
-379,126,1452,728,87,259,1,1,1
-380,126,1451,729,87,263,1,1,1
-381,126,1449,731,88,265,1,1,1
-382,126,1448,732,88,269,1,1,1
-383,126,1447,734,88,272,1,1,1
-384,126,1442,736,89,275,1,1,1
-385,126,1438,739,90,278,1,1,1
-386,126,1433,741,91,281,1,1,1
-387,126,1429,744,92,284,1,1,1
-388,126,1423,745,93,287,1,1,1
-389,126,1417,747,94,290,1,1,1
-390,126,1412,749,95,293,1,1,1
-391,126,1403,754,96,296,1,1,1
-392,126,1397,756,97,299,1,1,1
-393,126,1391,758,98,303,1,1,1
-394,126,1385,760,99,307,1,1,1
-395,126,1380,763,99,310,1,1,1
-396,126,1368,765,100,314,1,1,1
-397,126,1356,768,101,317,1,1,0.98428
-398,126,1348,770,103,314,1,1,0.9873
-399,126,1341,773,104,310,1,1,0.99035
-400,126,1330,775,109,312,1,1,0.97764
-401,126,1319,777,114,315,1,1,0.96203
-402,126,1309,781,115,318,1,1,0.94044
-403,126,1299,785,116,321,1,1,0.91925
-404,126,1285,787,117,324,1,1,0.90462
-405,126,1271,790,118,326,1,1,0.88991
-406,126,1257,792,120,330,1,1,0.87311
-407,126,1243,795,121,332,1,1,0.85886
-408,126,1230,798,122,335,1,1,0.84226
-409,126,1212,802,124,337,1,1,0.82544
-410,126,1195,806,125,340,1,1,0.80645
-411,126,1178,810,126,343,1,1,0.78779
-412,126,1155,813,127,346,1,1,0.77233
-413,126,1132,816,128,349,1,1,0.75714
-414,126,1110,820,129,352,1,1,0.73938
-415,126,1085,823,130,355,1,1,0.72472
-416,126,1060,826,131,358,1,1,0.71031
-417,126,1035,830,133,361,1,1,0.69337
-418,126,1013,831,131,365,1,1,0.68306
-419,126,991,833,129,368,1,1,0.67209
-420,126,963,841,119,372,1,1,0.64343
-421,126,939,844,126,376,1,1,0.62865
-422,126,907,848,127,381,1,1,0.60995
-423,126,875,852,128,386,1,1,0.59173
-424,126,843,857,129,390,1,1,0.57289
-425,126,808,865,130,395,1,1,0.54545
-426,126,773,874,131,399,1,1,0.5175
-427,126,738,883,132,403,1,1,0.4901
-428,126,703,892,134,408,1,1,0.4621
-429,126,663,900,136,413,1,1,0.4372
-430,126,624,909,137,417,1,1,0.41148
-431,126,585,918,138,422,1,1,0.38534
-432,126,538,929,138,413,1,1,0.36715
-433,126,491,940,139,404,1,1,0.34815
-434,126,444,951,140,395,1,1,0.32828
-435,126,397,962,141,386,1,1,0.30749
-436,126,351,973,141,378,1,1,0.28496
-437,126,292,984,140,367,1,1,0.26359
-438,126,234,995,138,356,1,1,0.2409
-439,126,176,1006,136,345,1,1,0.21676
-440,126,118,1018,135,333,1,1,0.18862
-441,126,98,1025,98,326,1,1,0.17125
-442,126,42,1032,92,318,1,1,0.15361
-284,127,1280,546,37,108,1,1,0
-285,127,1287,550,38,106,1,1,0
-286,127,1293,546,35,110,1,1,0
-287,127,1301,549,34,107,1,1,0.0092593
-288,127,1308,545,35,113,1,1,0.0026803
-296,128,1366,548,42,119,1,1,0.023256
-297,128,1373,549,43,119,1,1,0.090909
-298,128,1380,551,44,118,1,1,0.099346
-299,128,1388,553,44,118,1,1,0.23492
-300,128,1392,557,45,116,1,1,0.58974
-301,128,1399,557,45,118,1,1,0.57983
-302,128,1406,558,46,120,1,1,0.57025
-303,128,1414,559,46,122,1,1,0.56911
-304,128,1420,561,46,123,1,1,0.56452
-305,128,1426,564,47,124,1,1,0.552
-306,128,1432,566,48,125,1,1,0.52381
-307,128,1438,569,48,126,1,1,0.49606
-308,128,1444,571,49,127,1,1,0.47656
-309,128,1451,574,49,128,1,1,0.44186
-310,128,1457,575,49,129,1,1,0.43077
-311,128,1463,576,50,130,1,1,0.41985
-312,128,1469,577,51,131,1,1,0.40909
-313,128,1475,578,52,132,1,1,0.3985
-314,128,1482,579,52,133,1,1,0.38806
-315,128,1488,580,53,134,1,1,0.40741
-316,128,1494,581,54,135,1,1,0.43382
-317,128,1500,582,55,136,1,1,0.40146
-318,128,1507,583,55,137,1,1,0.36957
-319,128,1513,584,56,138,1,1,0.33813
-320,128,1520,585,56,140,1,1,0.41471
-321,128,1527,587,56,141,1,1,0.65641
-322,128,1532,586,55,143,1,1,0.96205
-323,128,1537,586,54,145,1,1,1
-324,128,1543,586,53,147,1,1,1
-325,128,1546,585,52,149,1,1,1
-326,128,1550,585,51,151,1,1,1
-327,128,1554,585,49,153,1,1,1
-328,128,1558,585,48,155,1,1,1
-329,128,1562,584,47,156,1,1,1
-330,128,1566,583,47,157,1,1,1
-331,128,1570,582,46,158,1,1,1
-332,128,1574,581,46,160,1,1,1
-333,128,1578,580,45,161,1,1,1
-334,128,1582,579,45,162,1,1,1
-335,128,1586,579,45,163,1,1,1
-336,128,1586,572,44,164,1,1,0.91111
-337,128,1585,577,44,166,1,1,0.75556
-338,128,1590,574,44,169,1,1,0.75556
-339,128,1590,578,50,170,1,1,0.66667
-340,128,1588,581,56,170,1,1,0.5614
-341,128,1586,584,62,170,1,1,0.55556
-342,128,1585,587,67,171,1,1,0.58824
-343,128,1581,595,75,170,1,1,0.63158
-344,128,1577,603,83,169,1,1,0.66667
-345,128,1574,611,91,169,1,1,0.69565
-346,128,1583,618,90,168,1,1,0.69231
-347,128,1582,619,90,171,1,1,0.69231
-348,128,1581,620,90,174,1,1,0.69231
-349,128,1581,621,89,178,1,1,0.68889
-350,128,1580,622,89,181,1,1,0.7
-351,128,1579,623,89,184,1,1,0.75556
-352,128,1579,625,89,187,1,1,0.81111
-353,128,1578,629,89,186,1,1,0.87778
-354,128,1578,633,88,185,1,1,0.93258
-355,128,1578,637,88,185,1,1,0.98876
-356,128,1577,638,88,192,1,1,1
-357,128,1578,643,88,191,1,1,1
-358,128,1579,648,88,190,1,1,1
-359,128,1581,653,87,190,1,1,1
-360,128,1581,656,87,195,1,1,1
-361,128,1582,660,87,199,1,1,1
-362,128,1583,664,87,203,1,1,1
-363,128,1583,666,83,205,1,1,1
-364,128,1583,669,79,206,1,1,1
-365,128,1584,672,74,208,1,1,1
-366,128,1583,675,73,210,1,1,1
-367,128,1582,679,73,212,1,1,1
-368,128,1581,683,73,214,1,1,1
-369,128,1569,685,86,215,1,1,1
-370,128,1558,687,98,216,1,1,1
-371,128,1547,690,110,217,1,1,1
-372,128,1546,693,117,216,1,1,1
-373,128,1546,697,123,215,1,1,1
-374,128,1547,696,122,220,1,1,1
-375,128,1548,695,121,226,1,1,1
-376,128,1550,694,111,228,1,1,1
-377,128,1553,693,100,230,1,1,1
-378,128,1552,692,90,233,1,1,1
-379,128,1551,692,80,236,1,1,1
-380,128,1551,692,69,239,1,1,1
-381,128,1542,694,65,240,1,1,1
-382,128,1528,694,75,244,1,1,0.89995
-383,128,1514,694,85,248,1,1,0.78528
-384,128,1504,695,95,250,1,1,0.75598
-385,128,1494,697,106,252,1,1,0.7272
-386,128,1492,699,103,253,1,1,0.73516
-387,128,1490,702,101,253,1,1,0.73815
-388,128,1478,705,105,254,1,1,0.68979
-389,128,1467,708,109,256,1,1,0.65299
-390,128,1459,709,99,259,1,1,0.58538
-391,128,1451,711,90,261,1,1,0.54991
-392,128,1443,713,80,263,1,1,0.46259
-393,128,1435,715,71,266,1,1,0.35913
-394,128,1419,717,77,270,1,1,0.28811
-395,128,1403,720,83,274,1,1,0.22667
-396,128,1387,722,90,277,1,1,0.23828
-397,128,1371,725,97,279,1,1,0.24858
-398,128,1355,727,105,282,1,1,0.22395
-399,128,1340,730,111,284,1,1,0.20395
-400,128,1324,732,119,287,1,1,0.2202
-401,128,1308,735,126,289,1,1,0.22563
-402,128,1293,738,133,292,1,1,0.26137
-403,128,1282,740,124,295,1,1,0.26735
-404,128,1271,743,115,297,1,1,0.25052
-405,128,1256,747,118,301,1,1,0.25049
-406,128,1236,745,115,308,1,1,0.3056
-407,128,1216,748,114,310,1,1,0.35043
-408,128,1196,752,114,312,1,1,0.39917
-409,128,1177,756,113,314,1,1,0.40821
-410,128,1167,758,104,321,1,1,0.37598
-411,128,1140,760,112,329,1,1,0.42767
-412,128,18,16,40,1,1,1
-267,129,460,537,15,41,1,1,1
-268,129,464,537,15,41,1,1,1
-269,129,469,537,15,42,1,1,1
-270,129,473,536,15,42,1,1,1
-271,129,478,535,15,42,1,1,1
-272,129,482,534,15,42,1,1,1
-273,129,487,533,15,42,1,1,1
-274,129,492,532,15,42,1,1,1
-275,129,496,531,15,42,1,1,1
-276,129,501,530,15,42,1,1,1
-277,129,505,529,15,42,1,1,1
-278,129,510,528,15,42,1,1,1
-417,130,992,509,26,68,1,1,0.81481
-418,130,976,507,26,68,1,1,0.92593
-419,130,961,506,26,68,1,1,1
-420,130,948,505,26,68,1,1,1
-421,130,930,505,26,68,1,1,1
-422,130,913,505,26,68,1,1,1
-423,130,895,505,26,68,1,1,1
-424,130,878,505,26,68,1,1,1
-425,130,860,505,26,68,1,1,1
-426,130,843,505,26,68,1,1,1
-427,130,826,506,26,67,1,1,1
-428,130,806,505,23,66,1,1,1
-429,130,785,507,23,66,1,1,1
-430,130,764,509,24,66,1,1,1
-431,130,744,505,32,65,1,1,1
-432,130,732,505,29,65,1,1,1
-433,130,711,506,29,65,1,1,1
-434,130,690,507,30,65,1,1,1
-435,130,670,509,30,65,1,1,1
-436,130,651,511,28,66,1,1,1
-437,130,633,514,26,66,1,1,1
-438,130,614,512,24,66,1,1,1
-439,130,593,511,25,67,1,1,1
-440,130,573,511,26,68,1,1,1
-441,130,551,513,27,69,1,1,0.99388
-442,130,527,512,28,70,1,1,0.98932
-443,130,503,511,29,71,1,1,0.97454
-444,130,479,511,30,71,1,1,0.96864
-445,130,455,510,31,72,1,1,0.96147
-446,130,431,509,32,73,1,1,0.96069
-447,130,408,509,33,74,1,1,0.92
-448,130,182,508,32,73,1,1,1
-449,130,362,509,33,73,1,1,0.86049
-450,130,337,510,32,73,1,1,0.81572
-451,130,311,509,32,73,1,1,0.7973
-452,130,284,508,32,73,1,1,0.81081
-453,130,258,511,32,73,1,1,0.77027
-454,130,232,508,32,73,1,1,0.82432
-188,131,1175,526,23,70,1,1,0.13908
-189,131,1174,524,24,71,1,1,0.14778
-190,131,1171,523,24,71,1,1,0.14444
-191,131,1168,523,25,74,1,1,0.23231
-192,131,1165,523,26,77,1,1,0.17949
-193,131,1162,524,27,80,1,1,0.14991
-194,131,1156,525,27,79,1,1,0.12143
-195,131,1149,524,31,78,1,1,0.1068
-196,131,1149,525,30,79,1,1,0.10161
-197,131,1143,525,35,78,1,1,0.083685
-198,131,1141,525,34,78,1,1,0.063653
-199,131,1140,525,33,79,1,1,0.066176
-200,131,1139,525,32,79,1,1,0.051515
-201,131,1138,526,31,79,1,1,0.11875
-202,131,1136,527,31,78,1,1,0
-203,131,1135,528,31,78,1,1,0
-204,131,1134,526,33,83,1,1,0.13095
-205,131,1130,527,30,82,1,1,0
-206,131,1126,528,28,81,1,1,0.040791
-207,131,1122,529,26,80,1,1,0.12986
-208,131,1119,531,23,79,1,1,0.23229
-209,131,1117,534,23,81,1,1,0.45833
-210,131,1114,532,23,81,1,1,0.40142
-211,131,1112,537,26,76,1,1,0.42039
-212,131,1110,537,26,79,1,1,0.66667
-213,131,1108,538,26,82,1,1,0.74074
-214,131,1107,541,26,82,1,1,0.77778
-215,131,1106,540,27,83,1,1,0.78571
-216,131,1105,539,28,85,1,1,0.7931
-217,131,1103,536,29,87,1,1,0.83333
-218,131,1101,534,30,88,1,1,0.87097
-219,131,1100,534,28,87,1,1,0.84796
-220,131,1099,534,27,86,1,1,0.94048
-221,131,1098,535,26,85,1,1,0.80534
-222,131,1097,535,28,85,1,1,0.87009
-223,131,1096,535,28,85,1,1,0.68685
-224,131,1095,535,29,86,1,1,0.66513
-225,131,1094,535,29,86,1,1,0.64176
-226,131,1093,536,30,86,1,1,0.63849
-227,131,1092,536,30,86,1,1,0.63589
-228,131,1091,536,31,87,1,1,0.57955
-229,131,1090,537,32,87,1,1,0.52755
-230,131,1089,539,33,86,1,1,0.5497
-231,131,1089,542,34,85,1,1,0.77841
-232,131,1089,541,34,86,1,1,0.8
-233,131,1089,540,35,87,1,1,0.82008
-234,131,1090,539,35,88,1,1,0.83552
-235,131,1090,538,36,89,1,1,0.77177
-236,131,1091,537,36,90,1,1,0.66498
-237,131,1091,536,37,91,1,1,0.68593
-238,131,1091,535,38,92,1,1,0.71381
-239,131,1092,534,38,93,1,1,0.75668
-240,131,1092,533,39,94,1,1,0.61658
-241,131,1093,533,39,94,1,1,0.43211
-242,131,1096,534,37,92,1,1,0.37408
-243,131,1099,534,36,92,1,1,0.22871
-244,131,1102,534,35,93,1,1,0.36584
-245,131,1105,534,34,93,1,1,0.33708
-246,131,1108,535,33,93,1,1,0.31602
-247,131,1111,534,32,94,1,1,0.31547
-248,131,1114,533,32,96,1,1,0.30272
-249,131,1117,533,31,96,1,1,0.30026
-250,131,1120,532,31,98,1,1,0.28851
-251,131,1123,532,31,99,1,1,0.27875
-252,131,1126,532,32,99,1,1,0.27333
-253,131,1129,532,34,100,1,1,0.29901
-254,131,1132,533,36,100,1,1,0.26385
-255,131,1135,533,37,100,1,1,0.25221
-256,131,1138,534,39,100,1,1,0.2255
-257,131,1141,534,41,101,1,1,0.21312
-258,131,1144,535,43,101,1,1,0.19162
-259,131,1147,533,45,104,1,1,0.37474
-260,131,1150,532,47,106,1,1,0.59852
-261,131,1154,531,49,109,1,1,0.616
-262,131,1158,531,48,109,1,1,0.55102
-263,131,1163,532,46,108,1,1,0.25669
-264,131,1167,532,42,108,1,1,0.2332
-265,131,1171,537,41,107,1,1,0.28571
-280,132,1246,535,40,125,1,1,0.071235
-281,132,1243,535,43,120,1,1,0.14688
-282,132,1248,536,42,119,1,1,0.2593
-283,132,1253,537,42,118,1,1,0.13289
-284,132,1259,539,41,117,1,1,0.14165
-285,132,1265,543,40,117,1,1,0.10418
-286,132,1263,543,50,114,1,1,0.095482
-287,132,1261,544,60,111,1,1,0.10319
-288,132,1265,544,64,110,1,1,0.12654
-289,132,1270,545,68,108,1,1,0.20343
-290,132,1275,544,65,110,1,1,0.24242
-291,132,1280,543,62,112,1,1,0.13626
-292,132,1286,542,58,115,1,1,0.128
-293,132,1291,541,55,117,1,1,0.12182
-294,132,1297,540,51,120,1,1,0.11538
-295,132,1305,542,47,121,1,1,0.093921
-296,132,1309,543,44,118,1,1,0.11597
-297,132,1314,545,41,116,1,1,0.12637
-298,132,1317,545,38,113,1,1,0.14575
-299,132,1320,548,39,125,1,1,0.10496
-300,132,1323,549,35,119,1,1,0.1
-301,132,1327,551,31,113,1,1,0.085526
-302,132,1330,552,27,108,1,1,0.040957
-303,132,1334,554,23,102,1,1,0.029126
-304,132,1338,558,25,104,1,1,0.048352
-305,132,1341,561,27,106,1,1,0.077103
-306,132,1343,565,29,108,1,1,0.12232
-307,132,1343,566,32,110,1,1,0.20093
-308,132,1344,566,34,112,1,1,0.26169
-309,132,1353,568,30,116,1,1,0.20844
-310,132,1352,567,30,121,1,1,0.29191
-311,132,1356,569,30,126,1,1,0.27584
-312,132,1357,575,32,132,1,1,0.25701
-313,132,1359,577,43,140,1,1,0.2147
-314,132,1358,578,48,139,1,1,0.42085
-315,132,1352,579,60,140,1,1,0.55668
-316,132,1345,578,65,141,1,1,0.67723
-317,132,1342,579,70,144,1,1,0.72744
-318,132,1344,581,75,143,1,1,0.71254
-319,132,1346,582,81,143,1,1,0.69766
-320,132,1350,582,79,145,1,1,0.68236
-321,132,1355,582,76,147,1,1,0.69393
-322,132,1360,581,72,147,1,1,0.66772
-323,132,1361,581,74,148,1,1,0.64107
-324,132,1368,583,69,148,1,1,0.58696
-325,132,1374,582,63,150,1,1,0.64911
-326,132,1379,580,55,154,1,1,0.76509
-327,132,1382,579,47,153,1,1,0.96212
-328,132,1379,579,44,159,1,1,1
-329,132,1379,576,41,159,1,1,1
-330,132,1377,577,50,159,1,1,1
-331,132,1367,575,62,159,1,1,0.98413
-332,132,1357,573,71,157,1,1,0.97679
-333,132,1350,571,82,160,1,1,0.72289
-334,132,1349,569,92,157,1,1,0.63441
-335,132,1350,567,94,160,1,1,0.61053
-336,132,1352,565,93,160,1,1,0.60638
-337,132,1353,570,93,160,1,1,0.61702
-338,132,1358,571,88,159,1,1,0.61798
-339,132,1358,571,85,163,1,1,0.68605
-340,132,1362,571,77,164,1,1,0.78205
-341,132,1366,575,68,165,1,1,0.76812
-342,132,1370,575,56,171,1,1,0.84211
-343,132,1372,577,43,173,1,1,1
-344,132,1370,578,45,178,1,1,0.8913
-345,132,1371,585,42,180,1,1,0.65116
-346,132,1368,585,47,181,1,1,0.51648
-347,132,1358,594,56,178,1,1,0.45614
-348,132,1350,598,61,175,1,1,0.6129
-349,132,1344,605,69,174,1,1,0.62857
-350,132,1345,605,68,177,1,1,0.65217
-351,132,1345,605,69,175,1,1,0.7
-352,132,1345,605,68,180,1,1,0.78261
-353,132,1348,607,70,184,1,1,0.73239
-354,132,1352,608,69,187,1,1,0.58571
-355,132,1355,610,69,187,1,1,0.47143
-356,132,1355,611,61,189,1,1,0.41935
-357,132,1354,611,56,191,1,1,0.3644
-358,132,1352,612,54,188,1,1,0.37374
-359,132,1349,612,49,193,1,1,0.35701
-360,132,1345,618,51,193,1,1,0.37847
-361,132,1342,620,56,193,1,1,0.39546
-362,132,1341,624,55,196,1,1,0.28644
-363,132,1341,625,54,196,1,1,0.29303
-364,132,1339,631,54,196,1,1,0.33484
-365,132,1337,635,57,195,1,1,0.39796
-366,132,1336,639,65,198,1,1,0.37437
-367,132,1336,641,63,198,1,1,0.4218
-368,132,1330,643,71,203,1,1,0.41299
-369,132,1330,646,70,202,1,1,0.38708
-370,132,1328,645,64,204,1,1,0.44533
-371,132,1328,648,61,203,1,1,0.47494
-372,132,1322,648,61,203,1,1,0.50024
-373,132,1324,649,68,201,1,1,0.36225
-374,132,1322,648,65,201,1,1,0.38141
-375,132,1314,649,58,202,1,1,0.34566
-376,132,1315,647,50,199,1,1,0.40716
-377,132,1306,645,55,198,1,1,0.38092
-378,132,1302,648,56,199,1,1,0.41789
-379,132,1298,646,54,209,1,1,0.43221
-380,132,1294,644,57,212,1,1,0.40724
-381,132,1284,645,57,212,1,1,0.47377
-382,132,1273,645,63,214,1,1,0.51083
-383,132,1263,644,72,213,1,1,0.52138
-384,132,1257,644,69,214,1,1,0.62219
-385,132,1250,648,72,216,1,1,0.59005
-386,132,1245,645,75,217,1,1,0.59452
-387,132,1241,644,74,218,1,1,0.61479
-388,132,1235,648,74,218,1,1,0.58667
-389,132,1230,646,74,224,1,1,0.43342
-390,132,1225,644,71,229,1,1,0.39293
-391,132,1218,647,71,229,1,1,0.41636
-392,132,1213,647,70,232,1,1,0.42586
-393,132,1204,648,61,233,1,1,0.49104
-394,132,1193,651,61,233,1,1,0.56272
-395,132,1185,647,59,239,1,1,0.59014
-396,132,1169,647,57,245,1,1,0.77138
-397,132,1163,652,51,245,1,1,0.79448
-398,132,1147,651,52,247,1,1,0.87165
-399,132,1125,653,63,247,1,1,0.80261
-400,132,1102,656,81,247,1,1,0.68804
-401,132,1087,658,83,248,1,1,0.67202
-402,132,1070,659,83,250,1,1,0.7177
-403,132,1054,661,83,252,1,1,0.69415
-404,132,1038,663,82,254,1,1,0.60865
-405,132,1022,664,82,257,1,1,0.50574
-406,132,1005,666,82,258,1,1,0.41876
-407,132,989,668,82,260,1,1,0.3475
-408,132,973,669,81,263,1,1,0.33689
-409,132,957,671,81,265,1,1,0.35137
-410,132,941,673,81,267,1,1,0.31962
-411,132,925,671,81,272,1,1,0.30157
-412,132,909,669,82,278,1,1,0.23332
-413,132,884,669,82,281,1,1,0.18098
-414,132,860,669,82,284,1,1,0.11786
-415,132,834,670,82,286,1,1,0.068301
-416,132,809,671,82,289,1,1,0.034483
-417,132,784,672,82,292,1,1,0.040956
-418,132,759,673,82,295,1,1,0.030405
-419,132,734,674,82,298,1,1,0.0301
-420,132,711,677,90,298,1,1,0.0301
-421,132,674,678,99,297,1,1,0.036913
-422,132,638,679,107,297,1,1,0.033557
-423,132,602,680,115,297,1,1,0.040268
-424,132,548,677,123,297,1,1,0.15891
-425,132,510,682,131,297,1,1,0.16123
-426,132,472,688,139,297,1,1,0.18212
-427,132,434,695,147,296,1,1,0.17945
-428,132,396,702,155,295,1,1,0.18579
-429,132,358,709,164,295,1,1,0.18342
-430,132,320,714,160,303,1,1,0.25008
-431,132,282,717,155,312,1,1,0.26399
-432,132,244,721,151,320,1,1,0.33522
-433,132,202,724,147,323,1,1,0.30368
-434,132,160,727,144,326,1,1,0.34603
-435,132,119,730,140,329,1,1,0.32128
-436,132,55,735,137,328,1,1,0.21307
-437,132,-8,740,133,327,1,1,0.098835
-438,132,-70,741,146,325,1,1,0.017445
-195,133,970,530,18,49,1,1,0.54947
-196,133,968,525,16,57,1,1,0.50304
-197,133,966,525,16,57,1,1,0.50304
-198,133,964,526,17,56,1,1,0.49708
-199,133,963,527,17,55,1,1,0.51786
-200,133,961,527,18,55,1,1,0.5
-201,133,960,528,18,54,1,1,0.49091
-202,133,958,529,19,53,1,1,0.48148
-203,133,957,529,19,53,1,1,0.48148
-204,133,955,530,20,52,1,1,0.44924
-205,133,954,531,20,52,1,1,0.47439
-206,133,951,531,21,52,1,1,0.45712
-207,133,949,531,22,52,1,1,0.35111
-208,133,947,532,23,52,1,1,0.35456
-209,133,946,532,22,53,1,1,0.33977
-210,133,945,533,22,53,1,1,0.31481
-211,133,944,533,22,54,1,1,0.30909
-212,133,944,534,20,55,1,1,0.28571
-213,133,943,534,20,56,1,1,0.22055
-214,133,942,535,20,56,1,1,0.2005
-271,134,1124,516,28,65,1,1,0
-272,134,1129,516,28,66,1,1,0.27586
-273,134,1135,516,27,67,1,1,0.57143
-274,134,1141,517,27,67,1,1,0.67857
-275,134,1147,516,27,67,1,1,0.60714
-276,134,1153,516,27,67,1,1,0.57143
-313,135,1387,539,28,58,1,1,0.049679
-314,135,1389,541,27,60,1,1,0.057377
-315,135,1399,539,26,61,1,1,0.11649
-316,135,1400,541,28,66,1,1,0.073598
-317,135,1408,541,28,70,1,1,0.1151
-318,135,1412,541,28,76,1,1,0.098074
-319,135,1416,542,29,82,1,1,0.29518
-320,135,1421,542,30,82,1,1,0.34473
-321,135,1426,542,31,82,1,1,0.30648
-322,135,1434,541,26,81,1,1,0.34824
-323,135,1442,541,26,81,1,1,0.3645
-324,135,1445,540,27,81,1,1,0.34495
-325,135,1448,539,29,82,1,1,0.40161
-326,135,1451,538,30,82,1,1,0.44656
-327,135,1454,537,32,83,1,1,0.39538
-328,135,1457,534,32,83,1,1,0.48846
-329,135,1461,532,32,83,1,1,0.50577
-330,135,1465,531,30,83,1,1,0.51959
-331,135,1469,530,28,84,1,1,0.29006
-332,135,1473,529,27,85,1,1,0.5
-333,135,1476,525,26,86,1,1,0.52448
-334,135,1479,522,26,86,1,1,0.55981
-335,135,1482,519,26,86,1,1,0.58323
-336,135,1482,519,26,86,1,1,0.5513
-337,135,1488,519,26,92,1,1,0.53445
-338,135,1491,514,26,91,1,1,0.59783
-339,135,1491,517,27,91,1,1,0.56522
-340,135,1495,519,28,89,1,1,0.55556
-341,135,1500,521,28,88,1,1,0.1976
-342,135,1501,521,28,88,1,1,0.25107
-343,135,1502,523,29,88,1,1,0.26779
-344,135,1504,526,30,88,1,1,0.28416
-345,135,1506,529,31,88,1,1,0.29494
-346,135,1508,532,31,87,1,1,0.33807
-347,135,1510,534,32,88,1,1,0.29111
-348,135,1512,537,33,88,1,1,0.29379
-349,135,1514,540,33,87,1,1,0.28075
-350,135,1516,543,34,87,1,1,0.28571
-351,135,1518,546,35,87,1,1,0.28977
-352,135,1521,547,35,89,1,1,0.2716
-353,135,1525,549,35,90,1,1,0.23504
-354,135,1526,550,35,91,1,1,0.61957
-355,135,1528,552,35,92,1,1,0.6129
-356,135,1530,553,34,94,1,1,0.61053
-357,135,1532,555,34,95,1,1,0.61458
-358,135,1534,556,34,97,1,1,0.61224
-359,135,1536,558,33,98,1,1,0.60606
-360,135,1538,559,33,100,1,1,0.61386
-361,135,1540,561,33,101,1,1,0.60784
-362,135,1541,563,33,101,1,1,0.60784
-363,135,1543,565,33,101,1,1,0.61765
-364,135,1545,567,33,101,1,1,0.61765
-365,135,1547,570,33,101,1,1,0.60784
-366,135,1549,572,33,101,1,1,0.61765
-367,135,1551,574,33,101,1,1,0.61765
-368,135,1553,577,33,101,1,1,0.61765
-369,135,1555,579,33,101,1,1,0.59804
-370,135,1557,581,33,101,1,1,0.57843
-371,135,1559,584,33,101,1,1,0.54902
-372,135,1559,582,33,101,1,1,0.56863
-373,135,1559,581,33,101,1,1,0.57843
-374,135,1559,579,33,101,1,1,0.59804
-375,135,1559,578,34,101,1,1,0.60784
-376,135,1559,576,33,101,1,1,0.31373
-377,135,1559,574,33,101,1,1,0.34256
-378,135,1559,573,33,101,1,1,0.64706
-379,135,1559,571,33,101,1,1,0.66667
-380,135,1559,569,33,101,1,1,0.67647
-381,135,1559,568,33,101,1,1,0.68627
-382,135,1557,568,33,101,1,1,0.66667
-383,135,1556,568,33,101,1,1,0.64706
-384,135,1554,569,33,101,1,1,0.62745
-385,135,1553,569,33,101,1,1,0.62745
-386,135,1552,570,33,101,1,1,0.62745
-387,135,1549,570,33,101,1,1,0.63725
-388,135,1546,570,33,101,1,1,0.26644
-389,135,1543,571,33,101,1,1,0.24366
-390,135,1540,571,33,101,1,1,0.64706
-391,135,1538,572,33,101,1,1,0.17128
-392,135,1530,571,33,101,1,1,0.21569
-393,135,1523,571,33,101,1,1,0.25865
-394,135,1516,570,33,101,1,1,0.28258
-395,135,1509,570,33,101,1,1,0.32757
-396,135,1502,569,33,101,1,1,0.31574
-397,135,1495,569,33,101,1,1,0.40542
-398,135,1488,568,33,101,1,1,0.37255
-399,135,1481,568,33,101,1,1,0.33304
-400,135,1474,567,33,101,1,1,0.28864
-401,135,1467,567,33,101,1,1,0.22203
-402,135,1457,566,33,101,1,1,0.24423
-403,135,1447,566,33,101,1,1,0.26644
-404,135,1437,566,33,101,1,1,0.28864
-405,135,1427,566,34,101,1,1,0.30196
-406,135,1417,566,34,101,1,1,0.26218
-407,135,1407,566,34,101,1,1,0.35406
-408,135,1398,566,34,101,1,1,0.26555
-409,135,1386,566,34,101,1,1,0.26555
-410,135,1374,566,34,101,1,1,0
-411,135,1363,567,33,101,1,1,0.045559
-412,135,1349,565,34,104,1,1,0
-413,135,1336,563,34,107,1,1,0
-414,135,1321,562,35,109,1,1,0
-415,135,1307,561,35,112,1,1,0
-416,135,1292,560,36,114,1,1,0.38402
-417,135,1278,559,37,117,1,1,0.74576
-418,135,1261,558,37,116,1,1,0.76068
-419,135,1244,557,38,115,1,1,0
-420,135,1227,556,39,114,1,1,0
-421,135,1210,556,41,108,1,1,0
-422,135,1191,554,41,112,1,1,0
-423,135,1172,553,42,116,1,1,0
-424,135,1152,552,43,117,1,1,0
-425,135,1133,551,43,119,1,1,0
-426,135,1114,550,43,121,1,1,0
-427,135,1096,549,43,124,1,1,0
-428,135,1075,552,43,126,1,1,0.70222
-429,135,1050,554,44,128,1,1,0.64806
-430,135,1031,556,40,129,1,1,0.60375
-431,135,1012,558,37,130,1,1,0.67818
-432,135,992,557,40,134,1,1,0.6439
-433,135,973,564,41,129,1,1,0.63462
-434,135,951,565,40,130,1,1,0.61441
-435,135,930,566,39,131,1,1,0.66951
-436,135,908,566,39,132,1,1,0.69699
-437,135,886,566,39,134,1,1,0.7587
-438,135,865,567,39,135,1,1,0.74044
-439,135,843,568,39,136,1,1,0.70949
-440,135,821,569,39,137,1,1,0.67138
-441,135,799,571,40,137,1,1,0.53941
-442,135,775,571,39,139,1,1,0.43607
-443,135,750,570,39,141,1,1,0.34824
-444,135,725,570,39,142,1,1,0.25035
-445,135,701,569,39,145,1,1,0.28784
-446,135,676,569,39,146,1,1,0.32653
-447,135,652,569,39,148,1,1,0.35302
-448,135,627,567,39,149,1,1,0.018667
-449,135,603,566,39,150,1,1,0.21192
-450,135,579,564,39,152,1,1,0.45752
-451,135,555,563,39,153,1,1,0.62029
-452,135,524,565,44,153,1,1,0.49048
-453,135,494,567,48,153,1,1,0.55314
-454,135,463,569,53,153,1,1,0.62867
-455,135,433,571,57,153,1,1,0.69145
-456,135,403,573,62,153,1,1,0.73676
-457,135,372,575,64,153,1,1,0.73427
-458,135,342,577,65,154,1,1,0.76764
-459,135,312,580,66,153,1,1,0.73134
-460,135,282,582,67,154,1,1,0.33824
-461,135,252,585,68,154,1,1,0.36232
-462,135,218,585,66,156,1,1,0.68657
-463,135,185,586,63,157,1,1,0.6875
-464,135,152,586,61,159,1,1,0.16129
-465,135,119,587,58,160,1,1,0.13559
-466,135,86,587,56,162,1,1,0.070175
-467,135,53,588,53,163,1,1,0.92593
-468,135,20,589,51,164,1,1,1
-292,136,1511,519,28,100,1,1,0.37931
-293,136,1518,519,30,101,1,1,0.67742
-294,136,1526,519,32,102,1,1,0.75758
-295,136,1533,520,35,101,1,1,1
-296,136,1541,521,38,101,1,1,1
-297,136,1549,521,36,102,1,1,1
-298,136,1557,522,34,102,1,1,1
-299,136,1565,523,33,102,1,1,1
-300,136,1575,526,33,101,1,1,1
-301,136,1579,528,39,101,1,1,1
-302,136,1592,529,34,102,1,1,1
-303,136,1598,530,33,105,1,1,1
-304,136,1609,537,34,103,1,1,1
-305,136,1615,535,35,110,1,1,1
-306,136,1623,541,35,110,1,1,0.96496
-307,136,1630,541,35,110,1,1,0.85986
-308,136,1638,541,35,110,1,1,0.81982
-309,136,1646,546,34,104,1,1,0.80952
-310,136,1650,543,35,110,1,1,0.79279
-311,136,1661,544,35,110,1,1,0.78378
-312,136,1667,544,35,110,1,1,0.78378
-313,136,1674,545,35,110,1,1,0.77477
-314,136,1682,545,34,107,1,1,0.7963
-315,136,1693,545,32,104,1,1,0.85714
-316,136,1701,545,32,104,1,1,0.90476
-317,136,1708,545,32,104,1,1,0.87619
-318,136,1715,545,35,103,1,1,0.85577
-319,136,1721,545,37,102,1,1,0.83495
-320,136,1729,544,37,102,1,1,0.81553
-321,136,1738,544,37,102,1,1,0.79612
-322,136,1742,545,37,102,1,1,0.80583
-323,136,1748,544,37,102,1,1,0.84466
-324,136,1757,545,37,102,1,1,0.86408
-325,136,1766,547,37,102,1,1,0.86408
-326,136,1771,544,36,112,1,1,0.84071
-327,136,1773,544,43,117,1,1,0.83051
-328,136,1780,544,42,120,1,1,0.80992
-329,136,1788,541,42,120,1,1,0.83471
-330,136,1797,540,41,123,1,1,0.91551
-331,136,1802,537,41,123,1,1,1
-332,136,1810,537,40,120,1,1,1
-333,136,1815,534,39,123,1,1,1
-334,136,1817,526,42,130,1,1,1
-335,136,1828,527,39,123,1,1,1
-336,136,1831,520,38,130,1,1,1
-337,136,1835,527,41,129,1,1,1
-338,136,1840,521,41,129,1,1,1
-339,136,1847,522,40,130,1,1,1
-340,136,1852,522,40,130,1,1,1
-341,136,1858,528,40,130,1,1,1
-342,136,1863,528,40,130,1,1,1
-343,136,1866,533,44,131,1,1,1
-344,136,1874,536,44,131,1,1,1
-345,136,1877,541,46,137,1,1,0.93617
-346,136,1881,541,46,137,1,1,0.85106
-347,136,1884,545,46,137,1,1,0.78723
-348,136,1891,548,46,137,1,1,0.6383
-349,136,1895,548,46,137,1,1,0.55319
-350,136,1901,551,46,137,1,1,0.42553
-351,136,1906,553,46,137,1,1,0.31915
-352,136,1911,554,46,137,1,1,0.21277
-410,137,1911,606,46,137,1,1,0.21277
-411,137,1900,594,45,185,1,1,0.45652
-412,137,1886,592,55,185,1,1,0.625
-413,137,1873,591,55,185,1,1,0.85714
-414,137,1860,591,62,192,1,1,0.96825
-415,137,1846,589,65,191,1,1,1
-416,137,1830,587,65,191,1,1,1
-417,137,1815,588,65,191,1,1,1
-418,137,1801,588,65,191,1,1,1
-419,137,1785,585,65,191,1,1,1
-420,137,1771,588,65,191,1,1,1
-421,137,1754,585,64,197,1,1,1
-422,137,1739,585,63,194,1,1,1
-423,137,1717,584,62,197,1,1,1
-424,137,1695,584,65,197,1,1,1
-425,137,1676,584,65,197,1,1,1
-426,137,1657,582,65,197,1,1,1
-427,137,1635,585,65,197,1,1,1
-428,137,1610,585,72,201,1,1,1
-429,137,1589,588,72,201,1,1,1
-430,137,1563,589,75,203,1,1,1
-431,137,1538,596,80,198,1,1,1
-432,137,1514,594,82,202,1,1,1
-433,137,1493,598,75,203,1,1,1
-434,137,1470,600,75,203,1,1,1
-435,137,1449,603,73,203,1,1,1
-436,137,1425,602,79,206,1,1,1
-437,137,1403,605,76,205,1,1,1
-438,137,1379,605,81,207,1,1,1
-439,137,1351,606,85,205,1,1,0.96935
-440,137,1330,607,83,209,1,1,0.98957
-441,137,1304,607,82,212,1,1,0.96861
-442,137,1283,607,76,211,1,1,1
-443,137,1258,611,79,208,1,1,0.989
-444,137,1231,612,81,210,1,1,0.94625
-445,137,1203,614,81,210,1,1,0.89192
-446,137,1172,614,81,210,1,1,0.79575
-447,137,1146,615,81,210,1,1,0.75275
-448,137,1117,612,80,213,1,1,0.67982
-449,137,1084,612,80,213,1,1,0.58602
-450,137,1054,607,78,219,1,1,0.513
-451,137,1025,607,78,219,1,1,0.49735
-452,137,998,612,78,219,1,1,0.463
-453,137,972,612,77,222,1,1,0.46372
-454,137,944,612,76,229,1,1,0.44709
-455,137,920,617,76,229,1,1,0.46877
-456,137,885,620,76,229,1,1,0.35483
-457,137,847,623,76,229,1,1,0.22857
-458,137,803,624,78,213,1,1,0.14409
-459,137,774,627,74,212,1,1,0.14817
-460,137,736,630,74,212,1,1,0.13746
-461,137,700,635,74,212,1,1,0.12851
-462,137,662,638,79,217,1,1,0.12408
-463,137,625,639,78,228,1,1,0.1231
-464,137,587,643,86,230,1,1,0.1233
-465,137,548,646,77,229,1,1,0.12207
-466,137,507,649,77,229,1,1,0.11054
-467,137,470,657,77,229,1,1,0.091973
-468,137,432,657,77,246,1,1,0.094571
-469,137,387,656,77,246,1,1,0.090626
-470,137,350,660,71,245,1,1,0.079268
-471,137,307,656,71,245,1,1,0.086721
-472,137,261,655,73,252,1,1,0.082897
-473,137,208,660,79,257,1,1,0.054651
-474,137,167,660,75,264,1,1,0.075074
-475,137,119,659,75,264,1,1,0.096326
-476,137,65,664,75,264,1,1,0.09007
-477,137,1,676,75,264,1,1,0.075472
-85,138,1619,510,22,59,1,1,0.38551
-86,138,1615,509,22,59,1,1,0.54783
-87,138,1611,510,22,59,1,1,0.69855
-88,138,1608,511,22,59,1,1,0.77391
-89,138,1603,512,23,60,1,1,0.92623
-90,138,1599,513,23,61,1,1,1
-91,138,1595,514,24,62,1,1,1
-92,138,1590,515,25,63,1,1,0.88221
-93,138,1586,516,25,64,1,1,0.80118
-94,138,1582,517,26,65,1,1,0.74747
-95,138,1578,517,29,63,1,1,0.70625
-96,138,1574,518,28,62,1,1,0.711
-97,138,1571,519,27,62,1,1,0.70068
-98,138,1568,520,26,62,1,1,0.68959
-99,138,1565,521,24,61,1,1,0.65935
-100,138,1562,522,23,61,1,1,0.6371
-101,138,1559,523,22,61,1,1,0.62132
-102,138,1556,521,21,60,1,1,0.62444
-103,138,1553,522,21,60,1,1,0.6155
-104,138,1550,523,21,61,1,1,0.6393
-105,138,1545,523,21,61,1,1,0.6305
-106,138,1541,523,21,61,1,1,0.66935
-107,138,1536,523,22,61,1,1,0.73492
-108,138,1532,523,21,61,1,1,0.78446
-109,138,1528,523,21,62,1,1,0.77273
-110,138,1523,523,22,62,1,1,0.90269
-111,138,1519,523,21,62,1,1,0.96609
-112,138,1514,523,22,62,1,1,0
-113,138,1510,523,22,62,1,1,0
-114,138,1506,523,22,63,1,1,0
-115,138,1501,522,22,63,1,1,0
-116,138,1496,522,23,63,1,1,0
-117,138,1491,522,23,63,1,1,0.015625
-118,138,1486,521,24,64,1,1,0.015385
-119,138,1482,521,24,64,1,1,0.015385
-120,138,1477,521,24,63,1,1,0.055
-121,138,1472,520,25,64,1,1,0.038462
-122,138,1467,520,25,64,1,1,0.038462
-123,138,1462,520,26,64,1,1,0.11111
-124,138,1458,520,26,64,1,1,0.18519
-125,138,1454,520,25,64,1,1,0.26923
-126,138,1450,520,25,65,1,1,0.26923
-127,138,1446,521,24,65,1,1,0.28
-128,138,1442,521,24,66,1,1,0.28
-129,138,1439,522,22,66,1,1,0.30435
-130,138,1435,522,22,66,1,1,0.30435
-131,138,1431,522,21,67,1,1,0.27273
-132,138,1427,523,21,67,1,1,1
-133,138,1423,523,20,68,1,1,1
-134,138,1420,524,19,68,1,1,1
-135,138,1416,523,19,69,1,1,1
-136,138,1412,523,19,69,1,1,1
-137,138,1408,523,20,69,1,1,1
-138,138,1405,523,19,69,1,1,1
-139,138,1401,523,20,69,1,1,1
-140,138,1397,523,20,69,1,1,1
-141,138,1394,523,19,69,1,1,1
-142,138,1390,523,20,69,1,1,1
-143,138,1386,523,20,69,1,1,1
-144,138,1383,523,20,70,1,1,1
-145,138,1377,522,22,71,1,1,1
-146,138,1372,522,23,71,1,1,1
-147,138,1366,522,25,71,1,1,1
-148,138,1361,522,26,71,1,1,1
-149,138,1355,522,28,71,1,1,1
-150,138,1350,522,29,71,1,1,1
-151,138,1344,522,31,71,1,1,1
-152,138,1339,522,32,71,1,1,1
-153,138,1334,522,33,71,1,1,1
-154,138,1329,523,29,71,1,1,1
-155,138,1323,522,29,71,1,1,1
-156,138,1318,522,29,71,1,1,1
-157,138,1312,522,30,71,1,1,1
-158,138,1307,522,29,71,1,1,1
-159,138,1302,522,29,71,1,1,1
-160,138,1296,521,30,71,1,1,1
-161,138,1291,521,29,71,1,1,1
-162,138,1285,521,30,71,1,1,1
-163,138,1280,521,30,71,1,1,0.53629
-164,138,1275,521,30,71,1,1,1
-165,138,1270,521,29,71,1,1,1
-166,138,1267,521,24,71,1,1,1
-167,138,1259,521,29,74,1,1,1
-168,138,1250,519,27,74,1,1,0.82
-169,138,1248,521,26,70,1,1,0.85185
-170,138,1246,520,25,73,1,1,0.84615
-171,138,1244,518,23,75,1,1,0.875
-172,138,1238,519,29,74,1,1,0.73333
-173,138,1237,521,29,71,1,1,0.73333
-174,138,1236,518,23,75,1,1,0.75
-175,138,1228,520,31,74,1,1,0.625
-176,138,1227,522,29,74,1,1,1
-177,138,1223,522,29,74,1,1,1
-178,138,1220,524,30,74,1,1,0.96774
-179,138,1216,521,30,74,1,1,0.41935
-180,138,1213,523,30,74,1,1,0.3828
-181,138,1209,522,30,74,1,1,0.28258
-182,138,1208,522,30,74,1,1,0.72215
-195,139,1167,526,29,74,1,1,0.028444
-196,139,1166,526,29,75,1,1,0.029825
-197,139,1165,525,30,75,1,1,0.028862
-198,139,1162,525,30,76,1,1,0.046921
-199,139,1160,525,30,77,1,1,0.066998
-200,139,1157,526,31,77,1,1,0.070513
-201,139,1155,526,30,78,1,1,0.084933
-202,139,1153,527,30,78,1,1,0.097999
-203,139,1150,527,31,80,1,1,0.22994
-204,139,1148,528,31,80,1,1,0.078704
-205,139,1146,528,30,81,1,1,0.25098
-206,139,1143,529,31,81,1,1,0.24162
-207,139,1141,529,31,82,1,1,0.2387
-208,139,1139,530,31,83,1,1,0.19159
-209,139,1138,532,30,83,1,1,0.22581
-210,139,1138,533,30,81,1,1,0.19355
-211,139,1140,533,31,82,1,1,0.23306
-212,139,1138,533,31,83,1,1,0.1875
-213,139,1137,534,31,83,1,1,0.15625
-214,139,1136,534,31,84,1,1,0.09375
-215,139,1135,535,31,84,1,1,0.0625
-216,139,1134,535,31,86,1,1,0
-217,139,1133,536,31,86,1,1,0
-218,139,1132,537,31,87,1,1,0
-219,139,1126,536,31,86,1,1,0.09375
-220,139,1122,533,31,86,1,1,0.1268
-221,139,1123,534,29,87,1,1,0.36667
-222,139,1123,533,29,86,1,1,0.36897
-223,139,1121,534,28,87,1,1,0.62069
-224,139,1121,533,29,88,1,1,0.56966
-225,139,1121,533,30,89,1,1,0.77419
-226,139,1121,533,32,89,1,1,0.7
-227,139,1121,533,33,90,1,1,0.85294
-228,139,1121,533,35,90,1,1,0.80739
-229,139,1121,533,36,91,1,1,0.84019
-230,139,1121,533,37,91,1,1,0.87185
-231,139,1121,533,39,92,1,1,0.85726
-232,139,1121,533,40,92,1,1,0.91896
-233,139,1122,533,41,93,1,1,0.90451
-234,139,1122,532,38,94,1,1,0.85641
-235,139,1122,532,35,95,1,1,0.79803
-236,139,1122,532,33,94,1,1,0.74303
-237,139,1122,531,31,94,1,1,0.69145
-238,139,1122,530,29,95,1,1,0.62083
-239,139,1122,530,32,95,1,1,0.58302
-240,139,1122,530,35,95,1,1,0.5463
-241,139,1123,531,37,94,1,1,0.55762
-242,139,1123,531,40,94,1,1,0.50347
-243,139,1124,532,43,94,1,1,0.41627
-244,139,1126,531,43,94,1,1,0.34545
-245,139,1129,531,42,93,1,1,0.34067
-246,139,1132,531,41,93,1,1,0.34245
-247,139,1134,530,40,93,1,1,0.34017
-248,139,1137,530,39,92,1,1,0.33065
-249,139,1140,530,38,91,1,1,0.34197
-250,139,1144,530,36,90,1,1,0.34066
-251,139,1148,530,35,89,1,1,0.34444
-252,139,1153,530,33,88,1,1,0.35558
-253,139,1157,530,34,90,1,1,0.32967
-254,139,1161,529,33,92,1,1,0.30614
-255,139,1165,529,33,94,1,1,0.29164
-256,139,1169,528,33,97,1,1,0.27131
-257,139,1173,528,34,99,1,1,0.25286
-258,139,1177,528,34,101,1,1,0.23669
-259,139,1182,528,34,103,1,1,0.21951
-260,139,1186,527,34,106,1,1,0.20641
-261,139,1190,527,35,108,1,1,0.44419
-262,139,1194,527,35,110,1,1,0.6519
-263,139,1199,527,35,113,1,1,0.70785
-264,139,1204,529,41,111,1,1,0.86097
-265,139,1209,525,32,116,1,1,0.89122
-266,139,1212,532,36,110,1,1,0.95374
-267,139,1219,530,41,115,1,1,0.81712
-268,139,1222,532,43,116,1,1,0.63462
-269,139,1228,534,43,116,1,1,0.5
-270,139,1237,532,39,116,1,1,0.31774
-271,139,1245,534,35,116,1,1,0.11111
-283,140,1287,536,50,123,1,1,0.5068
-284,140,1298,537,56,131,1,1,0.70175
-285,140,1301,537,61,126,1,1,0.87859
-286,140,1303,537,58,126,1,1,0.91432
-287,140,1306,537,53,126,1,1,0.93701
-288,140,1309,532,54,132,1,1,0.9553
-289,140,1320,532,30,129,1,1,1
-290,140,1324,533,34,129,1,1,1
-291,140,1331,534,36,129,1,1,1
-292,140,1330,535,45,130,1,1,0.89346
-293,140,1330,536,54,132,1,1,0.85099
-294,140,1330,537,63,133,1,1,0.80061
-295,140,1330,538,72,135,1,1,0.68795
-296,140,1337,539,70,133,1,1,0.63559
-297,140,1344,541,68,131,1,1,0.56083
-298,140,1351,543,66,129,1,1,0.5729
-299,140,1354,541,61,133,1,1,0.55416
-300,140,1357,543,59,128,1,1,0.32468
-301,140,1361,546,56,123,1,1,0.34295
-302,140,1365,548,53,119,1,1,0.39907
-303,140,1369,551,50,113,1,1,0.46594
-304,140,1373,553,47,109,1,1,0.51364
-305,140,1377,556,44,104,1,1,0.56063
-306,140,1379,559,44,107,1,1,0.4677
-307,140,1382,564,44,110,1,1,0.39319
-308,140,1384,565,44,113,1,1,0.32593
-309,140,1387,566,44,116,1,1,0.28547
-310,140,1390,567,44,120,1,1,0.23655
-311,140,1393,568,44,123,1,1,0.32419
-312,140,1395,569,44,126,1,1,0.29921
-313,140,1398,570,44,130,1,1,0.1391
-314,140,1401,571,44,133,1,1,0.098176
-315,140,1404,573,44,136,1,1,0.065531
-316,140,1406,573,48,139,1,1,0.083236
-317,140,1408,573,53,143,1,1,0.10455
-318,140,1411,573,56,147,1,1,0.10775
-319,140,1413,573,61,151,1,1,0.13678
-320,140,1416,574,65,154,1,1,0.23118
-321,140,1418,574,66,155,1,1,0.23555
-322,140,1420,574,67,157,1,1,0.32055
-323,140,1423,574,68,159,1,1,0.37572
-324,140,1426,574,68,160,1,1,0.41084
-325,140,1429,575,62,164,1,1,0.38124
-326,140,1431,577,58,162,1,1,0.23365
-327,140,1429,571,57,170,1,1,0.25136
-328,140,1432,574,46,168,1,1,0.18343
-329,140,1432,571,38,166,1,1,0.1976
-330,140,1433,571,38,168,1,1,0.18343
-331,140,1429,567,50,171,1,1,0.22914
-332,140,1430,567,50,171,1,1,0.18605
-333,140,1410,565,73,168,1,1,0.33176
-334,140,1408,563,71,168,1,1,0.32939
-335,140,1408,563,74,167,1,1,0.34159
-336,140,1409,558,77,170,1,1,0.38716
-337,140,1411,561,77,170,1,1,0.40861
-338,140,1413,561,76,174,1,1,0.44297
-339,140,1417,563,71,173,1,1,0.47126
-340,140,1423,562,69,177,1,1,0.43515
-341,140,1419,567,63,177,1,1,0.50843
-342,140,1418,567,60,184,1,1,0.56916
-343,140,1416,573,57,185,1,1,0.57759
-344,140,1411,578,69,184,1,1,0.57745
-345,140,1399,584,85,185,1,1,0.63091
-346,140,1392,591,91,184,1,1,0.68907
-347,140,1384,594,102,188,1,1,0.69949
-348,140,1388,597,108,187,1,1,0.65333
-349,140,1388,597,107,192,1,1,0.66177
-350,140,1390,600,107,192,1,1,0.6114
-351,140,1394,602,86,190,1,1,0.68153
-352,140,1399,600,80,195,1,1,0.68733
-353,140,1400,602,81,198,1,1,0.6847
-354,140,1393,608,71,196,1,1,0.82382
-355,140,1388,607,61,202,1,1,0.98824
-356,140,1381,609,69,204,1,1,1
-357,140,1374,615,78,200,1,1,0.98148
-358,140,1372,615,82,202,1,1,0.97383
-359,140,1366,617,90,206,1,1,0.96815
-360,140,1364,622,94,205,1,1,0.96142
-361,140,1364,623,94,209,1,1,0.96932
-362,140,1361,629,96,211,1,1,0.95215
-363,140,1361,630,103,210,1,1,0.89464
-364,140,1362,638,98,209,1,1,0.90577
-365,140,1367,638,92,212,1,1,0.92453
-366,140,1369,640,76,213,1,1,0.9878
-367,140,1371,644,70,214,1,1,0.98683
-368,140,1369,646,63,218,1,1,0.96062
-369,140,1366,647,62,219,1,1,0.93232
-370,140,1364,651,59,219,1,1,0.91
-371,140,1365,650,55,222,1,1,0.8975
-372,140,1365,651,58,225,1,1,0.88961
-373,140,1356,653,73,223,1,1,0.87542
-374,140,1355,657,73,222,1,1,0.87062
-375,140,1350,658,79,222,1,1,0.86323
-376,140,1350,655,78,226,1,1,0.86617
-377,140,1349,655,78,226,1,1,0.8684
-378,140,1349,655,77,227,1,1,0.86955
-379,140,1345,655,77,226,1,1,0.86084
-380,140,1340,652,76,231,1,1,0.84684
-381,140,1333,652,73,232,1,1,0.82137
-382,140,1328,651,65,231,1,1,0.79232
-383,140,1323,649,54,228,1,1,0.79913
-384,140,1323,650,50,227,1,1,0.8114
-385,140,1314,650,50,226,1,1,0.81195
-386,140,1312,650,47,230,1,1,0.81385
-387,140,1307,648,47,229,1,1,0.80299
-388,140,1279,648,69,246,1,1,0.54806
-389,140,1262,652,77,242,1,1,0.6129
-390,140,1252,655,79,241,1,1,0.63709
-391,140,1247,656,79,246,1,1,0.63097
-392,140,1242,659,76,244,1,1,0.62375
-393,140,1233,661,76,244,1,1,0.6202
-394,140,1227,659,74,253,1,1,0.61249
-395,140,1219,660,74,253,1,1,0.61627
-396,140,1213,660,76,256,1,1,0.60913
-397,140,1204,659,64,261,1,1,0.56629
-398,140,1193,658,59,264,1,1,0.53742
-399,140,1176,660,58,266,1,1,0.62712
-400,140,1158,660,57,272,1,1,0.82759
-401,140,1143,662,61,274,1,1,0.79032
-402,140,1130,662,60,277,1,1,0.78689
-403,140,1112,664,67,278,1,1,0.76471
-404,140,1088,667,76,277,1,1,0.80519
-405,140,1063,670,88,276,1,1,0.82022
-406,140,1039,670,106,280,1,1,0.7757
-407,140,1017,672,105,283,1,1,0.85849
-408,140,1000,672,110,286,1,1,1
-409,140,985,675,110,286,1,1,1
-410,140,967,674,112,290,1,1,1
-411,140,948,679,112,290,1,1,1
-412,140,926,679,117,292,1,1,1
-413,140,896,681,125,295,1,1,1
-414,140,866,683,123,297,1,1,1
-415,140,836,683,125,297,1,1,1
-416,140,803,681,109,308,1,1,1
-417,140,778,684,109,308,1,1,1
-418,140,750,682,119,311,1,1,1
-419,140,718,683,124,316,1,1,1
-420,140,688,686,129,315,1,1,1
-421,140,659,689,135,314,1,1,1
-422,140,624,689,140,319,1,1,1
-423,140,596,692,139,322,1,1,1
-424,140,561,695,148,320,1,1,1
-425,140,525,698,154,323,1,1,1
-426,140,491,704,154,323,1,1,1
-427,140,455,708,154,328,1,1,1
-428,140,421,711,149,335,1,1,1
-429,140,385,716,138,334,1,1,1
-430,140,353,722,123,339,1,1,1
-431,140,310,728,118,337,1,1,1
-432,140,266,736,105,340,1,1,1
-433,140,214,730,104,353,1,1,0.99153
-434,140,162,731,95,358,1,1,0.97493
-435,140,114,741,103,360,1,1,0.94183
-436,140,65,745,111,359,1,1,0.93333
-437,140,10,752,119,363,1,1,0.90385
-438,140,-27,752,119,363,1,1,0.69295
-257,141,-19,602,33,103,1,1,0.019796
-258,141,-17,607,33,103,1,1,0.47059
-259,141,-15,607,33,103,1,1,0.52941
-260,141,-13,607,33,103,1,1,0.58824
-261,141,-10,608,33,102,1,1,0.67647
-262,141,-8,609,33,102,1,1,0.73529
-263,141,-5,610,32,102,1,1,0.81818
-264,141,-6,609,32,101,1,1,0.78788
-265,141,-7,609,33,100,1,1,0.33227
-266,141,-8,608,34,105,1,1,0.74286
-267,141,-5,607,34,105,1,1,0.47466
-268,141,-1,607,33,104,1,1,0.49748
-269,141,2,607,33,103,1,1,0.59219
-270,141,6,607,32,103,1,1,1
-271,141,6,605,36,102,1,1,1
-272,141,7,603,40,102,1,1,0.55008
-273,141,10,603,40,102,1,1,0.50272
-274,141,13,604,40,102,1,1,1
-275,141,17,605,39,102,1,1,1
-276,141,18,604,40,102,1,1,0.41463
-277,141,18,603,39,104,1,1,1
-278,141,19,603,39,106,1,1,1
-279,141,21,603,39,109,1,1,1
-280,141,23,604,40,110,1,1,1
-281,141,26,606,40,111,1,1,1
-282,141,27,607,40,112,1,1,1
-283,141,28,609,40,112,1,1,1
-284,141,31,612,39,112,1,1,1
-285,141,30,611,47,113,1,1,1
-286,141,30,611,54,113,1,1,1
-287,141,36,614,51,112,1,1,0.37662
-288,141,37,615,48,114,1,1,1
-289,141,38,616,45,117,1,1,1
-290,141,40,616,50,116,1,1,1
-291,141,41,618,51,119,1,1,1
-292,141,41,621,48,118,1,1,1
-293,141,42,621,49,118,1,1,1
-294,141,45,621,49,117,1,1,1
-295,141,45,621,50,119,1,1,1
-296,141,46,621,51,121,1,1,1
-297,141,46,625,51,121,1,1,1
-298,141,47,625,51,121,1,1,1
-299,141,46,626,51,121,1,1,1
-300,141,46,627,51,121,1,1,1
-301,141,46,628,51,121,1,1,1
-302,141,46,630,51,121,1,1,1
-303,141,47,633,50,121,1,1,1
-304,141,46,636,50,121,1,1,1
-305,141,45,639,51,121,1,1,1
-306,141,44,634,50,122,1,1,1
-307,141,45,633,49,124,1,1,0.37168
-308,141,43,640,49,123,1,1,0.395
-309,141,41,640,50,124,1,1,1
-310,141,40,641,51,125,1,1,1
-311,141,40,641,48,130,1,1,1
-312,141,39,641,50,130,1,1,1
-313,141,37,643,51,131,1,1,1
-314,141,36,646,51,131,1,1,1
-315,141,34,644,51,132,1,1,1
-316,141,33,646,50,131,1,1,1
-317,141,32,646,49,131,1,1,1
-318,141,32,647,49,133,1,1,1
-319,141,29,650,51,132,1,1,1
-320,141,25,648,53,135,1,1,1
-321,141,23,648,52,139,1,1,1
-322,141,18,647,55,140,1,1,1
-323,141,16,646,55,140,1,1,1
-324,141,15,646,54,140,1,1,1
-325,141,14,648,54,140,1,1,1
-326,141,10,647,52,141,1,1,1
-327,141,5,646,52,141,1,1,1
-328,141,1,650,52,141,1,1,1
-329,141,-4,645,60,144,1,1,0.91803
-330,141,-8,645,60,144,1,1,0.85246
-331,141,-14,645,61,144,1,1,0.75806
-332,141,-23,643,61,142,1,1,0.6129
-333,141,-29,645,61,143,1,1,0.51613
-334,141,-31,645,61,143,1,1,0.48387
-335,141,-38,645,61,141,1,1,0.37097
-336,141,-44,646,60,142,1,1,0.2623
-707,142,1313,536,23,53,1,1,0.22222
-708,142,1319,536,23,53,1,1,0.20602
-709,142,1325,531,24,53,1,1,0.28296
-710,142,1333,543,24,55,1,1,0.08
-711,142,1338,539,24,55,1,1,0.15143
-712,142,1344,535,23,56,1,1,0.25439
-713,142,1349,533,23,56,1,1,0.30556
-714,142,1354,531,24,57,1,1,0.35793
-715,142,1360,529,24,58,1,1,0.41424
-716,142,1365,527,24,58,1,1,0.46983
-717,142,1370,525,25,59,1,1,0.53846
-718,142,1376,524,25,59,1,1,0.48782
-719,142,1382,530,25,60,1,1,0.4855
-720,142,1385,526,25,61,1,1,0.62655
-721,142,1391,527,25,61,1,1,0.63524
-722,142,1397,529,25,60,1,1,0.63808
-723,142,1402,531,25,61,1,1,0.66935
-724,142,1406,538,25,60,1,1,0.68789
-725,142,1414,535,24,60,1,1,0.68525
-726,142,1418,542,25,61,1,1,0.6861
-727,142,1424,543,25,61,1,1,0.72705
-728,142,1430,549,24,61,1,1,0.75613
-729,142,1436,545,24,60,1,1,0.75738
-730,142,1442,549,25,62,1,1,0.71795
-731,142,1448,554,26,64,1,1,0.67179
-732,142,1454,552,25,64,1,1,0.66627
-733,142,1459,552,26,65,1,1,0.64254
-734,142,1464,552,27,66,1,1,0.6194
-735,142,1468,547,27,67,1,1,0.67227
-736,142,1472,547,27,68,1,1,0.68944
-737,142,1477,547,27,69,1,1,0.70816
-738,142,1482,547,27,70,1,1,0.74849
-739,142,1487,547,27,72,1,1,0.78425
-740,142,1489,550,28,68,1,1,0.81209
-741,142,1492,551,28,70,1,1,0.83341
-742,142,1496,552,28,72,1,1,0.83467
-743,142,1499,553,28,74,1,1,0.85655
-744,142,1503,555,28,75,1,1,0.85299
-745,142,1506,554,28,75,1,1,0.90744
-746,142,1509,554,28,75,1,1,0.93194
-747,142,1513,553,28,75,1,1,0.93466
-748,142,1516,553,28,75,1,1,0.93466
-749,142,1520,553,28,75,1,1,0.9147
-750,142,1522,552,29,75,1,1,0.94079
-137,143,1308,520,19,61,1,1,0.25161
-138,143,1302,520,19,62,1,1,0.40635
-139,143,1296,520,19,63,1,1,0.54375
-140,143,1292,519,19,63,1,1,0.58203
-141,143,1288,518,19,63,1,1,0.67969
-142,143,1284,517,19,63,1,1,0.66797
-143,143,1280,517,19,62,1,1,0.62222
-144,143,1276,517,19,62,1,1,0.48889
-145,143,1272,517,19,62,1,1,0.4
-146,143,1268,517,19,62,1,1,0.4
-147,143,1264,517,19,62,1,1,0.31111
-148,143,1258,517,19,61,1,1,0.17742
-149,143,1252,517,19,61,1,1,0.17742
-150,143,1247,517,19,61,1,1,0.13548
-151,143,1241,517,19,61,1,1,0.090323
-152,143,1236,517,18,61,1,1,0.028862
-153,143,1230,517,19,61,1,1,0.032258
-154,143,1225,517,18,61,1,1,0.032258
-155,143,1219,517,18,61,1,1,0.080645
-156,143,1214,517,18,61,1,1,0.091681
-157,143,1208,517,18,61,1,1,0.13752
-158,143,1203,517,18,61,1,1,0.15874
-159,143,1197,517,18,61,1,1,0.30221
-160,143,1191,517,18,61,1,1,0.4601
-161,143,1185,517,18,61,1,1,0.59593
-162,143,1180,517,17,61,1,1,0.74731
-163,143,1177,518,17,61,1,1,0.78047
-164,143,1175,513,18,66,1,1,0.74077
-165,143,1170,512,18,66,1,1,0.91045
-166,143,1165,512,18,66,1,1,1
-167,143,1161,512,18,66,1,1,1
-168,143,1156,511,18,67,1,1,1
-169,143,1151,511,18,67,1,1,1
-170,143,1147,511,18,67,1,1,1
-171,143,1146,513,19,61,1,1,1
-172,143,1146,514,16,62,1,1,0.9253
-173,143,1141,514,18,62,1,1,0.90476
-174,143,1137,514,19,62,1,1,0.87937
-175,143,1133,514,21,63,1,1,0.85156
-176,143,1129,515,22,62,1,1,0.83851
-177,143,1124,515,24,62,1,1,0.8273
-178,143,1120,515,26,63,1,1,0.82292
-179,143,1116,515,27,63,1,1,0.83036
-180,143,1112,516,29,63,1,1,0.83177
-181,143,1108,516,29,63,1,1,0.83177
-182,143,1105,516,29,64,1,1,0.82462
-183,143,1101,516,30,65,1,1,0.84213
-184,143,1098,516,29,66,1,1,0.85821
-185,143,1095,516,29,67,1,1,0.84167
-186,143,1091,516,30,67,1,1,0.84677
-187,143,1088,516,29,68,1,1,0.85217
-188,143,1084,516,30,69,1,1,0.87558
-189,143,1081,516,30,70,1,1,0.88551
-190,143,1078,516,30,71,1,1,0.90323
-191,143,1075,516,30,70,1,1,0.92004
-192,143,1072,517,30,69,1,1,0.93779
-193,143,1070,517,29,69,1,1,0.95667
-194,143,1067,518,30,68,1,1,0.96353
-195,143,1065,518,29,68,1,1,0.98116
-196,143,1062,519,29,67,1,1,0.98382
-197,143,1059,519,30,67,1,1,0.98435
-198,143,1057,520,29,66,1,1,0.99502
-199,143,1054,520,29,66,1,1,1
-200,143,1052,521,29,65,1,1,1
-201,143,1049,521,29,65,1,1,1
-202,143,1047,521,29,66,1,1,1
-203,143,1044,522,30,66,1,1,1
-204,143,1042,522,29,67,1,1,1
-205,143,1040,523,29,67,1,1,1
-206,143,1037,523,30,68,1,1,1
-207,143,1035,523,29,69,1,1,1
-208,143,1032,524,30,69,1,1,1
-209,143,1030,524,30,70,1,1,1
-210,143,1028,525,30,70,1,1,1
-211,143,1026,525,29,70,1,1,1
-212,143,1024,525,28,70,1,1,1
-213,143,1022,526,28,70,1,1,1
-214,143,1020,526,27,70,1,1,1
-215,143,1019,527,26,70,1,1,1
-216,143,1017,527,27,70,1,1,1
-217,143,1016,528,28,70,1,1,1
-218,143,1014,529,30,69,1,1,1
-219,143,1013,530,31,69,1,1,1
-220,143,1012,531,32,69,1,1,1
-221,143,1012,530,31,69,1,1,1
-222,143,1012,529,30,69,1,1,1
-223,143,1013,528,28,69,1,1,1
-224,143,1010,528,32,70,1,1,1
-225,143,1011,528,28,71,1,1,1
-226,143,1013,528,23,73,1,1,1
-227,143,1011,529,25,72,1,1,1
-228,143,1010,530,27,71,1,1,1
-229,143,1009,531,29,70,1,1,1
-230,143,1008,532,31,69,1,1,1
-231,143,1008,531,30,69,1,1,1
-232,143,1008,530,30,69,1,1,0.95161
-233,143,1008,529,30,70,1,1,0.86188
-234,143,1009,528,29,70,1,1,0.78216
-235,143,1010,528,29,70,1,1,0.76056
-236,143,1012,527,28,70,1,1,0.76056
-237,143,1013,527,28,70,1,1,0.74648
-238,143,1015,526,27,70,1,1,0.74648
-239,143,1016,526,27,70,1,1,0.73239
-240,143,1018,526,26,70,1,1,0.71831
-241,143,1020,526,27,70,1,1,0.70423
-242,143,1022,526,28,70,1,1,0.70423
-243,143,1025,526,28,70,1,1,0.69014
-244,143,1027,526,29,70,1,1,0.69014
-245,143,1029,526,30,70,1,1,0.66197
-246,143,1032,526,30,70,1,1,0.64789
-247,143,1034,526,31,70,1,1,0.6338
-248,143,1037,526,31,71,1,1,0.61111
-249,143,1041,526,31,70,1,1,0.61972
-250,143,1045,526,32,70,1,1,0.56893
-251,143,1050,527,31,72,1,1,0.49144
-252,143,1057,526,31,73,1,1,0.49662
-253,143,1060,528,31,72,1,1,0.36729
-254,143,1062,529,31,72,1,1,0.23116
-296,144,1266,525,26,77,1,1,0.18993
-297,144,1271,525,26,77,1,1,0.27493
-298,144,1277,526,26,77,1,1,0.35043
-299,144,1282,527,26,77,1,1,0.42735
-300,144,1287,529,28,84,1,1,0.55375
-301,144,1294,530,28,85,1,1,0.48998
-302,144,1296,528,36,89,1,1,0.42342
-303,144,1303,530,29,87,1,1,0.50985
-304,144,1308,537,29,86,1,1,0.45747
-305,144,1311,536,31,87,1,1,0.42969
-306,144,1314,539,31,86,1,1,0.3926
-307,144,1319,541,30,88,1,1,0.36789
-308,144,1325,541,30,87,1,1,0.36767
-309,144,1329,543,30,86,1,1,0.37634
-310,144,1335,542,30,85,1,1,0.36722
-311,144,1339,542,30,85,1,1,0.3841
-312,144,1343,543,30,84,1,1,0.40835
-313,144,1347,542,36,82,1,1,0.44122
-314,144,1349,541,36,85,1,1,0.44155
-315,144,1352,540,35,88,1,1,0.4382
-316,144,1355,540,34,91,1,1,0.41304
-317,144,1360,543,33,90,1,1,0.3956
-318,144,1364,544,33,89,1,1,0.41111
-319,144,1369,546,33,87,1,1,0.40909
-320,144,1371,544,33,86,1,1,0.43678
-321,144,1376,546,32,85,1,1,0.4186
-322,144,1379,546,31,86,1,1,0.4023
-323,144,1382,546,31,87,1,1,0.39773
-324,144,1384,542,35,84,1,1,0.48235
-325,144,1386,541,34,82,1,1,0.49398
-326,144,1389,540,33,81,1,1,0.4878
-327,144,1392,542,32,80,1,1,0.45679
-328,144,1394,540,30,82,1,1,0.46988
-329,144,1398,538,32,84,1,1,0.45419
-330,144,1399,540,30,84,1,1,0.43529
-331,144,1401,538,29,81,1,1,0.44472
-332,144,1403,536,29,78,1,1,0.46118
-333,144,1405,534,29,75,1,1,0.42105
-334,144,1407,532,28,72,1,1,0.42749
-335,144,1409,530,28,69,1,1,0.47143
-336,144,1411,528,28,66,1,1,0.44776
-337,144,1411,527,28,69,1,1,0.48571
-338,144,1411,526,28,73,1,1,0.48043
-339,144,1412,525,27,77,1,1,0.50092
-340,144,1412,525,27,77,1,1,0.49542
-341,144,1413,528,31,75,1,1,0.49836
-342,144,1413,531,31,75,1,1,0.44572
-343,144,1414,534,31,75,1,1,0.45888
-344,144,1415,538,31,74,1,1,0.45625
-345,144,1415,542,31,74,1,1,0.56
-346,144,1416,546,31,74,1,1,0.56
-347,144,1416,547,32,75,1,1,0.57895
-348,144,1416,548,33,76,1,1,0.59244
-349,144,1416,550,35,76,1,1,0.5974
-350,144,1416,551,35,77,1,1,0.60256
-351,144,1416,552,35,78,1,1,0.60759
-352,144,1417,554,35,78,1,1,0.58228
-353,144,1417,555,35,80,1,1,0.58025
-354,144,1418,557,35,80,1,1,0.61728
-355,144,1418,558,35,81,1,1,0.60027
-356,144,1419,560,35,82,1,1,0.59304
-357,144,1419,562,35,83,1,1,0.61905
-358,144,1419,564,35,84,1,1,0.6
-359,144,1419,567,35,84,1,1,0.58824
-360,144,1419,569,36,85,1,1,0.60465
-361,144,1419,572,36,86,1,1,0.58621
-362,144,1419,574,36,87,1,1,0.57955
-363,144,1419,576,37,88,1,1,0.58427
-364,144,1419,579,37,88,1,1,0.57303
-365,144,1419,581,37,89,1,1,0.55175
-366,144,1420,584,37,90,1,1,0.54569
-367,144,1420,584,36,90,1,1,0.55094
-368,144,1420,585,36,90,1,1,0.55539
-369,144,1420,585,35,91,1,1,0.54801
-370,144,1420,586,35,91,1,1,0.52174
-371,144,1420,586,35,92,1,1,0.5
-372,144,1420,587,34,91,1,1,0.47733
-373,144,1420,587,34,92,1,1,0.45591
-374,144,1420,588,33,92,1,1,0.47691
-375,144,1420,588,33,93,1,1,0.48811
-376,144,1420,589,33,93,1,1,0.49468
-377,144,1416,587,34,94,1,1,0.4782
-378,144,1413,585,34,95,1,1,0.45
-379,144,1410,584,35,95,1,1,0.57292
-380,144,1407,582,35,96,1,1,0.57732
-381,144,1404,581,36,97,1,1,0.58163
-382,144,1400,579,37,98,1,1,0.57576
-383,144,1397,577,37,99,1,1,0.59263
-384,144,1394,576,38,99,1,1,0.62513
-385,144,1391,574,38,100,1,1,0.62681
-386,144,1388,573,39,101,1,1,0.62819
-387,144,1382,572,39,103,1,1,0.65505
-388,144,1376,572,39,104,1,1,0.67786
-389,144,1370,572,39,105,1,1,0.70283
-390,144,1364,572,40,106,1,1,0.72236
-391,144,1358,572,40,108,1,1,0.74021
-392,144,1352,571,40,110,1,1,0.76379
-393,144,1346,571,41,111,1,1,0.78975
-394,144,1340,571,41,112,1,1,0.76823
-395,144,1334,571,41,113,1,1,0.76107
-396,144,1328,571,42,115,1,1,0.73837
-397,144,1318,570,43,115,1,1,0.77253
-398,144,1309,569,44,116,1,1,0.78462
-399,144,1300,569,44,116,1,1,0.80532
-400,144,1291,568,45,116,1,1,0.79431
-401,144,1282,567,45,117,1,1,0.79606
-402,144,1273,567,46,117,1,1,0.78038
-403,144,1262,566,46,117,1,1,0.8004
-404,144,1251,566,46,117,1,1,0.81518
-405,144,1240,566,46,117,1,1,0.81518
-406,144,1230,566,46,117,1,1,0.81248
-407,144,1217,565,46,117,1,1,0.83556
-408,144,1204,565,46,117,1,1,0.83556
-409,144,1191,565,46,117,1,1,0.84241
-410,144,1178,565,46,117,1,1,0.84241
-411,144,1165,565,46,117,1,1,0.85323
-412,144,1152,565,46,117,1,1,0.83321
-413,144,1136,563,46,118,1,1,0.83908
-414,144,1120,562,46,118,1,1,0.84355
-415,144,1105,561,45,118,1,1,0.84472
-416,144,1089,560,45,119,1,1,0.84601
-417,144,1074,559,45,119,1,1,0.85507
-418,144,1058,557,45,120,1,1,0.83848
-419,144,1042,556,45,121,1,1,0.81771
-420,144,1027,555,44,121,1,1,0.79781
-421,144,1011,554,44,121,1,1,0.78871
-422,144,996,553,44,122,1,1,0.76423
-423,144,976,551,43,123,1,1,0.77419
-424,144,956,550,42,123,1,1,0.78226
-425,144,936,549,41,123,1,1,0.79531
-426,144,916,548,41,124,1,1,0.8
-427,144,895,550,41,123,1,1,0.79839
-428,144,874,553,41,122,1,1,0.78862
-429,144,853,556,42,121,1,1,0.79508
-430,144,832,559,42,119,1,1,0.80833
-431,144,811,562,42,118,1,1,0.82353
-432,144,791,565,42,117,1,1,0.81356
-433,144,767,565,43,118,1,1,0.82353
-434,144,743,566,44,118,1,1,0.83193
-435,144,720,566,44,119,1,1,0.84167
-436,144,696,567,46,119,1,1,0.85
-437,144,673,567,46,120,1,1,0.8595
-438,144,649,568,47,120,1,1,0.86777
-439,144,626,569,48,120,1,1,0.8843
-440,144,602,570,48,120,1,1,0.89256
-441,144,578,571,48,121,1,1,0.89344
-442,144,554,572,49,122,1,1,0.89431
-443,144,528,572,49,121,1,1,0.92623
-444,144,503,573,49,120,1,1,0.94215
-445,144,477,574,50,119,1,1,0.96667
-446,144,452,575,50,118,1,1,0.98319
-447,144,425,572,51,122,1,1,1
-448,144,398,570,52,125,1,1,0.98413
-449,144,369,570,53,125,1,1,0.98413
-450,144,340,569,53,125,1,1,0.99206
-451,144,311,568,54,126,1,1,0.99213
-452,144,282,568,55,126,1,1,1
-453,144,250,568,56,127,1,1,1
-454,144,218,569,57,128,1,1,1
-455,144,187,569,57,129,1,1,0.5
-456,144,155,570,58,130,1,1,0.23729
-457,144,123,570,59,131,1,1,0.96667
-458,144,92,571,59,132,1,1,1
-459,144,54,574,60,133,1,1,1
-117,145,1419,524,21,59,1,1,0.05
-118,145,1414,523,21,59,1,1,0.058333
-119,145,1409,523,21,59,1,1,0.058333
-120,145,1404,522,21,60,1,1,0.21386
-121,145,1399,522,22,60,1,1,0.19886
-122,145,1394,522,22,60,1,1,0.18532
-123,145,1389,521,22,61,1,1,0.14306
-124,145,1384,521,22,61,1,1,0.13114
-125,145,1379,521,23,61,1,1,0.12097
-126,145,1374,520,23,61,1,1,0.19892
-127,145,1369,520,23,61,1,1,0.1828
-128,145,1364,519,23,62,1,1,0.18122
-129,145,1359,519,24,62,1,1,0.13143
-130,145,1354,519,24,62,1,1,0.12571
-131,145,1349,518,24,63,1,1,0.19437
-132,145,1344,518,24,63,1,1,0.335
-133,145,1340,518,24,63,1,1,0.24938
-134,145,1335,520,24,63,1,1,0.24938
-135,145,1330,519,24,63,1,1,0.285
-136,145,1326,519,24,63,1,1,0.25375
-137,145,1321,519,25,63,1,1,0.24399
-138,145,1317,518,24,63,1,1,0.285
-139,145,1312,518,25,63,1,1,0.3137
-140,145,1308,518,25,63,1,1,0.34856
-141,145,1303,517,25,63,1,1,0.30829
-142,145,1299,517,25,63,1,1,0.27404
-143,145,1294,517,26,63,1,1,0.36227
-144,145,1290,517,25,63,1,1,0.33534
-145,145,1285,517,26,63,1,1,0.32639
-146,145,1281,516,26,64,1,1,0.30484
-147,145,1277,516,25,64,1,1,0.31598
-148,145,1272,516,26,64,1,1,0.37208
-149,145,1268,516,26,63,1,1,0.41088
-150,145,1263,516,27,63,1,1,0.45145
-151,145,1259,516,26,63,1,1,0.47859
-152,145,1254,515,27,64,1,1,0.54066
-153,145,1250,515,27,64,1,1,0.54396
-154,145,1246,515,26,64,1,1,0.53162
-155,145,1241,515,27,64,1,1,0.48242
-156,145,1237,515,27,64,1,1,0.48462
-157,145,1232,515,27,63,1,1,0.46038
-158,145,1228,514,27,64,1,1,0.48462
-159,145,1223,514,28,64,1,1,0.43607
-160,145,1219,514,28,64,1,1,0.34058
-161,145,1215,514,27,64,1,1,0.24011
-162,145,1210,514,28,64,1,1,0.18302
-163,145,1206,513,28,65,1,1,0.11442
-164,145,1201,513,28,65,1,1,0.096134
-165,145,1197,513,28,64,1,1,0.10716
-166,145,1192,513,29,64,1,1,0.089231
-167,145,1188,513,28,64,1,1,0.075332
-168,145,1184,513,28,64,1,1,0.077984
-169,145,1179,512,29,65,1,1,0.12626
-170,145,1175,512,29,65,1,1,0.1
-171,145,1170,512,29,65,1,1,0.16667
-172,145,1166,512,29,65,1,1,0.21515
-173,145,1161,512,30,64,1,1,0.26998
-174,145,1157,512,29,64,1,1,0.33333
-175,145,1153,511,29,65,1,1,0.33636
-176,145,1148,511,30,65,1,1,0.39492
-177,145,1144,511,29,65,1,1,0.44343
-178,145,1139,511,30,65,1,1,0.435
-179,145,1135,511,30,65,1,1,0.46921
-180,145,1131,511,30,65,1,1,0.51075
-181,145,1128,511,30,65,1,1,0.57283
-182,145,1125,512,30,64,1,1,0.6005
-183,145,1122,512,30,64,1,1,0.63275
-184,145,1119,513,30,64,1,1,0.72308
-185,145,1117,514,29,63,1,1,0.74167
-186,145,1114,514,29,63,1,1,0.74167
-187,145,1111,515,29,63,1,1,0.75781
-188,145,1108,515,29,63,1,1,0.7474
-189,145,1105,516,29,62,1,1,0.74021
-190,145,1103,517,29,62,1,1,0.76296
-191,145,1100,517,29,62,1,1,0.7619
-192,145,1097,517,29,63,1,1,0.75313
-193,145,1094,518,29,62,1,1,0.75556
-194,145,1091,518,29,63,1,1,0.7125
-195,145,1088,519,29,62,1,1,0.69894
-196,145,1085,519,29,63,1,1,0.70833
-197,145,1082,519,29,63,1,1,0.675
-198,145,1079,520,29,63,1,1,0.66771
-199,145,1076,520,29,63,1,1,0.67396
-200,145,1074,521,29,63,1,1,0.66406
-201,145,1072,521,28,63,1,1,0.6945
-202,145,1070,521,28,63,1,1,0.70205
-203,145,1068,521,28,63,1,1,0.71336
-204,145,1067,521,27,63,1,1,0.78404
-205,145,1065,521,27,64,1,1,0.7967
-206,145,1063,521,27,64,1,1,0.80055
-207,145,1062,521,26,64,1,1,0.87863
-208,145,1060,521,26,64,1,1,0.88832
-209,145,1058,521,26,64,1,1,0.89402
-210,145,1057,521,25,65,1,1,0.92774
-211,145,1056,522,24,70,1,1,0.98873
-212,145,1055,523,24,70,1,1,0.99155
-213,145,1054,525,24,70,1,1,0.99662
-214,145,1053,527,24,70,1,1,1
-215,145,1052,527,24,69,1,1,1
-216,145,1051,527,24,68,1,1,1
-217,145,1050,527,25,68,1,1,0.97269
-218,145,1049,527,25,67,1,1,0.97285
-219,145,1048,527,25,66,1,1,0.94719
-220,145,1048,528,25,65,1,1,0.91958
-221,145,1048,527,24,66,1,1,0.9194
-222,145,1048,527,24,66,1,1,0.85552
-223,145,1048,527,24,67,1,1,0.79765
-224,145,1048,527,24,67,1,1,0.74235
-225,145,1048,527,24,68,1,1,0.68812
-226,145,1048,527,24,68,1,1,0.51536
-227,145,1048,527,24,68,1,1,0.59884
-228,145,1048,527,24,69,1,1,0.68343
-229,145,1048,527,24,69,1,1,0.76571
-230,145,1049,527,23,70,1,1,0.72477
-231,145,1049,526,23,70,1,1,0.69777
-232,145,1050,526,23,70,1,1,0.66667
-233,145,1051,525,23,71,1,1,0.60532
-234,145,1051,525,23,70,1,1,0.60739
-235,145,1052,525,23,70,1,1,0.6027
-236,145,1053,524,23,71,1,1,0.52257
-237,145,1053,524,23,70,1,1,0.52347
-238,145,1054,523,23,71,1,1,0.51389
-239,145,1055,523,23,71,1,1,0.48553
-240,145,1056,523,23,71,1,1,0.45833
-241,145,1058,522,23,71,1,1,0.46644
-242,145,1061,522,23,71,1,1,0.46644
-243,145,1063,522,23,71,1,1,0.46181
-244,145,1066,521,23,72,1,1,0.45091
-245,145,1068,521,24,72,1,1,0.43507
-246,145,1071,521,23,71,1,1,0.44271
-247,145,1073,520,24,72,1,1,0.44603
-248,145,1076,520,23,72,1,1,0.44692
-249,145,1078,520,24,72,1,1,0.44164
-250,145,1081,520,24,72,1,1,0.43671
-251,145,1085,520,24,72,1,1,0.41753
-252,145,1089,520,24,72,1,1,0.41699
-253,145,1093,520,24,72,1,1,0.42027
-254,145,1098,520,23,72,1,1,0.40297
-255,145,1102,520,24,72,1,1,0.38411
-256,145,1106,520,24,72,1,1,0.45205
-257,145,1111,520,23,72,1,1,0.40068
-258,145,1115,520,23,72,1,1,0.33048
-259,145,1119,520,23,72,1,1,0.24658
-307,146,1354,541,23,61,1,1,0.090726
-308,146,1358,541,24,63,1,1,0.145
-309,146,1362,541,25,66,1,1,0.19116
-310,146,1367,541,25,69,1,1,0.22143
-311,146,1371,541,26,72,1,1,0.25571
-312,146,1376,541,27,75,1,1,0.30827
-313,146,1380,542,28,73,1,1,0.30149
-314,146,1384,543,29,71,1,1,0.35972
-315,146,1389,544,30,70,1,1,0.38392
-316,146,1392,544,32,67,1,1,0.3975
-317,146,1396,544,30,72,1,1,0.41052
-318,146,1401,544,28,78,1,1,0.38717
-319,146,1404,544,28,75,1,1,0.19465
-320,146,1409,543,27,74,1,1,0.20381
-321,146,1414,542,26,73,1,1,0.20821
-322,146,1420,541,25,72,1,1,0.24341
-323,146,1422,542,27,71,1,1,0.32093
-324,146,1424,543,29,70,1,1,0.31408
-325,146,1427,545,30,68,1,1,0.30108
-326,146,1427,544,32,66,1,1,0.36364
-327,146,1433,542,28,66,1,1,0.31343
-328,146,1433,542,31,67,1,1,0.35294
-329,146,1435,541,29,71,1,1,0.36111
-330,146,1437,540,28,76,1,1,0.4026
-331,146,1438,536,28,72,1,1,0.42466
-332,146,1440,533,28,67,1,1,0.5
-333,146,1441,530,29,67,1,1,0.34314
-334,146,1442,528,30,67,1,1,0.11622
-335,146,1443,526,31,66,1,1,0.13806
-336,146,1444,524,32,66,1,1,0.15378
-337,146,1444,522,33,70,1,1,0.21002
-338,146,1444,521,35,74,1,1,0.22222
-339,146,1444,524,37,73,1,1,0.52703
-340,146,1444,525,39,72,1,1,0.50685
-341,146,1445,526,40,71,1,1,0.30556
-342,146,1451,528,35,71,1,1,0.27083
-343,146,1449,531,37,73,1,1,0.32859
-344,146,1450,535,40,76,1,1,0.57111
-345,146,1449,541,43,78,1,1,0.54661
-346,146,1450,541,46,80,1,1,0.58025
-347,146,1449,543,47,79,1,1,0.6
-348,146,1449,546,44,81,1,1,0.59756
-349,146,1454,547,40,80,1,1,0.60494
-350,146,1457,550,35,80,1,1,0.59259
-351,146,1457,549,39,80,1,1,0.62963
-352,146,1458,551,37,78,1,1,0.59694
-353,146,1458,553,39,79,1,1,0.57469
-354,146,1458,555,41,81,1,1,0.58885
-355,146,1458,557,39,81,1,1,0.63415
-356,146,1458,558,35,80,1,1,0.65432
-357,146,1459,562,35,79,1,1,0.65
-358,146,1459,564,35,79,1,1,0.65
-359,146,1458,563,35,79,1,1,0.63021
-360,146,1457,568,37,80,1,1,0.65432
-361,146,1458,569,38,80,1,1,0.63248
-362,146,1455,571,39,83,1,1,0.62768
-363,146,1455,572,38,89,1,1,0.59259
-364,146,1456,574,37,90,1,1,0.60064
-365,146,1457,576,36,91,1,1,0.6087
-366,146,1458,578,36,91,1,1,0.61957
-367,146,1458,581,40,91,1,1,0.6087
-368,146,1458,584,43,89,1,1,0.62222
-369,146,1456,585,43,90,1,1,0.6044
-370,146,1459,586,43,91,1,1,0.58696
-371,146,1460,589,43,89,1,1,0.56667
-372,146,1457,586,45,91,1,1,0.52316
-373,146,1456,584,44,92,1,1,0.54863
-374,146,1455,582,43,93,1,1,0.61702
-375,146,1455,581,42,93,1,1,0.62766
-376,146,1459,581,40,93,1,1,0.62766
-377,146,1458,580,41,93,1,1,0.6383
-378,146,1456,579,42,94,1,1,0.63158
-379,146,1453,576,43,91,1,1,0.68478
-380,146,1453,573,41,94,1,1,0.68421
-381,146,1452,571,40,94,1,1,0.70526
-382,146,1446,572,44,93,1,1,0.68085
-383,146,1443,570,44,94,1,1,0.67368
-384,146,1440,569,44,94,1,1,0.67368
-385,146,1438,568,43,95,1,1,0.67708
-386,146,1435,568,44,99,1,1,0.66
-387,146,1432,564,44,102,1,1,0.68932
-388,146,1425,565,45,103,1,1,0.68269
-389,146,1419,566,50,103,1,1,0.67308
-390,146,1415,566,50,104,1,1,0.67619
-391,146,1412,570,49,104,1,1,0.64762
-392,146,1408,567,48,109,1,1,0.65455
-393,146,1401,566,50,115,1,1,0.63793
-394,146,1394,566,50,111,1,1,0.66071
-395,146,1387,566,51,108,1,1,0.68807
-396,146,1381,566,50,111,1,1,0.67857
-397,146,1372,566,50,112,1,1,0.68142
-398,146,1364,566,52,112,1,1,0.69027
-399,146,1357,566,51,111,1,1,0.70536
-400,146,1345,566,51,111,1,1,0.69643
-401,146,1337,566,52,111,1,1,0.69643
-402,146,1329,563,52,121,1,1,0.65574
-403,146,1316,562,54,122,1,1,0.65854
-404,146,1307,562,54,122,1,1,0.65854
-405,146,1300,562,51,123,1,1,0.65323
-406,146,1288,561,51,121,1,1,0.68033
-407,146,1278,563,51,121,1,1,0.67213
-408,146,1266,563,51,118,1,1,0.68908
-409,146,1258,563,51,119,1,1,0.68333
-410,146,1241,563,51,117,1,1,0.69492
-411,146,1229,563,51,121,1,1,0.68033
-412,146,1215,563,51,120,1,1,0.68595
-413,146,1201,560,51,121,1,1,0.70492
-414,146,1186,560,51,121,1,1,0.70492
-415,146,1168,560,51,121,1,1,0.70492
-416,146,1153,560,51,121,1,1,0.70492
-417,146,1136,556,51,121,1,1,0.7459
-418,146,1129,555,42,119,1,1,0.76667
-419,146,1112,553,42,119,1,1,0.78333
-420,146,1091,552,53,124,1,1,0.76
-421,146,1074,549,52,129,1,1,0.75385
-422,146,1055,548,52,131,1,1,0.75
-423,146,1036,546,52,133,1,1,0.75373
-424,146,1017,548,52,130,1,1,0.75573
-425,146,995,548,52,131,1,1,0.75
-426,146,977,548,52,125,1,1,0.79365
-427,146,956,551,60,122,1,1,0.79675
-428,146,936,549,60,123,1,1,0.81452
-429,146,913,552,60,118,1,1,0.84874
-430,146,895,561,59,115,1,1,0.81897
-431,146,871,556,60,121,1,1,0.85246
-432,146,849,561,58,122,1,1,0.81301
-433,146,823,561,60,124,1,1,0.816
-434,146,806,566,59,115,1,1,0.85345
-435,146,776,559,60,122,1,1,0.87805
-436,146,762,559,50,120,1,1,0.90909
-437,146,744,556,42,128,1,1,0.89147
-438,146,717,558,44,129,1,1,0.88462
-439,146,693,558,43,129,1,1,0.90769
-440,146,673,559,43,129,1,1,0.91538
-441,146,648,557,44,134,1,1,0.91111
-442,146,617,557,50,135,1,1,0.91912
-443,146,592,562,52,132,1,1,0.92481
-444,146,567,566,51,131,1,1,0.91667
-445,146,552,566,44,121,1,1,1
-446,146,522,566,44,121,1,1,1
-447,146,491,563,43,123,1,1,1
-448,146,472,551,34,138,1,1,1
-449,146,440,552,34,138,1,1,1
-450,146,409,556,43,132,1,1,1
-451,146,379,561,43,132,1,1,1
-452,146,350,563,41,132,1,1,0.99248
-455,147,258,568,43,132,1,1,0.81818
-456,147,223,568,43,132,1,1,1
-457,147,192,570,43,132,1,1,1
-458,147,160,569,43,132,1,1,1
-459,147,129,573,42,136,1,1,1
-460,147,87,570,50,140,1,1,1
-461,147,50,573,54,139,1,1,1
-462,147,13,574,54,139,1,1,1
-290,148,1232,532,30,88,1,1,0.3784
-291,148,1242,535,31,87,1,1,0.27486
-292,148,1249,534,31,89,1,1,0.27813
-293,148,1256,533,31,91,1,1,0.27819
-294,148,1263,533,31,93,1,1,0.27527
-295,148,1270,533,31,92,1,1,0.28125
-296,148,1277,534,31,91,1,1,0.28125
-297,148,1284,535,31,89,1,1,0.28125
-298,148,1291,536,31,88,1,1,0.28125
-299,148,1298,537,31,87,1,1,0.28125
-300,148,1305,538,31,85,1,1,0.3125
-301,148,1312,539,31,84,1,1,0.3125
-302,148,1319,540,31,83,1,1,0.3125
-303,148,1327,544,31,84,1,1,0.21103
-304,148,1335,548,31,85,1,1,0.09375
-305,148,1341,549,30,88,1,1,0.047843
-306,148,1348,550,29,91,1,1,0.059783
-307,148,1355,551,31,91,1,1,0.056046
-308,148,1362,552,30,92,1,1,0.058273
-309,148,1369,553,30,93,1,1,0.061771
-310,148,1376,554,29,95,1,1,0.092014
-311,148,1383,555,27,93,1,1,0.088146
-312,148,1390,556,28,95,1,1,0.077586
-313,148,1397,558,29,87,1,1,0.061742
-314,148,1406,557,29,92,1,1,0.055197
-315,148,1411,557,30,91,1,1,0.078541
-316,148,1416,558,31,89,1,1,0.083333
-317,148,1424,559,31,84,1,1,0.082353
-318,148,1428,556,31,100,1,1,0.099938
-319,148,1433,558,27,103,1,1,0.11332
-320,148,1445,559,32,92,1,1,0.087977
-321,148,1444,559,31,97,1,1,0.11958
-322,148,1453,559,30,87,1,1,0.12097
-323,148,1463,560,29,77,1,1,0.11368
-324,148,1463,558,27,77,1,1,0.18315
-325,148,1473,559,27,78,1,1,0.16863
-326,148,1479,557,24,80,1,1,0.23901
-327,148,1485,558,26,82,1,1,0.21776
-328,148,1489,558,27,86,1,1,0.21552
-329,148,1492,555,29,88,1,1,0.24981
-330,148,1496,553,30,89,1,1,0.26667
-331,148,1499,551,32,90,1,1,0.27473
-332,148,1503,549,33,91,1,1,0.27174
-333,148,1507,547,35,93,1,1,0.2766
-334,148,1511,544,35,94,1,1,0.28421
-335,148,1519,542,36,94,1,1,0.3138
-336,148,1521,540,36,93,1,1,0.30851
-337,148,1527,542,38,93,1,1,0.32379
-338,148,1531,542,38,94,1,1,0.28259
-339,148,1535,543,39,94,1,1,0.27211
-340,148,1540,541,40,93,1,1,0.29476
-341,148,1544,544,41,93,1,1,0.29939
-342,148,1549,547,41,93,1,1,0.30091
-343,148,1554,551,41,93,1,1,0.29787
-344,148,1561,554,35,94,1,1,0.30351
-345,148,1568,557,37,94,1,1,0.31717
-346,148,1571,559,39,94,1,1,0.32632
-347,148,1575,562,40,93,1,1,0.33342
-348,148,1578,565,42,93,1,1,0.34166
-349,148,1582,568,43,92,1,1,0.33407
-350,148,1586,571,45,92,1,1,0.3324
-351,148,1589,572,47,92,1,1,0.35036
-352,148,1592,574,49,92,1,1,0.36731
-353,148,1595,576,51,92,1,1,0.37945
-354,148,1609,578,42,93,1,1,0.40995
-355,148,1610,580,45,97,1,1,0.40728
-356,148,1614,581,44,103,1,1,0.23397
-357,148,1618,582,44,109,1,1,0.22727
-358,148,1622,581,43,117,1,1,0.22939
-359,148,1623,584,47,125,1,1,0.39732
-360,148,1625,588,50,133,1,1,0.42025
-361,148,1632,591,48,134,1,1,0.47377
-362,148,1639,594,46,135,1,1,0.54537
-363,148,1647,598,43,136,1,1,0.65893
-364,148,1651,605,48,137,1,1,0.74682
-365,148,1651,606,52,137,1,1,0.76689
-366,148,1656,608,51,137,1,1,0.75864
-367,148,1661,610,51,138,1,1,0.82346
-368,148,1666,612,51,138,1,1,0.84186
-369,148,1671,614,51,139,1,1,0.88008
-370,148,1677,616,50,140,1,1,0.91378
-371,148,1682,614,50,141,1,1,0.93772
-372,148,1688,613,49,142,1,1,0.94895
-373,148,1694,612,48,143,1,1,0.93793
-374,148,1700,611,47,144,1,1,0.87989
-375,148,1703,608,48,148,1,1,0.8466
-376,148,1706,606,49,150,1,1,0.81642
-377,148,1709,604,50,153,1,1,0.83117
-378,148,1711,603,54,153,1,1,0.84947
-379,148,1714,603,57,152,1,1,0.81406
-380,148,1717,603,61,152,1,1,0.78653
-381,148,1719,603,75,151,1,1,0.79501
-382,148,1723,606,76,150,1,1,0.79083
-383,148,1727,606,74,152,1,1,0.78118
-384,148,1731,606,72,154,1,1,0.77994
-385,148,1732,605,69,155,1,1,0.77198
-386,148,1733,604,67,157,1,1,0.76266
-387,148,1734,604,65,157,1,1,0.76362
-388,148,1735,603,63,159,1,1,0.75645
-389,148,1736,603,61,160,1,1,0.75306
-390,148,1735,606,64,160,1,1,0.76445
-391,148,1735,609,66,161,1,1,0.76755
-392,148,1734,610,70,163,1,1,0.78332
-393,148,1733,611,74,166,1,1,0.78443
-394,148,1733,612,77,169,1,1,0.78959
-395,148,1730,612,86,169,1,1,0.75592
-396,148,1726,612,91,169,1,1,0.71675
-397,148,1724,615,90,167,1,1,0.70055
-398,148,1721,618,89,168,1,1,0.68619
-399,148,1718,616,84,170,1,1,0.72356
-400,148,1715,615,80,172,1,1,0.76643
-401,148,1711,614,78,175,1,1,0.8153
-402,148,1708,613,74,176,1,1,0.80753
-403,148,1705,612,71,178,1,1,0.78538
-404,148,1702,611,66,180,1,1,0.77802
-405,148,1695,612,65,179,1,1,0.87879
-406,148,1689,613,64,179,1,1,0.84615
-407,148,1684,616,68,182,1,1,0.73913
-408,148,1674,617,68,187,1,1,0.75362
-409,148,1667,618,66,185,1,1,0.76119
-410,148,1657,620,69,184,1,1,0.64286
-411,148,1648,622,71,183,1,1,0.56944
-412,148,1638,622,69,182,1,1,0.55714
-413,148,1628,622,68,181,1,1,0.53623
-414,148,1614,622,71,180,1,1,0.54167
-415,148,1604,622,64,181,1,1,0.50769
-416,148,1590,622,87,182,1,1,0.54545
-417,148,1576,622,86,184,1,1,0.51724
-418,148,1563,622,84,187,1,1,0.50588
-419,148,1549,622,83,189,1,1,0.47619
-420,148,1536,623,81,191,1,1,0.45122
-421,148,1522,623,80,193,1,1,0.45679
-422,148,1509,623,78,196,1,1,0.4557
-423,148,1496,624,76,198,1,1,0.54545
-424,148,1482,624,78,201,1,1,0.6962
-425,148,1463,625,80,203,1,1,0.77778
-426,148,1444,626,82,205,1,1,0.84337
-427,148,1425,628,84,206,1,1,0.91765
-428,148,1406,632,85,206,1,1,0.97674
-429,148,1388,636,86,207,1,1,1
-430,148,1370,640,87,207,1,1,1
-431,148,1351,644,88,208,1,1,1
-432,148,1333,648,89,208,1,1,1
-433,148,1315,653,90,208,1,1,1
-434,148,1295,653,91,209,1,1,1
-435,148,1271,655,92,211,1,1,1
-436,148,1247,657,93,214,1,1,1
-437,148,1223,660,94,216,1,1,1
-438,148,1199,662,95,219,1,1,1
-439,148,1176,665,95,221,1,1,1
-440,148,1152,667,96,223,1,1,1
-441,148,1128,669,97,226,1,1,1
-442,148,1104,672,98,228,1,1,1
-443,148,1080,674,99,231,1,1,1
-444,148,1057,677,100,233,1,1,1
-445,148,1029,676,100,241,1,1,1
-446,148,1002,676,99,249,1,1,1
-447,148,973,671,98,263,1,1,1
-448,148,942,672,104,266,1,1,1
-449,148,912,674,110,268,1,1,1
-450,148,880,672,107,275,1,1,1
-451,148,853,680,104,278,1,1,1
-452,148,819,685,106,276,1,1,1
-453,148,785,691,101,276,1,1,1
-454,148,752,697,95,277,1,1,1
-455,148,715,697,90,283,1,1,1
-456,148,679,696,91,294,1,1,1
-457,148,646,696,85,309,1,1,1
-458,148,609,699,84,316,1,1,1
-459,148,564,706,89,323,1,1,1
-460,148,520,714,94,329,1,1,1
-461,148,474,727,100,332,1,1,1
-462,148,429,735,105,335,1,1,1
-463,148,384,745,119,338,1,1,0.99115
-464,148,335,756,137,330,1,1,0.98187
-465,148,284,759,151,341,1,1,0.94152
-466,148,230,758,160,354,1,1,0.90986
-467,148,174,762,167,369,1,1,0.86216
-468,148,113,763,179,377,1,1,0.84127
-469,148,49,768,188,376,1,1,0.83024
-470,148,-10,775,196,386,1,1,0.74655
-471,148,-65,784,196,386,1,1,0.51033
-472,148,-125,799,196,386,1,1,0.26262
-74,149,1604,515,23,50,1,1,0.16422
-75,149,1601,520,24,49,1,1,0.2552
-76,149,1598,519,24,49,1,1,0.4408
-77,149,1595,518,25,50,1,1,0.46908
-78,149,1592,517,25,51,1,1,0.40385
-79,149,1589,516,26,51,1,1,0.37678
-80,149,1586,515,26,52,1,1,0.34451
-81,149,1584,515,26,52,1,1,0.31307
-82,149,1581,514,25,53,1,1,0.39601
-83,149,1578,513,24,54,1,1,0.40727
-84,149,1575,513,23,54,1,1,0.49773
-85,149,1573,515,23,52,1,1,0.50943
-86,149,1569,513,21,55,1,1,0.44075
-87,149,1566,514,20,54,1,1,0.38182
-88,149,1563,515,19,54,1,1,0.27273
-89,149,1560,516,19,54,1,1,0.27273
-90,149,1557,517,18,54,1,1,0.23445
-91,149,1554,519,18,53,1,1,0.22027
-92,149,1550,520,19,53,1,1,0.21296
-93,149,1547,521,19,53,1,1,0.21296
-94,149,1544,522,19,53,1,1,0.21296
-95,149,1541,523,19,53,1,1,0.16667
-96,149,1538,524,20,54,1,1,0.50476
-97,149,1534,525,21,54,1,1,0.4843
-98,149,1531,526,21,54,1,1,0.4843
-99,149,1528,527,21,54,1,1,0.4843
-100,149,1525,528,21,54,1,1,0.44132
-101,149,1522,529,22,55,1,1,0.46506
-102,149,1517,528,23,56,1,1,0.42982
-103,149,1513,528,23,56,1,1,0.36623
-104,149,1509,528,23,56,1,1,0.36623
-105,149,1505,528,23,56,1,1,0.36623
-106,149,1501,528,23,56,1,1,0.36623
-107,149,1497,527,23,57,1,1,0.29023
-108,149,1493,527,23,57,1,1,0.19397
-109,149,1489,527,23,57,1,1,0.24569
-110,149,1485,527,23,57,1,1,0.31753
-111,149,1481,527,23,58,1,1,0.35169
-112,149,1477,527,22,58,1,1,0.36109
-113,149,1473,527,22,58,1,1,0.39867
-114,149,1470,527,21,58,1,1,0.44992
-115,149,1466,527,21,58,1,1,0.48921
-116,149,1463,527,20,58,1,1,0.55609
-117,149,1459,527,20,58,1,1,0.58838
-118,149,1455,527,20,58,1,1,0.62954
-119,149,1452,527,19,58,1,1,0.64746
-120,149,1448,527,19,58,1,1,0.69153
-121,149,1445,528,18,57,1,1,0.71688
-122,149,1440,527,18,58,1,1,0.62177
-123,149,1436,527,18,58,1,1,0.57449
-124,149,1432,527,18,58,1,1,0.61463
-125,149,1427,527,19,58,1,1,0.58814
-126,149,1423,527,19,58,1,1,0.58814
-127,149,1419,526,18,59,1,1,0.72105
-128,149,1414,526,19,59,1,1,0.78333
-129,149,1410,526,19,59,1,1,0.915
-130,149,1406,526,19,59,1,1,1
-131,149,1402,526,19,60,1,1,1
-132,149,1398,525,19,61,1,1,1
-133,149,1394,525,19,61,1,1,1
-134,149,1390,525,19,61,1,1,1
-135,149,1386,524,20,62,1,1,0.95238
-136,149,1383,524,19,62,1,1,0.7
-137,149,1379,524,19,62,1,1,0.65
-138,149,1375,523,20,63,1,1,0.57143
-139,149,1371,523,20,63,1,1,0.57143
-140,149,1367,523,20,63,1,1,0.57143
-141,149,1364,523,20,63,1,1,0.47619
-142,149,1360,523,20,63,1,1,0.42857
-143,149,1357,523,20,64,1,1,0.38095
-144,149,1353,523,20,64,1,1,0.33333
-145,149,1350,523,20,65,1,1,0.28571
-146,149,1346,524,21,65,1,1,0.22727
-147,149,1343,524,20,65,1,1,0.19048
-148,149,1339,524,21,66,1,1,0.13636
-149,149,1336,524,20,66,1,1,0.095238
-150,149,1332,524,21,67,1,1,0.045455
-284,150,1307,542,36,114,1,1,0
-285,150,1314,541,42,112,1,1,0
-286,150,1322,541,43,112,1,1,0.090909
-287,150,1330,541,39,113,1,1,0.25
-288,150,1338,541,35,114,1,1,0.27778
-289,150,1343,542,39,113,1,1,0.8
-290,150,1348,540,36,116,1,1,0.7027
-291,150,1353,540,31,115,1,1,0.53125
-292,150,1358,541,32,114,1,1,0.45455
-293,150,1363,542,33,113,1,1,0.35294
-294,150,1368,544,34,113,1,1,0.25714
-295,150,1373,546,34,113,1,1,0.14286
-296,150,1378,545,39,114,1,1,0.22565
-297,150,1383,546,40,114,1,1,0.17328
-298,150,1388,548,41,114,1,1,0.086128
-299,150,1393,549,44,117,1,1,0.086252
-300,150,1398,551,49,116,1,1,0.14974
-301,150,1403,553,47,120,1,1,0.10434
-302,150,1408,555,51,119,1,1,0.1024
-303,150,1413,557,50,118,1,1,0.062943
-304,150,1418,559,49,118,1,1,0.052101
-305,150,1424,561,47,118,1,1,0.04937
-306,150,1429,563,46,117,1,1,0.061125
-307,150,1435,565,45,117,1,1,0.068718
-308,150,1440,567,44,117,1,1,0.079849
-309,150,1446,569,42,116,1,1,0.099384
-310,150,1451,571,41,116,1,1,0.10256
-311,150,1457,573,40,116,1,1,0.094434
-367,150,1595,660,48,205,1,1,0.092233
-368,150,1597,663,54,206,1,1,0.096618
-369,150,1594,665,62,214,1,1,0.10742
-370,150,1586,667,75,219,1,1,0.15072
-371,150,1576,673,88,214,1,1,0.1515
-372,150,1563,674,101,216,1,1,0.096503
-373,150,1563,675,99,219,1,1,0.1
-374,150,1564,676,97,223,1,1,0.089286
-375,150,1565,677,95,227,1,1,0.078947
-376,150,1567,677,93,227,1,1,0.074561
-377,150,1569,678,91,227,1,1,0.13687
-378,150,1571,678,83,227,1,1,0.19549
-379,150,1564,680,84,228,1,1,0.24192
-380,150,1556,682,79,228,1,1,0.22298
-381,150,1568,682,52,227,1,1,0.285
-382,150,1560,682,57,229,1,1,0.28096
-383,150,1553,682,62,231,1,1,0.29256
-384,150,1538,682,74,233,1,1,0.21926
-385,150,1513,681,90,235,1,1,0.098529
-386,150,1514,684,90,237,1,1,0.15569
-387,150,1512,684,90,239,1,1,0.18681
-388,150,1511,687,90,241,1,1,0.25747
-389,150,1513,686,90,243,1,1,0.36012
-390,150,1498,690,101,245,1,1,0.44815
-391,150,1479,692,108,247,1,1,0.4663
-392,150,1472,694,113,249,1,1,0.57853
-393,150,1463,696,107,252,1,1,0.62319
-394,150,1455,698,100,255,1,1,0.61502
-395,150,1447,700,93,258,1,1,0.60733
-396,150,1433,700,88,260,1,1,0.537
-397,150,1420,700,82,263,1,1,0.46554
-398,150,1406,703,77,262,1,1,0.35922
-399,150,1392,703,77,266,1,1,0.30856
-400,150,1384,705,73,267,1,1,0.27088
-401,150,1376,707,69,268,1,1,0.24488
-402,150,1360,713,71,269,1,1,0.15561
-403,150,1351,716,69,270,1,1,0.17501
-404,150,1333,719,78,271,1,1,0.22487
-405,150,1314,721,87,273,1,1,0.24506
-406,150,1296,723,93,278,1,1,0.24304
-407,150,1282,720,94,283,1,1,0.27168
-408,150,1266,720,90,289,1,1,0.22266
-409,150,1245,724,86,295,1,1,0.18135
-410,150,1221,730,94,300,1,1,0.16688
-411,150,1199,731,94,305,1,1,0.16529
-412,150,1177,733,92,311,1,1,0.15647
-413,150,1155,734,59,316,1,1,0.10095
-414,150,1131,735,60,324,1,1,0.11491
-415,150,1107,737,62,331,1,1,0.13224
-416,150,1079,737,62,337,1,1,0.14117
-417,150,1059,738,62,334,1,1,0.17114
-418,150,1033,743,63,334,1,1,0.17127
-419,150,1005,745,64,333,1,1,0.17725
-420,150,974,748,65,333,1,1,0.17746
-421,150,945,752,66,332,1,1,0.1765
-422,150,915,751,67,332,1,1,0.18636
-423,150,880,756,68,331,1,1,0.19072
-424,150,846,761,69,330,1,1,0.2006
-425,150,812,766,70,329,1,1,0.20431
-426,150,772,768,71,347,1,1,0.19145
-427,150,730,773,73,355,1,1,0.18069
-428,150,689,779,78,347,1,1,0.18093
-429,150,647,783,79,357,1,1,0.19291
-430,150,610,791,76,373,1,1,0.18849
-431,150,572,798,74,348,1,1,0.20867
-432,150,528,805,78,370,1,1,0.21365
-433,150,483,812,82,402,1,1,0.20909
-434,150,438,819,86,423,1,1,0.21031
-435,150,393,827,91,403,1,1,0.22955
-436,150,342,837,90,416,1,1,0.23522
-437,150,298,847,91,416,1,1,0.26632
-438,150,247,845,91,415,1,1,0.31041
-439,150,193,853,91,440,1,1,0.30854
-440,150,136,860,99,423,1,1,0.33816
-441,150,77,868,91,414,1,1,0.40911
-442,150,18,881,108,405,1,1,0.3985
-170,151,976,519,17,61,1,1,1
-171,151,973,518,17,61,1,1,1
-172,151,972,516,17,61,1,1,0.79211
-173,151,971,515,17,61,1,1,0.84677
-174,151,969,515,20,60,1,1,0.91257
-175,151,967,516,20,60,1,1,0.89696
-176,151,965,516,21,61,1,1,0.8871
-177,151,962,520,21,61,1,1,0.98827
-178,151,961,517,21,61,1,1,0.88416
-179,151,957,513,23,65,1,1,0.7904
-180,151,952,516,27,64,1,1,0.92747
-181,151,950,516,27,64,1,1,0.91154
-182,151,953,516,27,65,1,1,0.83117
-183,151,948,515,27,65,1,1,0.65043
-184,151,946,515,27,65,1,1,0.63312
-185,151,943,515,27,65,1,1,0.58658
-186,151,941,516,27,65,1,1,0.56818
-187,151,941,517,26,65,1,1,0.55556
-188,151,941,518,25,65,1,1,0.51632
-189,151,941,519,24,65,1,1,0.41697
-190,151,942,521,23,64,1,1,0.35256
-191,151,941,521,23,64,1,1,0.34103
-192,151,940,522,23,64,1,1,0.35
-193,151,939,523,24,64,1,1,0.312
-194,151,935,522,26,65,1,1,0.27722
-195,151,934,522,27,66,1,1,0.24307
-196,151,934,522,28,67,1,1,0.23124
-197,151,935,524,22,66,1,1,0.27839
-198,151,935,524,22,66,1,1,0.22193
-199,151,934,524,22,67,1,1,0.19437
-200,151,931,526,22,68,1,1,0.22684
-207,152,932,522,22,68,1,1,0.13233
-208,152,929,526,23,68,1,1,0.11957
-209,152,928,527,23,68,1,1,0.13949
-210,152,927,530,23,68,1,1,0.14795
-211,152,926,532,23,68,1,1,0.15217
-212,152,927,532,23,69,1,1,0.19286
-213,152,929,533,23,69,1,1,0.25714
-214,152,929,536,23,70,1,1,0.29754
-215,152,928,535,23,71,1,1,0.26389
-216,152,925,533,23,72,1,1,0.18493
-217,152,925,531,23,72,1,1,0.15068
-218,152,928,531,23,72,1,1,0.20091
-219,152,925,531,23,72,1,1,0.14612
-220,152,926,530,23,72,1,1,0.13699
-221,152,927,528,23,72,1,1,0.14384
-222,152,930,528,23,72,1,1,0.16952
-223,152,930,531,23,72,1,1,0.18836
-224,152,931,530,23,72,1,1,0.19178
-225,152,931,530,23,73,1,1,0.16273
-226,152,933,530,23,74,1,1,0.087222
-227,152,933,529,27,73,1,1,0.061776
-228,152,931,529,27,73,1,1,0.069015
-229,152,933,533,27,73,1,1,0.056467
-230,152,935,533,27,74,1,1,0.046667
-231,152,936,533,27,75,1,1,0.036654
-300,153,1373,539,29,89,1,1,0.044444
-301,153,1380,537,25,90,1,1,0.098901
-302,153,1386,538,28,95,1,1,0.10417
-303,153,1394,541,28,82,1,1,0.12796
-304,153,1401,544,29,86,1,1,0.12644
-305,153,1407,546,28,86,1,1,0.19976
-306,153,1413,550,29,90,1,1,0.25311
-307,153,1411,551,32,93,1,1,0.31657
-308,153,1418,551,36,98,1,1,0.35081
-309,153,1426,552,29,95,1,1,0.47222
-310,153,1434,554,34,102,1,1,0.43024
-311,153,1443,553,28,102,1,1,0.46602
-312,153,1448,553,25,101,1,1,0.51131
-313,153,1453,553,25,109,1,1,0.5014
-314,153,1459,554,25,106,1,1,0.49533
-315,153,1465,555,25,101,1,1,0.53884
-316,153,1471,556,28,102,1,1,0.49414
-317,153,1477,557,29,102,1,1,0.44466
-318,153,1483,555,28,102,1,1,0.43555
-319,153,1489,559,29,103,1,1,0.48846
-320,153,1493,555,25,106,1,1,0.57728
-321,153,1499,556,26,102,1,1,0.53398
-322,153,1504,556,25,99,1,1,0.58
-323,153,1509,557,26,91,1,1,0.56522
-324,153,1514,558,27,84,1,1,0.5563
-325,153,1519,559,28,77,1,1,0.50663
-326,153,1524,557,28,79,1,1,0.3625
-327,153,1530,556,28,80,1,1,0.24691
-328,153,1536,555,28,81,1,1,0.18377
-329,153,1542,554,28,82,1,1,0.17366
-330,153,1548,553,28,84,1,1,0.15416
-331,153,1552,548,28,87,1,1,0.17124
-332,153,1557,546,29,88,1,1,0.17079
-333,153,1562,545,30,88,1,1,0.17398
-334,153,1567,543,31,89,1,1,0.17361
-335,153,1572,542,32,89,1,1,0.16835
-336,153,1578,541,33,89,1,1,0.17255
-337,153,1584,544,34,88,1,1,0.11814
-338,153,1590,537,33,89,1,1,0.21797
-339,153,1595,538,31,88,1,1,0.24228
-340,153,1600,539,30,87,1,1,0.15836
-341,153,1606,541,28,86,1,1,0.19461
-342,153,1608,545,30,87,1,1,0.14296
-343,153,1610,549,33,89,1,1,0.21046
-344,153,1613,553,34,90,1,1,0.18838
-345,153,1615,557,37,92,1,1,0.16808
-346,153,1617,561,39,93,1,1,0.17021
-347,153,1620,566,41,94,1,1,0.1609
-348,153,1623,566,40,94,1,1,0.14326
-349,153,1626,566,41,96,1,1,0.1458
-350,153,1633,569,41,97,1,1,0.19291
-351,153,1639,570,42,98,1,1,0.23209
-352,153,1642,572,43,104,1,1,0.20108
-353,153,1646,574,44,110,1,1,0.18238
-354,153,1650,576,44,116,1,1,0.13561
-355,153,1654,578,45,122,1,1,0.11877
-356,153,1660,581,40,122,1,1,0.11124
-357,153,1668,584,40,121,1,1,0.07557
-358,153,1670,586,43,121,1,1,0.095007
-359,153,1673,589,45,121,1,1,0.10264
-360,153,1680,592,41,118,1,1,0.10204
-361,153,1688,595,41,117,1,1,0.069209
-362,153,1687,597,48,118,1,1,0.12965
-363,153,1696,599,52,114,1,1,0.056604
-364,153,1700,601,52,117,1,1,0.1567
-365,153,1704,603,49,125,1,1,0.12889
-366,153,1708,605,49,130,1,1,0.14901
-367,153,1712,607,52,130,1,1,0.14792
-368,153,1717,609,54,126,1,1,0.17079
-369,153,1722,611,49,133,1,1,0.18313
-370,153,1729,613,47,132,1,1,0.19173
-371,153,1737,615,45,131,1,1,0.16798
-372,153,1740,613,47,132,1,1,0.19627
-373,153,1743,611,49,133,1,1,0.22269
-374,153,1746,609,49,137,1,1,0.21551
-375,153,1750,608,52,138,1,1,0.22519
-376,153,1754,607,56,137,1,1,0.27028
-377,153,1757,605,53,138,1,1,0.29803
-378,153,1761,604,49,138,1,1,0.30835
-379,153,1765,603,49,138,1,1,0.33223
-380,153,1769,602,50,138,1,1,0.35125
-381,153,1773,601,53,138,1,1,0.11697
-382,153,1774,601,53,140,1,1,0.091148
-383,153,1775,601,54,142,1,1,0.10807
-384,153,1776,601,55,144,1,1,0.10653
-385,153,1777,601,56,146,1,1,0.18737
-386,153,1778,601,57,148,1,1,0.24936
-387,153,1779,601,58,150,1,1,0.29521
-388,153,1780,601,59,152,1,1,0.35414
-389,153,1781,601,60,154,1,1,0.41343
-390,153,1782,601,61,156,1,1,0.4286
-391,153,1784,602,61,158,1,1,0.35149
-392,153,1783,602,61,158,1,1,0.27592
-393,153,1782,603,61,158,1,1,0.18239
-394,153,1781,604,61,157,1,1,0.10514
-395,153,1780,605,61,157,1,1,0.022866
-396,153,1779,606,62,157,1,1,0.01748
-397,153,1774,606,60,158,1,1,0.027838
-398,153,1773,607,70,157,1,1,0.026475
-399,153,1772,608,65,157,1,1,0.018412
-400,153,1771,609,70,158,1,1,0.067499
-401,153,1770,610,76,162,1,1,0.23982
-402,153,1762,611,86,161,1,1,0.33589
-403,153,1754,612,90,165,1,1,0.36264
-404,153,1747,614,88,166,1,1,0.35955
-405,153,1739,616,88,160,1,1,0.35955
-406,153,1732,618,88,154,1,1,0.38202
-407,153,1725,612,85,163,1,1,0.37493
-408,153,1717,612,83,163,1,1,0.36041
-409,153,1710,613,80,162,1,1,0.34871
-410,153,1705,609,73,165,1,1,0.43243
-411,153,1706,613,60,162,1,1,0.55738
-412,153,1695,612,61,164,1,1,0.6129
-413,153,1684,612,62,166,1,1,0.66667
-414,153,1673,612,63,167,1,1,0.71875
-415,153,1662,612,65,169,1,1,0.78788
-416,153,1649,611,67,170,1,1,0.58867
-417,153,1637,611,69,170,1,1,0.64236
-418,153,1625,610,71,172,1,1,0.69501
-419,153,1613,610,73,172,1,1,0.74285
-420,153,1601,609,75,173,1,1,0.79008
-421,153,1589,609,77,174,1,1,0.83487
-422,153,1570,609,76,175,1,1,0.78483
-423,153,1552,609,74,176,1,1,0.74373
-424,153,1534,609,73,177,1,1,0.66588
-425,153,1516,609,74,179,1,1,0.65985
-426,153,1498,609,75,181,1,1,0.65406
-427,153,1480,610,77,182,1,1,0.65322
-428,153,1462,610,80,183,1,1,0.67391
-429,153,1444,611,84,184,1,1,0.68458
-430,153,1426,614,85,186,1,1,0.67964
-431,153,1414,619,84,185,1,1,0.73523
-432,153,1398,621,93,186,1,1,0.77244
-433,153,1376,624,101,185,1,1,0.75174
-434,153,1357,627,105,186,1,1,0.75633
-435,153,1338,630,104,187,1,1,0.78531
-436,153,1318,630,104,190,1,1,0.81192
-437,153,1299,633,101,190,1,1,0.84006
-438,153,1275,633,101,194,1,1,0.83308
-439,153,1256,631,97,197,1,1,0.86477
-440,153,1237,633,93,198,1,1,0.89415
-441,153,1218,635,88,197,1,1,0.92555
-442,153,1195,635,87,199,1,1,0.92591
-443,153,1172,636,86,200,1,1,0.92543
-444,153,1150,637,85,202,1,1,0.92531
-445,153,1127,638,85,205,1,1,0.97155
-446,153,1105,639,85,208,1,1,1
-447,153,1083,640,85,211,1,1,1
-448,153,1061,641,85,214,1,1,1
-449,153,1037,642,85,213,1,1,1
-450,153,1013,643,86,213,1,1,1
-451,153,987,645,85,214,1,1,1
-452,153,963,649,85,212,1,1,1
-453,153,936,649,85,216,1,1,1
-454,153,909,650,85,219,1,1,1
-455,153,883,651,84,222,1,1,1
-456,153,854,653,88,221,1,1,1
-457,153,826,655,89,226,1,1,1
-458,153,795,657,92,226,1,1,1
-459,153,762,660,92,230,1,1,1
-460,153,730,662,96,234,1,1,1
-461,153,696,666,97,238,1,1,1
-462,153,661,670,105,238,1,1,1
-463,153,626,673,116,238,1,1,1
-464,153,592,678,121,238,1,1,1
-465,153,558,683,128,238,1,1,1
-466,153,507,685,138,245,1,1,1
-467,153,473,690,133,246,1,1,1
-468,153,439,693,128,250,1,1,1
-469,153,396,694,132,254,1,1,1
-470,153,359,697,125,258,1,1,1
-471,153,324,696,124,262,1,1,1
-472,153,277,696,129,265,1,1,1
-473,153,237,696,127,270,1,1,1
-474,153,197,697,126,274,1,1,1
-475,153,157,698,125,278,1,1,1
-476,153,115,698,123,284,1,1,1
-477,153,74,699,120,290,1,1,1
-478,153,24,706,120,302,1,1,1
-479,153,-26,714,121,314,1,1,0.77869
-356,154,1645,565,37,127,1,1,0.2354
-357,154,1648,568,38,128,1,1,0.30888
-358,154,1651,569,39,129,1,1,0.13577
-359,154,1655,571,39,129,1,1,0.10692
-360,154,1658,573,39,130,1,1,0.14122
-361,154,1661,576,39,130,1,1,0.19752
-362,154,1664,578,39,131,1,1,0.13087
-363,154,1667,581,40,132,1,1,0.17898
-364,154,1669,584,41,130,1,1,0.15231
-365,154,1671,588,42,128,1,1,0.13413
-366,154,1673,592,43,126,1,1,0.12115
-367,154,1676,596,44,124,1,1,0.1072
-368,154,1681,597,45,125,1,1,0.11387
-369,154,1686,598,47,126,1,1,0.12008
-370,154,1687,598,48,127,1,1,0.14764
-371,154,1688,598,50,129,1,1,0.16501
-372,154,1689,598,52,130,1,1,0.13467
-373,154,1691,599,53,131,1,1,0.14829
-374,154,1704,601,42,132,1,1,0.074838
-375,154,1706,599,44,134,1,1,0.066667
-376,154,1709,597,46,136,1,1,0.065693
-377,154,1711,595,48,138,1,1,0.064748
-378,154,1714,594,50,140,1,1,0.06383
-379,154,1718,589,52,142,1,1,0.097902
-380,154,1719,588,53,144,1,1,0.10294
-381,154,1720,587,55,146,1,1,0.10811
-382,154,1721,586,57,148,1,1,0.16119
-383,154,1723,586,58,150,1,1,0.18734
-384,154,1725,586,58,151,1,1,0.21543
-385,154,1727,586,58,153,1,1,0.1937
-386,154,1730,586,57,154,1,1,0.15851
-387,154,1732,586,57,156,1,1,0.14156
-388,154,1735,587,56,157,1,1,0.098601
-389,154,1737,586,56,158,1,1,0.10405
-390,154,1739,585,57,159,1,1,0.12317
-391,154,1738,589,58,160,1,1,0.11464
-392,154,1738,590,58,161,1,1,0.11174
-393,154,1738,591,59,162,1,1,0.10961
-394,154,1735,592,59,162,1,1,0.11125
-395,154,1732,592,59,162,1,1,0.11411
-396,154,1729,593,59,162,1,1,0.11043
-397,154,1726,593,59,162,1,1,0.12393
-398,154,1723,593,59,162,1,1,0.14213
-399,154,1718,593,59,162,1,1,0.1362
-400,154,1713,593,59,162,1,1,0.15092
-401,154,1709,594,59,162,1,1,0.13988
-402,154,1705,592,59,162,1,1,0.15429
-403,154,1701,591,59,162,1,1,0.1636
-404,154,1692,591,60,162,1,1,0.20919
-405,154,1684,591,60,163,1,1,0.28529
-406,154,1676,591,60,164,1,1,0.31803
-407,154,1668,591,60,165,1,1,0.37182
-408,154,1660,592,60,165,1,1,0.34357
-409,154,1651,592,61,165,1,1,0.37281
-410,154,1643,592,61,166,1,1,0.3475
-411,154,1635,592,61,167,1,1,0.32776
-412,154,1627,592,61,168,1,1,0.28908
-413,154,1619,593,62,168,1,1,0.24364
-414,154,1606,592,62,168,1,1,0.23687
-415,154,1594,592,62,168,1,1,0.25171
-416,154,1582,592,62,168,1,1,0.21715
-417,154,1570,592,62,168,1,1,0.17977
-418,154,1558,592,62,168,1,1,0.15826
-419,154,1546,592,62,168,1,1,0.12088
-420,154,1534,592,62,168,1,1,0.10162
-421,154,1522,592,62,168,1,1,0.055321
-422,154,1510,592,62,168,1,1,0.054288
-423,154,1498,592,62,168,1,1,0.077487
-424,154,1479,593,62,169,1,1,0.092997
-425,154,1460,595,63,170,1,1,0.10618
-426,154,1442,597,62,171,1,1,0.11748
-427,154,1423,599,63,172,1,1,0.13268
-428,154,1405,601,63,173,1,1,0.15598
-429,154,1386,603,63,173,1,1,0.20151
-430,154,1367,605,64,174,1,1,0.22321
-431,154,1349,607,63,175,1,1,0.23491
-432,154,1330,609,64,176,1,1,0.25632
-433,154,1312,611,64,177,1,1,0.26871
-434,154,1291,611,64,178,1,1,0.28174
-435,154,1271,612,64,179,1,1,0.23889
-436,154,1250,612,64,181,1,1,0.24725
-437,154,1230,613,64,182,1,1,0.25683
-438,154,1210,613,63,184,1,1,0.26486
-439,154,1189,614,64,185,1,1,0.27419
-440,154,1169,614,63,187,1,1,0.28191
-441,154,1148,615,64,188,1,1,0.28571
-442,154,1128,615,63,190,1,1,0.29843
-443,154,1108,616,63,191,1,1,0.30208
-444,154,1084,616,67,195,1,1,0.30522
-445,154,1060,617,71,198,1,1,0.28322
-446,154,1036,617,75,202,1,1,0.30185
-447,154,1012,618,79,205,1,1,0.34248
-448,154,989,618,82,209,1,1,0.36288
-449,154,965,619,86,212,1,1,0.35168
-450,154,941,619,90,216,1,1,0.42396
-451,154,917,620,94,219,1,1,0.45287
-452,154,893,620,98,223,1,1,0.50839
-453,154,870,621,102,227,1,1,0.57052
-454,154,839,624,100,228,1,1,0.66721
-455,154,808,628,99,229,1,1,0.775
-456,154,777,631,98,231,1,1,0.79885
-457,154,746,635,97,232,1,1,0.83209
-458,154,715,638,96,234,1,1,0.83891
-459,154,684,642,95,235,1,1,0.8268
-460,154,653,645,94,237,1,1,0.82406
-461,154,622,649,93,238,1,1,0.80237
-462,154,591,652,92,240,1,1,0.77116
-463,154,560,656,91,241,1,1,0.73724
-464,154,520,657,93,244,1,1,0.78602
-465,154,481,659,95,247,1,1,0.82124
-466,154,442,660,97,251,1,1,0.69667
-467,154,402,662,100,254,1,1,0.73559
-468,154,363,664,102,257,1,1,0.76733
-469,154,324,665,104,261,1,1,0.7205
-470,154,284,667,107,264,1,1,0.72904
-471,154,245,668,109,268,1,1,0.74752
-472,154,206,670,111,271,1,1,0.66892
-473,154,167,672,113,274,1,1,0.64772
-474,154,122,677,109,276,1,1,0.70479
-475,154,77,682,105,278,1,1,0.76878
-476,154,32,687,102,280,1,1,0.81343
-477,154,-23,696,120,272,1,1,0.60549
-127,155,1169,524,18,46,1,1,0.40985
-128,155,1164,524,18,46,1,1,0.51288
-129,155,1160,524,18,46,1,1,0.51288
-130,155,1155,524,19,46,1,1,0.53723
-131,155,1151,524,18,46,1,1,0.62374
-132,155,1147,524,18,47,1,1,0.6239
-133,155,1142,524,19,47,1,1,0.69167
-134,155,1138,524,18,47,1,1,0.72807
-135,155,1133,524,19,47,1,1,0.79063
-136,155,1129,524,19,47,1,1,0.79063
-137,155,1125,524,19,48,1,1,0.8398
-138,155,1121,523,19,48,1,1,0.82959
-139,155,1117,523,19,48,1,1,0.87755
-140,155,1113,523,19,48,1,1,0.87755
-141,155,1110,522,18,49,1,1,0.90947
-142,155,1106,522,19,49,1,1,0.864
-143,155,1102,522,19,48,1,1,0.89694
-144,155,1099,521,18,49,1,1,0.87895
-145,155,1095,521,18,49,1,1,0.92632
-146,155,1091,521,18,49,1,1,0.92632
-147,155,1088,521,18,49,1,1,0.92105
-148,155,1083,521,18,49,1,1,0.91158
-149,155,1078,521,18,49,1,1,0.91789
-150,155,1073,521,18,49,1,1,0.92421
-151,155,1068,521,19,50,1,1,0.92941
-152,155,1063,521,19,50,1,1,0.93529
-153,155,1058,521,19,50,1,1,0.93137
-154,155,1054,522,19,50,1,1,0.94118
-155,155,1050,521,19,50,1,1,0.93137
-156,155,1045,523,19,51,1,1,0.95673
-157,155,1036,523,23,50,1,1,0.87745
-158,155,1032,523,22,49,1,1,0.87652
-159,155,1028,523,22,49,1,1,0.92
-160,155,1024,523,22,49,1,1,0.92
-161,155,1020,523,23,49,1,1,0.835
-162,155,1017,523,22,49,1,1,0.82087
-163,155,1013,523,23,50,1,1,0.82353
-164,155,1009,523,23,50,1,1,0.78186
-165,155,1006,523,22,50,1,1,0.81586
-166,155,1002,523,23,50,1,1,0.77614
-167,155,998,523,23,50,1,1,0.76797
-168,155,995,523,23,51,1,1,0.92949
-169,155,989,522,23,51,1,1,0.9351
-170,155,983,522,23,51,1,1,0.49119
-171,155,980,522,23,51,1,1,0.48558
-263,156,1028,524,30,77,1,1,0.35484
-264,156,1032,525,31,76,1,1,0.5625
-265,156,1036,526,32,76,1,1,0.75758
-266,156,1040,528,33,75,1,1,0.91176
-267,156,1049,529,33,75,1,1,0.97059
-268,156,1049,529,37,77,1,1,1
-269,156,1055,530,37,77,1,1,1
-270,156,1060,529,37,77,1,1,1
-271,156,1065,529,37,76,1,1,1
-272,156,1071,529,37,75,1,1,0.87361
-273,156,1075,528,37,76,1,1,0.90021
-274,156,1080,527,36,77,1,1,0.9501
-275,156,1085,527,36,77,1,1,0.94941
-276,156,1090,527,36,77,1,1,0.94941
-277,156,1095,528,36,77,1,1,0.94802
-278,156,1100,528,36,77,1,1,0.94802
-279,156,1105,528,36,77,1,1,0.94733
-280,156,1110,529,37,77,1,1,0.92206
-281,156,1115,529,38,77,1,1,0.89875
-282,156,1121,529,38,77,1,1,0.87344
-283,156,1127,529,38,77,1,1,0.84813
-284,156,1133,529,38,77,1,1,0.80605
-285,156,1137,528,38,76,1,1,0.73393
-286,156,1142,527,38,76,1,1,0.65634
-287,156,1147,527,37,75,1,1,0.60976
-288,156,1152,526,37,75,1,1,0.53566
-289,156,1157,525,36,75,1,1,0.47866
-290,156,1162,525,36,74,1,1,0.4018
-291,156,1167,525,35,72,1,1,0.39041
-292,156,1172,526,35,70,1,1,0.40023
-293,156,1177,527,35,68,1,1,0.39855
-294,156,1182,528,35,66,1,1,0.41045
-295,156,1186,527,36,70,1,1,0.41416
-296,156,1191,526,36,74,1,1,0.41766
-297,156,1196,526,36,77,1,1,0.4359
-298,156,1201,527,39,73,1,1,0.39459
-299,156,1206,527,39,77,1,1,0.44872
-300,156,1211,529,41,70,1,1,0.39302
-301,156,1216,532,44,63,1,1,0.37778
-302,156,1221,532,42,64,1,1,0.42004
-303,156,1226,532,40,65,1,1,0.46009
-304,156,1231,535,37,68,1,1,0.46949
-305,156,1236,538,35,66,1,1,0.47927
-306,156,1241,542,34,64,1,1,0.47824
-307,156,1246,543,32,63,1,1,0.51562
-308,156,1251,544,31,62,1,1,0.53968
-309,156,1256,545,31,62,1,1,0.52381
-310,156,1261,547,31,61,1,1,0.51613
-311,156,1259,547,36,62,1,1,0.52381
-312,156,1267,547,33,61,1,1,0.54839
-313,156,1269,548,34,64,1,1,0.52308
-314,156,1272,548,34,63,1,1,0.53125
-315,156,1276,548,34,62,1,1,0.55556
-316,156,1280,547,35,62,1,1,0.57143
-317,156,1285,546,35,63,1,1,0.59375
-318,156,1291,545,35,64,1,1,0.6
-319,156,1291,545,39,70,1,1,0.56338
-320,156,1296,545,41,71,1,1,0.55556
-321,156,1295,545,42,74,1,1,0.54667
-322,156,1304,546,42,71,1,1,0.54167
-323,156,1307,543,42,75,1,1,0.53947
-324,156,1311,541,42,75,1,1,0.55263
-325,156,1313,540,42,76,1,1,0.54545
-326,156,1316,540,42,76,1,1,0.53247
-327,156,1319,540,41,78,1,1,0.50633
-328,156,1323,540,43,77,1,1,0.5
-329,156,1326,539,43,75,1,1,0.51316
-330,156,1329,539,43,75,1,1,0.5
-331,156,1331,537,43,75,1,1,0.51077
-332,156,1333,534,43,78,1,1,0.50058
-333,156,1335,531,44,74,1,1,0.54222
-334,156,1337,527,44,75,1,1,0.55965
-335,156,1340,525,44,76,1,1,0.55411
-336,156,1343,524,44,77,1,1,0.4698
-337,156,1342,523,44,77,1,1,0.55185
-338,156,1342,522,44,78,1,1,0.60394
-339,156,1344,521,44,79,1,1,0.62778
-340,156,1346,521,44,80,1,1,0.64911
-341,156,1347,522,46,81,1,1,0.64971
-342,156,1349,524,47,81,1,1,0.64456
-343,156,1350,526,46,82,1,1,0.67598
-344,156,1351,529,46,83,1,1,0.67503
-345,156,1352,531,46,85,1,1,0.74666
-346,156,1353,534,46,85,1,1,0.72291
-347,156,1354,537,46,86,1,1,0.66324
-348,156,1356,539,45,88,1,1,0.64314
-349,156,1357,542,45,89,1,1,0.6413
-350,156,1358,545,45,89,1,1,0.62101
-351,156,1359,547,45,91,1,1,0.59972
-352,156,1360,550,45,92,1,1,0.56989
-353,156,1362,553,44,93,1,1,0.55272
-354,156,1362,554,45,94,1,1,0.56247
-355,156,1363,556,45,94,1,1,0.55286
-356,156,1364,557,45,96,1,1,0.5437
-357,156,1365,559,45,96,1,1,0.53608
-358,156,1366,561,46,97,1,1,0.52432
-359,156,1366,562,47,98,1,1,0.52083
-360,156,1367,564,47,98,1,1,0.55682
-361,156,1368,565,47,100,1,1,0.55507
-362,156,1369,567,47,100,1,1,0.56848
-363,156,1370,569,48,101,1,1,0.56283
-364,156,1370,570,48,101,1,1,0.59464
-365,156,1371,571,48,102,1,1,0.60769
-366,156,1372,572,48,103,1,1,0.62539
-367,156,1372,574,49,103,1,1,0.62577
-368,156,1373,575,49,104,1,1,0.63448
-369,156,1374,576,48,104,1,1,0.64101
-370,156,1374,578,49,104,1,1,0.62743
-371,156,1375,579,49,105,1,1,0.62264
-372,156,1376,580,49,106,1,1,0.61383
-373,156,1377,582,49,106,1,1,0.59813
-374,156,1375,580,49,106,1,1,0.63738
-375,156,1374,578,49,106,1,1,0.69047
-376,156,1373,577,49,106,1,1,0.68692
-377,156,1371,575,49,106,1,1,0.66729
-378,156,1370,574,49,106,1,1,0.64748
-379,156,1369,572,49,106,1,1,0.63832
-380,156,1367,570,49,106,1,1,0.61981
-381,156,1366,569,49,106,1,1,0.60336
-382,156,1365,567,49,106,1,1,0.60187
-383,156,1364,566,49,106,1,1,0.63215
-384,156,1360,565,49,106,1,1,0.65533
-385,156,1356,565,49,106,1,1,0.68822
-386,156,1352,564,49,106,1,1,0.71215
-387,156,1349,564,49,106,1,1,0.65963
-388,156,1345,564,49,106,1,1,0.63121
-389,156,1341,563,49,106,1,1,0.61533
-390,156,1338,563,49,106,1,1,0.56037
-391,156,1334,562,49,106,1,1,0.5286
-392,156,1330,562,49,106,1,1,0.4871
-393,156,1327,562,49,106,1,1,0.43215
-394,156,1320,561,49,106,1,1,0.45607
-395,156,1313,561,49,106,1,1,0.47421
-396,156,1306,561,49,106,1,1,0.49234
-397,156,1300,560,49,106,1,1,0.41981
-398,156,1293,560,49,106,1,1,0.3772
-399,156,1286,560,49,106,1,1,0.34056
-400,156,1280,559,49,106,1,1,0.28561
-401,156,1273,559,49,106,1,1,0.24131
-402,156,1266,559,49,106,1,1,0.2043
-403,156,1260,559,49,106,1,1,0.1172
-404,156,1247,558,49,106,1,1,0.14879
-405,156,1235,558,49,106,1,1,0.16729
-406,156,1223,557,49,106,1,1,0.21234
-407,156,1211,557,49,106,1,1,0.18579
-408,156,1199,557,49,106,1,1,0.16729
-409,156,1187,556,49,106,1,1,0.15738
-410,156,1175,556,49,106,1,1,0.13907
-411,156,1163,555,49,106,1,1,0.14486
-412,156,1151,555,49,106,1,1,0.14187
-413,156,1139,555,49,106,1,1,0.16785
-414,156,1123,553,49,107,1,1,0.17667
-415,156,1108,551,49,109,1,1,0.19909
-416,156,1093,550,49,109,1,1,0.216
-417,156,1078,548,49,111,1,1,0.22393
-418,156,1063,547,49,111,1,1,0.23393
-419,156,1048,545,48,113,1,1,0.24311
-420,156,1033,543,48,114,1,1,0.26761
-421,156,1018,542,48,115,1,1,0.28343
-422,156,1003,540,48,116,1,1,0.29147
-423,156,988,539,48,117,1,1,0.36648
-424,156,968,540,48,117,1,1,0.38672
-425,156,948,541,48,117,1,1,0.35559
-426,156,928,542,48,117,1,1,0.37945
-427,156,908,543,48,117,1,1,0.38481
-428,156,889,545,48,117,1,1,0.40194
-429,156,869,546,48,117,1,1,0.36648
-430,156,849,547,48,117,1,1,0.43826
-431,156,829,548,48,117,1,1,0.39952
-432,156,809,549,48,117,1,1,0.37842
-433,156,790,551,48,117,1,1,0.31097
-434,156,767,551,48,117,1,1,0.43532
-435,156,745,551,48,117,1,1,0.29747
-436,156,722,551,48,117,1,1,0.45832
-437,156,700,551,48,117,1,1,0.54946
-438,156,678,552,48,117,1,1,0.47112
-439,156,655,552,48,117,1,1,0.43756
-440,156,633,552,48,117,1,1,0.51591
-441,156,610,552,48,117,1,1,0.49395
-442,156,588,552,48,117,1,1,0.33795
-443,156,566,553,48,117,1,1,0.36095
-444,156,539,553,48,117,1,1,0.38136
-445,156,515,557,48,117,1,1,0.5467
-446,156,493,557,49,117,1,1,0.44254
-447,156,467,559,49,117,1,1,0.31966
-448,156,441,556,49,117,1,1,0.44373
-449,156,422,556,49,117,1,1,0.34237
-450,156,395,557,49,117,1,1,0.28
-451,156,366,557,49,117,1,1,0.28508
-452,156,322,550,48,123,1,1,0.33723
-453,156,294,552,48,123,1,1,0.76893
-453,157,504,560,44,147,1,1,0.17432
-454,157,471,561,45,150,1,1,0.051828
-455,157,438,562,46,153,1,1,0.055955
-456,157,406,564,47,155,1,1,0.053686
-457,157,373,565,48,159,1,1,0.057526
-458,157,340,566,49,162,1,1,0.061595
-459,157,308,568,50,164,1,1,0.059655
-460,157,275,569,51,167,1,1,0.059066
-461,157,243,571,52,170,1,1,0.46044
-462,157,211,573,50,165,1,1,0.055752
-463,157,180,575,56,165,1,1,0.055696
-464,157,146,577,57,174,1,1,0.58867
-465,157,100,578,69,171,1,1,0.52326
-466,157,66,576,72,174,1,1,0.61487
-467,157,31,576,69,174,1,1,0.068571
-468,157,-4,576,69,174,1,1,0.32024
-452,158,448,571,44,157,1,1,0.10464
-453,158,423,570,44,158,1,1,0.426
-454,158,395,571,44,157,1,1,0.48608
-455,158,368,572,41,158,1,1,0.5602
-456,158,338,574,41,162,1,1,0.56529
-457,158,307,576,45,162,1,1,0.55055
-458,158,276,578,49,162,1,1,0.5465
-459,158,241,580,56,162,1,1,0.50102
-460,158,206,582,63,162,1,1,0.5047
-461,158,172,584,69,163,1,1,0.47735
-462,158,134,587,70,162,1,1,0.52761
-463,158,100,589,70,162,1,1,0.55362
-464,158,61,589,73,170,1,1,0.60139
-465,158,23,589,77,170,1,1,0.5063
-466,158,-12,588,76,169,1,1,0.31169
-31,159,1473,522,22,51,1,1,0.020903
-32,159,1473,520,25,51,1,1,0.064349
-33,159,1474,508,24,51,1,1,0.11154
-34,159,1476,506,23,51,1,1,0.45192
-35,159,1478,504,23,51,1,1,0.38462
-36,159,1479,501,22,51,1,1,0.50669
-37,159,1479,500,22,51,1,1,0.60368
-38,159,1480,499,21,51,1,1,0.73601
-39,159,1483,502,21,51,1,1,0.76399
-40,159,1482,498,20,51,1,1,0.89011
-41,159,1483,499,20,52,1,1,0.91105
-42,159,1485,501,19,52,1,1,0.93774
-43,159,1486,506,18,47,1,1,0.98026
-44,159,1486,504,19,52,1,1,1
-45,159,1487,508,19,52,1,1,1
-46,159,1489,505,19,52,1,1,0.6
-47,159,1488,507,19,52,1,1,0.45
-48,159,1487,509,19,52,1,1,0.4
-49,159,1487,512,19,52,1,1,0.35
-50,159,1487,510,19,52,1,1,0.3
-51,159,1487,510,19,52,1,1,0.2
-52,159,1487,510,19,52,1,1,0.2
-53,159,1487,511,19,52,1,1,0.35
-54,159,1487,511,19,52,1,1,0.4
-55,159,1487,511,19,52,1,1,0.45
-56,159,1488,512,19,52,1,1,0.45
-57,159,1488,510,19,52,1,1,0.55
-58,159,1488,508,19,52,1,1,0.55
-59,159,1488,506,19,52,1,1,0.6
-60,159,1488,504,19,52,1,1,0.65
-61,159,1488,502,19,52,1,1,0.75
-62,159,1489,507,19,52,1,1,1
-63,159,1488,493,19,52,1,1,1
-64,159,1488,503,19,52,1,1,1
-65,159,1487,500,19,52,1,1,1
-66,159,1486,497,19,52,1,1,1
-67,159,1486,508,22,51,1,1,1
-68,159,1484,502,23,51,1,1,1
-69,159,1484,510,19,52,1,1,0.85
-70,159,1482,506,19,52,1,1,0.65
-71,159,1479,510,19,52,1,1,0.5
-72,159,1479,507,19,52,1,1,0.71981
-97,160,1395,522,19,52,1,1,0.15
-98,160,1390,521,18,54,1,1,0.26699
-99,160,1385,521,18,56,1,1,0.53832
-100,160,1382,520,19,54,1,1,0.35727
-101,160,1376,522,20,52,1,1,0.38095
-102,160,1372,520,20,52,1,1,0.43935
-103,160,1368,518,21,52,1,1,0.50858
-104,160,1364,519,21,52,1,1,0.52744
-105,160,1360,518,21,52,1,1,0.5446
-106,160,1356,518,21,52,1,1,0.60549
-107,160,1352,518,21,52,1,1,0.57633
-108,160,1348,517,22,52,1,1,0.55373
-109,160,1344,517,22,52,1,1,0.47006
-110,160,1340,517,22,52,1,1,0.56932
-111,160,1337,517,22,52,1,1,0.49713
-112,160,1332,517,22,52,1,1,0.43888
-113,160,1327,517,22,52,1,1,0.39869
-114,160,1322,517,22,52,1,1,0.35603
-115,160,1317,517,22,52,1,1,0.24364
-116,160,1312,517,23,52,1,1,0.2272
-117,160,1307,517,23,52,1,1,0.21698
-118,160,1302,517,23,52,1,1,0.19182
-119,160,1297,517,23,52,1,1,0.12893
-120,160,1292,517,23,52,1,1,0.038522
-121,160,1288,518,23,51,1,1,0.14183
-122,160,1284,518,23,51,1,1,0.14103
-123,160,1281,518,23,51,1,1,0.15385
-124,160,1278,519,23,51,1,1,0.14583
-125,160,1274,519,24,51,1,1,0.14462
-126,160,1271,519,24,51,1,1,0.18846
-127,160,1268,520,24,51,1,1,0.16538
-128,160,1264,520,24,51,1,1,0.15462
-129,160,1261,521,24,51,1,1,0.23692
-130,160,1258,521,24,51,1,1,0.30769
-131,160,1254,521,25,51,1,1,0.36982
-132,160,1251,522,25,51,1,1,0.40163
-133,160,1248,522,25,51,1,1,0.4253
-134,160,1245,523,25,51,1,1,0.49926
-135,160,1241,522,24,52,1,1,0.51774
-136,160,1237,522,24,52,1,1,0.52075
-137,160,1232,522,24,52,1,1,0.53962
-138,160,1228,522,24,52,1,1,0.57585
-139,160,1224,522,23,52,1,1,0.75
-140,160,1219,522,24,52,1,1,0.72
-141,160,1215,522,24,53,1,1,0.72
-142,160,1211,522,23,53,1,1,0.70833
-143,160,1206,522,24,53,1,1,0.68
-144,160,1202,522,23,53,1,1,0.70833
-145,160,1198,522,23,53,1,1,0.70833
-146,160,1194,523,23,53,1,1,1
-147,160,1189,522,23,53,1,1,0.66667
-148,160,1184,522,23,53,1,1,0.625
-149,160,1180,522,22,53,1,1,1
-150,160,1175,522,22,53,1,1,1
-151,160,1171,522,21,53,1,1,1
-152,160,1166,522,21,53,1,1,1
-153,160,1162,522,21,53,1,1,1
-154,160,1155,522,22,53,1,1,1
-155,160,1148,522,23,53,1,1,1
-200,161,900,529,24,55,1,1,0.44
-201,161,898,529,24,55,1,1,0.84571
-202,161,896,530,24,55,1,1,0.82643
-203,161,894,530,24,56,1,1,0.82947
-204,161,892,531,24,56,1,1,0.81053
-205,161,891,531,23,57,1,1,0.79885
-206,161,889,532,23,56,1,1,0.77485
-207,161,887,532,23,57,1,1,0.77083
-208,161,885,533,23,57,1,1,0.77083
-209,161,883,533,23,58,1,1,0.78814
-210,161,882,534,23,58,1,1,0.78814
-211,161,881,533,23,59,1,1,0.8
-212,161,880,533,23,59,1,1,0.79375
-213,161,880,533,23,60,1,1,0.79098
-214,161,879,533,23,60,1,1,0.78484
-215,161,879,533,23,60,1,1,0.7541
-216,161,878,533,23,61,1,1,0.77218
-217,161,878,533,23,61,1,1,0.70699
-218,161,877,533,23,61,1,1,0.67809
-219,161,877,533,23,62,1,1,0.58995
-220,161,878,536,23,62,1,1,0.5086
-221,161,878,539,22,58,1,1,0.4871
-222,161,876,534,22,60,1,1,0.57947
-223,161,876,533,22,61,1,1,0.55119
-224,161,877,533,21,61,1,1,0.53079
-225,161,877,533,22,62,1,1,0.49896
-226,161,878,533,21,62,1,1,0.4531
-227,161,878,533,21,62,1,1,0.44444
-228,161,879,533,21,63,1,1,0.42188
-229,161,879,533,21,63,1,1,0.39631
-230,161,880,533,21,64,1,1,0.33287
-231,161,881,532,21,64,1,1,0.32727
-232,161,882,532,22,64,1,1,0.32375
-233,161,884,532,21,63,1,1,0.31534
-234,161,885,531,22,64,1,1,0.31304
-235,161,886,531,22,63,1,1,0.34647
-236,161,888,531,22,63,1,1,0.30571
-237,161,888,531,23,61,1,1,0.36223
-238,161,888,531,24,60,1,1,0.40918
-239,161,889,531,25,59,1,1,0.42179
-240,161,891,530,27,60,1,1,0.38525
-241,161,892,529,27,60,1,1,0.41276
-242,161,893,529,25,63,1,1,0.50841
-243,161,898,529,25,68,1,1,0.44872
-244,161,900,529,25,67,1,1,0.681
-245,161,905,529,25,67,1,1,0.70928
-246,161,907,529,25,67,1,1,0.7862
-247,161,910,529,25,67,1,1,0.82183
-248,161,913,529,25,67,1,1,0.8914
-249,161,917,529,25,67,1,1,0.96324
-250,161,921,529,25,67,1,1,1
-251,161,925,530,25,67,1,1,1
-252,161,930,530,25,67,1,1,1
-253,161,934,532,25,67,1,1,1
-254,161,940,531,25,67,1,1,1
-255,161,944,531,25,67,1,1,1
-256,161,950,531,25,67,1,1,1
-257,161,954,531,25,67,1,1,1
-258,161,959,531,25,67,1,1,1
-259,161,964,531,25,67,1,1,1
-260,161,969,531,25,67,1,1,1
-261,161,974,531,25,67,1,1,1
-262,161,980,531,25,67,1,1,1
-263,161,985,531,25,67,1,1,1
-264,161,990,531,25,67,1,1,1
-265,161,995,531,25,67,1,1,1
-266,161,1000,531,25,67,1,1,1
-267,161,1006,532,25,67,1,1,1
-268,161,1011,531,24,72,1,1,1
-269,161,1016,530,24,71,1,1,1
-270,161,1022,530,23,69,1,1,1
-271,161,1027,529,25,70,1,1,1
-272,161,1032,528,28,72,1,1,1
-273,161,1040,530,23,70,1,1,1
-274,161,1046,529,23,70,1,1,1
-275,161,1052,529,23,70,1,1,0.94484
-276,161,1058,528,23,70,1,1,0.86502
-277,161,1064,528,24,70,1,1,0.82254
-278,161,1070,528,24,68,1,1,0.77565
-279,161,1076,528,24,67,1,1,0.71059
-280,161,1082,528,24,65,1,1,0.66909
-281,161,1088,528,24,64,1,1,0.61292
-282,161,1095,528,24,63,1,1,0.5725
-283,161,1100,528,24,61,1,1,0.47355
-284,161,1106,528,24,60,1,1,0.45902
-285,161,1112,528,24,59,1,1,0.46667
-286,161,1118,529,24,58,1,1,0.43932
-287,161,1125,529,24,57,1,1,0.40966
-288,161,1130,528,24,57,1,1,0.42483
-289,161,1136,528,23,56,1,1,0.42982
-290,161,1142,528,23,55,1,1,0.41667
-291,161,1148,527,23,55,1,1,0.40997
-292,161,1154,527,23,54,1,1,0.40909
-293,161,1160,527,23,53,1,1,0.39352
-294,161,1165,527,23,52,1,1,0.41981
-295,161,1170,527,23,51,1,1,0.41026
-296,161,1175,527,23,50,1,1,0.43137
-297,161,1180,527,23,50,1,1,0.43137
-298,161,1188,528,23,50,1,1,0.35049
-299,161,1193,529,23,50,1,1,0.35049
-300,161,1198,531,23,50,1,1,0.33987
-301,161,1204,532,23,50,1,1,0.31373
-302,161,1209,534,23,50,1,1,0.31373
-303,161,1214,535,23,50,1,1,0.32353
-304,161,1220,537,23,50,1,1,0.29657
-305,161,1225,538,23,50,1,1,0.30556
-306,161,1230,539,23,50,1,1,0.34641
-281,162,1165,530,26,71,1,1,0.22222
-282,162,1170,530,27,72,1,1,0.28571
-283,162,1175,530,28,73,1,1,0.37931
-284,162,1181,530,29,74,1,1,0.43333
-285,162,1189,530,24,74,1,1,0.64
-286,162,1194,528,26,75,1,1,0.66667
-287,162,1199,526,28,76,1,1,0.69324
-288,162,1204,525,30,77,1,1,0.71299
-289,162,1209,525,30,77,1,1,0.80893
-290,162,1214,525,30,78,1,1,0.5194
-291,162,1219,525,30,79,1,1,0.77419
-292,162,1224,525,30,79,1,1,0.82823
-293,162,1229,525,30,80,1,1,0.88371
-294,162,1234,526,30,80,1,1,0.94106
-295,162,1237,525,30,80,1,1,0.90641
-296,162,1242,526,30,80,1,1,0.81282
-297,162,1248,528,29,79,1,1,0.72
-298,162,1253,530,29,78,1,1,0.61519
-299,162,1259,532,28,78,1,1,0.50808
-300,162,1264,531,27,77,1,1,0.337
-301,162,1269,530,26,76,1,1,0.40885
-302,162,1274,530,26,75,1,1,0.38596
-303,162,1279,533,25,74,1,1,0.43077
-304,162,1285,537,24,73,1,1,0.41027
-305,162,1287,541,24,73,1,1,0.40216
-306,162,1291,541,25,73,1,1,0.39449
-307,162,1296,542,26,72,1,1,0.39675
-308,162,1300,543,27,74,1,1,0.41667
-309,162,1305,545,26,73,1,1,0.3964
-310,162,1309,545,27,73,1,1,0.42664
-311,162,1313,545,26,74,1,1,0.44938
-312,162,1318,546,24,74,1,1,0.46667
-313,162,1323,547,22,74,1,1,0.46667
-314,162,1327,548,23,68,1,1,0.45169
-315,162,1332,550,27,64,1,1,0.36264
-316,162,1336,550,27,64,1,1,0.31703
-317,162,1340,551,27,64,1,1,0.31319
-318,162,1344,552,27,64,1,1,0.31868
-319,162,1348,553,27,64,1,1,0.33462
-320,162,1351,548,27,63,1,1,0.20089
-321,162,1355,548,26,63,1,1,0.22801
-322,162,1359,548,26,63,1,1,0.20255
-323,162,1363,549,26,63,1,1,0.17245
-324,162,1367,549,26,63,1,1,0.14931
-325,162,1371,550,26,63,1,1,0.12963
-326,162,1376,548,26,63,1,1,0.12963
-327,162,1379,546,26,63,1,1,0.13368
-328,162,1382,544,26,63,1,1,0.14178
-329,162,1385,542,26,63,1,1,0.1603
-330,162,1386,539,26,63,1,1,0.14815
-331,162,1388,537,26,63,1,1,0.14815
-332,162,1390,535,26,63,1,1,0.13194
-333,162,1392,532,26,63,1,1,0.12731
-334,162,1394,530,26,63,1,1,0.11285
-335,162,1396,528,26,63,1,1,0.14062
-336,162,1399,528,26,63,1,1,0.11458
-270,163,1093,532,21,72,1,1,0.18182
-271,163,1098,532,21,72,1,1,0.27273
-272,163,1104,532,21,72,1,1,0.31818
-273,163,1109,532,22,72,1,1,0.43478
-274,163,1115,533,22,72,1,1,0.65217
-275,163,1120,532,23,73,1,1,0.75
-276,163,1125,532,24,73,1,1,0.8
-277,163,1130,531,25,74,1,1,0.76923
-278,163,1135,531,26,74,1,1,0.81481
-279,163,1140,530,25,75,1,1,0.92308
-280,163,1145,530,25,76,1,1,0.88462
-281,163,1150,530,24,77,1,1,1
-282,163,1155,530,24,77,1,1,1
-283,163,1160,530,23,78,1,1,1
-284,163,1165,530,23,79,1,1,1
-285,163,1170,529,22,79,1,1,1
-286,163,1175,528,22,79,1,1,1
-287,163,1180,528,22,78,1,1,1
-288,163,1185,527,22,78,1,1,1
-289,163,1190,527,21,77,1,1,1
-290,163,1195,526,21,77,1,1,0.86364
-291,163,1200,526,21,76,1,1,0.7804
-292,163,1205,525,21,76,1,1,0.65112
-293,163,1210,525,21,75,1,1,0.54785
-294,163,1215,525,21,75,1,1,0.42823
-295,163,1220,526,22,74,1,1,0.32522
-296,163,1225,527,23,73,1,1,0.26014
-297,163,1230,528,24,72,1,1,0.26301
-298,163,1235,529,26,71,1,1,0.20216
-299,163,1240,530,25,70,1,1,0.23294
-300,163,1245,531,25,70,1,1,0.32936
-301,163,1250,532,24,70,1,1,0.34254
-302,163,1255,534,24,69,1,1,0.34743
-303,163,1260,535,24,69,1,1,0.35829
-304,163,1266,537,24,68,1,1,0.36348
-305,163,1270,538,24,67,1,1,0.35412
-306,163,1275,539,24,67,1,1,0.32118
-307,163,1279,540,24,67,1,1,0.36941
-308,163,1284,541,24,67,1,1,0.35882
-309,163,1289,543,24,66,1,1,0.34507
-310,163,1293,544,24,65,1,1,0.34485
-311,163,1298,545,24,65,1,1,0.31818
-312,163,1302,546,24,65,1,1,0.33939
-313,163,1307,547,24,65,1,1,0.33939
-314,163,1312,549,24,64,1,1,0.30462
-315,163,1316,549,24,64,1,1,0.34031
-316,163,1320,549,24,64,1,1,0.34031
-317,163,1324,549,24,64,1,1,0.35569
-318,163,1328,549,24,64,1,1,0.36123
-319,163,1332,550,24,64,1,1,0.35754
-320,163,1336,550,24,64,1,1,0.47508
-321,163,1340,550,24,64,1,1,0.52923
-322,163,1344,550,24,64,1,1,0.45169
-323,163,1348,550,24,64,1,1,0.45908
-324,163,1352,551,24,64,1,1,0.45292
-325,163,1354,549,24,64,1,1,0.30954
-326,163,1357,547,24,64,1,1,0.35938
-327,163,1359,546,25,64,1,1,0.48107
-328,163,1362,544,24,64,1,1,0.43077
-329,163,1364,543,25,64,1,1,0.40118
-330,163,1367,541,25,64,1,1,0.42604
-331,163,1369,539,25,64,1,1,0.42604
-332,163,1372,538,25,64,1,1,0.43491
-333,163,1374,536,26,64,1,1,0.4188
-334,163,1377,535,26,64,1,1,0.42621
-335,163,1378,535,26,65,1,1,0.35915
-336,163,1380,536,26,65,1,1,0.3092
-337,163,1382,536,25,66,1,1,0.49254
-338,163,1383,537,26,67,1,1,0.47059
-339,163,1385,538,26,67,1,1,0.45588
-340,163,1387,538,25,68,1,1,0.44928
-341,163,1388,539,26,69,1,1,0.47143
-342,163,1390,539,25,70,1,1,0.50704
-343,163,1392,540,25,70,1,1,0.51679
-344,163,1394,541,25,71,1,1,0.336
-345,163,1395,542,25,72,1,1,0.35406
-346,163,1396,544,26,72,1,1,0.33993
-347,163,1398,546,26,73,1,1,0.34234
-348,163,1399,548,26,73,1,1,0.32933
-349,163,1401,550,26,74,1,1,0.29531
-350,163,1402,551,27,75,1,1,0.26504
-351,163,1403,553,27,75,1,1,0.24295
-352,163,1405,555,27,76,1,1,0.22959
-353,163,1406,557,28,76,1,1,0.20152
-507,164,1905,503,61,53,0,3,0.25806
-508,164,1872,507,69,49,0,3,0.7
-509,164,1843,507,72,50,0,3,1
-510,164,1815,507,70,53,0,3,1
-511,164,1785,508,70,52,0,3,1
-512,164,1756,510,70,51,0,3,1
-513,164,1727,511,69,51,0,3,1
-514,164,1698,513,69,50,0,3,1
-515,164,1670,512,68,50,0,3,1
-516,164,1643,511,66,50,0,3,1
-517,164,1615,510,65,50,0,3,1
-518,164,1588,509,64,50,0,3,1
-519,164,1563,507,64,50,0,3,1
-520,164,1539,506,63,50,0,3,1
-521,164,1514,505,63,50,0,3,1
-522,164,1490,504,62,50,0,3,1
-523,164,1466,503,61,50,0,3,1
-524,164,1442,502,60,50,0,3,1
-525,164,1418,501,60,50,0,3,1
-526,164,1394,500,59,50,0,3,0.99412
-527,164,1370,499,59,50,0,3,0.99216
-528,164,1347,499,58,49,0,3,0.99186
-529,164,1325,498,58,49,0,3,0.98814
-530,164,1304,497,57,49,0,3,0.98793
-531,164,1280,498,57,50,0,3,0.98377
-532,164,1261,499,58,49,0,3,0.97017
-533,164,1238,497,58,49,0,3,0.9739
-546,165,999,511,58,49,0,3,0.6678
-547,165,982,505,58,46,0,3,0.7198
-548,165,966,505,57,45,0,3,0.72226
-549,165,949,500,57,45,0,3,0.75412
-550,165,935,494,56,43,0,3,0.82018
-551,165,921,493,55,42,0,3,0.82973
-552,165,908,492,54,41,0,3,0.83636
-553,165,895,491,53,40,0,3,0.84463
-554,165,882,491,52,39,0,3,0.85802
-555,165,868,490,52,38,0,3,0.89598
-556,165,855,489,51,37,0,3,0.86336
-557,165,842,488,50,36,0,3,0.82936
-558,165,829,488,49,35,0,3,0.765
-559,165,814,487,51,36,0,3,0.73493
-560,165,799,487,53,37,0,3,0.71053
-561,165,787,486,53,37,0,3,0.71053
-562,165,775,486,53,37,0,3,0.68421
-563,165,763,486,54,37,0,3,0.65789
-564,165,751,486,54,37,0,3,0.63158
-565,165,739,485,54,38,0,3,0.64103
-566,165,727,485,55,38,0,3,0.64103
-567,165,715,485,55,38,0,3,0.66667
-568,165,703,485,56,38,0,3,0.66667
-569,165,693,484,54,38,0,3,0.71795
-570,165,683,484,53,37,0,3,0.71053
-571,165,673,483,53,37,0,3,0.71053
-572,165,663,483,54,37,0,3,0.71053
-573,165,654,482,54,38,0,3,0.69231
-574,165,644,482,55,38,0,3,0.66667
-575,165,634,482,55,37,0,3,0.68421
-576,165,625,481,55,38,0,3,0.71795
-577,165,615,481,56,38,0,3,0.69231
-578,165,606,481,56,38,0,3,0.67836
-579,165,600,482,52,38,0,3,0.6299
-580,165,594,483,49,38,0,3,0.59026
-581,165,586,482,50,38,0,3,0.60684
-582,165,579,481,50,39,0,3,0.5902
-583,165,571,481,51,39,0,3,0.57692
-584,165,564,480,52,40,0,3,0.59411
-585,165,557,479,52,41,0,3,0.59479
-586,165,549,479,53,41,0,3,0.57407
-587,165,542,478,53,42,0,3,0.56934
-588,165,535,478,54,42,0,3,0.59408
-589,165,531,477,53,42,0,3,0.63997
-590,165,527,477,52,41,0,3,0.63432
-591,165,523,477,52,41,0,3,0.65903
-592,165,520,477,52,41,0,3,0.70036
-593,165,516,477,52,41,0,3,0.72102
-594,165,513,477,52,41,0,3,0.74528
-595,165,509,477,53,41,0,3,0.72487
-596,165,506,477,52,41,0,3,0.71968
-597,165,502,477,53,41,0,3,0.74603
-598,165,499,477,53,42,0,3,0.7416
-599,165,498,481,53,42,0,3,0.72093
-600,165,498,486,53,42,0,3,0.70629
-601,165,497,484,53,42,0,3,0.73471
-602,165,496,483,53,42,0,3,0.79845
-603,165,495,482,53,42,0,3,0.82084
-604,165,494,481,53,42,0,3,0.8385
-605,165,493,480,53,42,0,3,0.84324
-606,165,492,479,53,42,0,3,0.84884
-607,165,491,478,53,42,0,3,0.86047
-608,165,491,477,53,42,0,3,0.87209
-609,165,490,476,53,42,0,3,0.88372
-610,165,489,476,53,42,0,3,0.8876
-611,165,488,475,53,42,0,3,0.8876
-612,165,488,475,53,42,0,3,0.90956
-613,165,487,475,53,42,0,3,0.90655
-614,165,486,474,53,42,0,3,0.8932
-615,165,486,474,53,42,0,3,0.88975
-616,165,485,473,53,42,0,3,0.91731
-617,165,484,473,53,42,0,3,0.93109
-618,165,484,473,53,42,0,3,0.9466
-619,165,483,473,53,42,0,3,0.9466
-620,165,483,474,53,42,0,3,0.94488
-621,165,482,475,53,42,0,3,0.97071
-622,165,482,476,53,42,0,3,0.98536
-623,165,483,476,53,42,0,3,1
-624,165,484,477,53,42,0,3,1
-625,165,485,478,53,42,0,3,1
-626,165,486,479,53,42,0,3,1
-627,165,487,480,53,42,0,3,1
-628,165,488,481,53,42,0,3,1
-629,165,491,485,53,42,0,3,1
-630,165,494,485,53,42,0,3,1
-631,165,497,486,53,41,0,3,1
-632,165,500,486,53,41,0,3,1
-633,165,504,487,53,41,0,3,1
-634,165,507,488,53,41,0,3,1
-635,165,510,489,53,41,0,3,1
-636,165,514,490,53,42,0,3,1
-637,165,517,491,53,42,0,3,1
-638,165,521,493,53,42,0,3,1
-639,165,525,493,53,42,0,3,1
-640,165,530,493,53,42,0,3,1
-641,165,535,494,53,42,0,3,1
-642,165,540,494,53,42,0,3,1
-643,165,545,495,53,42,0,3,1
-644,165,549,495,53,42,0,3,1
-645,165,554,495,53,42,0,3,1
-646,165,559,496,53,42,0,3,1
-647,165,564,496,53,42,0,3,1
-648,165,569,497,53,42,0,3,1
-649,165,574,497,53,41,0,3,1
-650,165,579,497,53,41,0,3,1
-651,165,587,494,53,41,0,3,1
-652,165,595,491,54,41,0,3,1
-653,165,599,491,53,41,0,3,1
-654,165,607,490,53,41,0,3,1
-655,165,615,489,54,42,0,3,1
-656,165,622,493,53,42,0,3,1
-657,165,631,495,53,41,0,3,1
-658,165,641,496,53,43,0,3,1
-659,165,648,510,53,42,0,3,1
-660,165,654,509,53,42,0,3,1
-661,165,659,509,53,42,0,3,1
-662,165,665,509,53,42,0,3,1
-663,165,672,507,53,42,0,3,1
-664,165,679,506,53,42,0,3,1
-665,165,686,504,53,42,0,3,1
-666,165,693,503,53,42,0,3,1
-667,165,700,501,53,43,0,3,1
-668,165,707,500,53,43,0,3,1
-669,165,716,497,53,42,0,3,1
-670,165,723,494,53,43,0,3,1
-671,165,730,492,53,43,0,3,1
-672,165,738,490,53,43,0,3,1
-673,165,745,488,53,43,0,3,1
-674,165,752,486,53,43,0,3,1
-675,165,760,484,53,43,0,3,1
-676,165,767,484,53,43,0,3,1
-677,165,774,484,53,43,0,3,1
-678,165,782,484,53,43,0,3,1
-679,165,788,492,53,43,0,3,1
-680,165,798,490,53,43,0,3,1
-681,165,800,511,53,42,0,3,1
-682,165,804,525,54,42,0,3,1
-683,165,811,503,53,43,0,3,1
-684,165,816,495,53,41,0,3,1
-685,165,823,490,53,41,0,3,1
-686,165,830,485,53,42,0,3,1
-687,165,837,482,53,43,0,3,1
-688,165,845,480,53,43,0,3,1
-689,165,851,479,53,42,0,3,1
-690,165,857,479,53,41,0,3,1
-691,165,863,478,53,42,0,3,1
-692,165,869,477,53,44,0,3,1
-693,165,876,477,53,45,0,3,1
-694,165,883,480,53,45,0,3,1
-695,165,891,483,53,45,0,3,1
-696,165,896,483,53,46,0,3,1
-697,165,902,483,53,47,0,3,1
-698,165,908,483,53,49,0,3,1
-699,165,918,485,53,48,0,3,1
-700,165,922,486,54,48,0,3,1
-701,165,928,486,54,48,0,3,1
-702,165,934,487,54,48,0,3,1
-703,165,939,489,54,49,0,3,1
-704,165,944,492,55,49,0,3,1
-705,165,950,494,54,49,0,3,1
-706,165,956,496,54,49,0,3,1
-707,165,959,496,55,49,0,3,1
-708,165,962,497,56,49,0,3,1
-709,165,967,500,58,50,0,3,1
-710,165,973,508,57,49,0,3,1
-711,165,976,504,57,50,0,3,1
-712,165,981,506,57,49,0,3,1
-713,165,984,504,58,50,0,3,1
-714,165,988,504,57,50,0,3,1
-715,165,992,504,57,50,0,3,1
-716,165,996,504,56,50,0,3,1
-717,165,1000,504,56,50,0,3,1
-718,165,1004,505,56,49,0,3,1
-719,165,1008,506,56,49,0,3,1
-720,165,1012,507,56,49,0,3,1
-721,165,1016,508,57,49,0,3,1
-722,165,1020,509,57,49,0,3,1
-723,165,1025,511,57,49,0,3,1
-724,165,1027,520,58,48,0,3,1
-725,165,1032,517,57,49,0,3,1
-726,165,1037,519,57,49,0,3,1
-727,165,1042,522,57,49,0,3,1
-728,165,1047,525,58,49,0,3,1
-729,165,1050,524,58,49,0,3,1
-730,165,1054,524,58,49,0,3,1
-731,165,1057,523,59,49,0,3,1
-732,165,1061,522,59,49,0,3,1
-733,165,1064,522,60,49,0,3,1
-734,165,1068,521,60,49,0,3,1
-735,165,1071,521,61,49,0,3,1
-736,165,1075,520,61,49,0,3,1
-737,165,1079,520,62,49,0,3,1
-738,165,1081,521,61,49,0,3,1
-739,165,1084,521,61,49,0,3,1
-740,165,1087,521,61,50,0,3,1
-741,165,1089,523,61,50,0,3,1
-742,165,1091,525,61,50,0,3,1
-743,165,1093,528,61,49,0,3,1
-744,165,1094,528,61,49,0,3,1
-745,165,1096,528,61,49,0,3,1
-746,165,1098,528,61,49,0,3,1
-747,165,1100,528,61,49,0,3,1
-748,165,1102,528,61,50,0,3,1
-749,165,1104,528,61,50,0,3,1
-750,165,1107,528,61,50,0,3,1
-586,166,920,526,100,61,0,3,0.09901
-587,166,915,525,100,61,0,3,0.13861
-588,166,910,524,100,61,0,3,0.16832
-589,166,906,524,100,61,0,3,0.18812
-590,166,901,523,100,61,0,3,0.23762
-591,166,897,523,100,61,0,3,0.25743
-592,166,894,522,102,62,0,3,0.29126
-593,166,891,522,104,63,0,3,0.32381
-594,166,889,522,105,63,0,3,0.34906
-595,166,886,522,107,64,0,3,0.37963
-596,166,884,522,108,65,0,3,0.42174
-597,166,883,521,110,69,0,3,0.46486
-598,166,882,521,111,68,0,3,0.51087
-599,166,881,521,113,68,0,3,0.5281
-600,166,880,521,114,68,0,3,0.5564
-601,166,880,521,115,68,0,3,0.57621
-602,166,879,521,115,69,0,3,0.60776
-603,166,878,522,116,70,0,3,0.62899
-604,166,878,523,116,71,0,3,0.67331
-605,166,878,522,116,72,0,3,0.69863
-606,166,878,522,117,73,0,3,0.72377
-607,166,878,522,118,73,0,3,0.75267
-608,166,879,521,117,75,0,3,0.78657
-609,166,879,521,118,75,0,3,0.81314
-610,166,879,521,119,76,0,3,0.83571
-611,166,880,521,119,77,0,3,0.85897
-612,166,880,521,119,77,0,3,0.88889
-613,166,880,522,120,77,0,3,0.90909
-614,166,880,522,120,78,0,3,0.93786
-615,166,880,523,121,77,0,3,0.96585
-616,166,880,523,121,78,0,3,0.99346
-617,166,880,524,122,78,0,3,1
-618,166,880,524,122,78,0,3,1
-619,166,880,525,123,78,0,3,1
-620,166,880,525,123,79,0,3,1
-621,166,881,526,123,79,0,3,1
-622,166,881,527,124,80,0,3,1
-623,166,882,529,124,80,0,3,1
-624,166,883,532,125,80,0,3,1
-625,166,885,535,125,80,0,3,1
-626,166,886,531,124,80,0,3,1
-627,166,890,534,123,79,0,3,1
-628,166,893,533,125,79,0,3,1
-629,166,896,533,127,79,0,3,1
-630,166,899,532,129,79,0,3,1
-631,166,903,532,130,79,0,3,1
-632,166,906,534,131,79,0,3,1
-633,166,910,536,131,79,0,3,1
-634,166,914,538,131,80,0,3,1
-635,166,919,537,132,80,0,3,1
-636,166,923,539,133,80,0,3,1
-637,166,928,541,133,81,0,3,1
-638,166,933,544,133,80,0,3,1
-639,166,938,546,133,81,0,3,1
-640,166,943,548,133,81,0,3,1
-641,166,948,551,134,81,0,3,1
-642,166,954,552,135,82,0,3,1
-643,166,961,554,135,83,0,3,1
-644,166,967,556,136,83,0,3,1
-645,166,973,559,138,83,0,3,1
-646,166,977,559,139,83,0,3,1
-647,166,984,560,140,84,0,3,1
-648,166,992,561,141,86,0,3,1
-649,166,999,560,142,87,0,3,1
-650,166,1007,559,142,89,0,3,1
-651,166,1015,558,142,91,0,3,1
-652,166,1024,549,143,92,0,3,1
-653,166,1033,548,143,93,0,3,1
-654,166,1042,547,144,93,0,3,1
-655,166,1050,547,144,94,0,3,1
-656,166,1057,551,150,87,0,3,1
-657,166,1068,556,152,88,0,3,1
-658,166,1079,561,152,92,0,3,1
-659,166,1090,570,152,93,0,3,1
-660,166,1097,573,152,96,0,3,1
-661,166,1104,576,152,100,0,3,1
-662,166,1113,579,153,99,0,3,1
-663,166,1123,582,153,98,0,3,1
-664,166,1132,584,155,100,0,3,1
-665,166,1141,585,157,100,0,3,1
-666,166,1150,586,159,100,0,3,1
-667,166,1159,587,161,101,0,3,1
-668,166,1168,588,163,101,0,3,1
-669,166,1177,589,165,101,0,3,1
-670,166,1187,590,167,102,0,3,1
-671,166,1197,587,170,103,0,3,1
-672,166,1207,586,171,103,0,3,1
-673,166,1217,586,173,103,0,3,1
-674,166,1228,583,174,104,0,3,1
-675,166,1237,583,174,106,0,3,1
-676,166,1247,583,174,109,0,3,1
-677,166,1260,591,176,112,0,3,1
-678,166,1270,587,178,113,0,3,1
-679,166,1282,589,180,114,0,3,1
-680,166,1291,598,182,115,0,3,1
-681,166,1300,608,184,116,0,3,1
-682,166,1314,602,185,119,0,3,1
-683,166,1319,600,188,119,0,3,1
-684,166,1326,592,191,118,0,3,1
-685,166,1338,581,192,121,0,3,1
-686,166,1348,576,194,122,0,3,1
-687,166,1358,577,197,122,0,3,1
-688,166,1369,578,200,123,0,3,1
-689,166,1380,579,202,123,0,3,1
-690,166,1391,580,205,124,0,3,1
-691,166,1402,581,208,125,0,3,1
-692,166,1412,591,211,125,0,3,1
-693,166,1424,591,213,129,0,3,1
-694,166,1435,598,214,130,0,3,1
-695,166,1447,606,215,131,0,3,1
-696,166,1458,609,218,133,0,3,1
-697,166,1470,612,220,136,0,3,1
-698,166,1482,616,222,138,0,3,1
-699,166,1493,628,224,140,0,3,1
-700,166,1505,629,227,141,0,3,1
-701,166,1517,631,230,142,0,3,1
-702,166,1526,639,234,144,0,3,1
-703,166,1536,648,238,146,0,3,1
-704,166,1544,649,242,149,0,3,1
-705,166,1553,654,246,150,0,3,1
-706,166,1563,659,250,152,0,3,1
-707,166,1573,661,254,153,0,3,1
-708,166,1584,663,258,154,0,3,1
-709,166,1595,665,261,155,0,3,1
-710,166,1606,668,265,156,0,3,1
-711,166,1618,651,269,157,0,3,1
-712,166,1632,661,269,158,0,3,1
-713,166,1642,648,269,160,0,3,1
-714,166,1653,646,269,161,0,3,0.99259
-715,166,1664,645,269,162,0,3,0.95185
-716,166,1675,641,269,163,0,3,0.91111
-717,166,1686,641,269,164,0,3,0.87037
-718,166,1697,642,270,164,0,3,0.82657
-719,166,1708,658,270,166,0,3,0.78598
-720,166,1719,649,269,166,0,3,0.74815
-721,166,1730,652,268,168,0,3,0.71004
-722,166,1743,658,267,168,0,3,0.66418
-723,166,1756,665,267,168,0,3,0.61567
-724,166,1769,672,267,168,0,3,0.56716
-725,166,1782,678,267,168,0,3,0.51866
-726,166,1795,685,267,168,0,3,0.47015
-727,166,1808,692,267,168,0,3,0.42164
-728,166,1821,699,267,168,0,3,0.37313
-729,166,1834,697,268,168,0,3,0.32342
-730,166,1847,703,268,168,0,3,0.27509
-731,166,1861,709,268,168,0,3,0.22305
-732,166,1870,710,267,168,0,3,0.1903
-733,166,1879,711,267,168,0,3,0.15672
-734,166,1898,716,269,169,0,3,0.085185
-563,167,732,482,42,28,0,3,0.34082
-564,167,720,479,41,29,0,3,0.46587
-565,167,710,479,41,29,0,3,0.60952
-566,167,701,479,41,29,0,3,0.69524
-567,167,692,479,41,29,0,3,0.6381
-568,167,682,479,41,29,0,3,0.6
-569,167,673,479,41,29,0,3,0.56349
-570,167,664,479,41,29,0,3,0.54365
-571,167,655,479,41,29,0,3,0.50476
-572,167,646,479,41,29,0,3,0.48413
-573,167,637,479,41,29,0,3,0.46429
-574,167,629,479,41,29,0,3,0.40952
-575,167,620,479,41,29,0,3,0.38889
-576,167,611,479,41,29,0,3,0.37778
-577,167,603,479,41,29,0,3,0.32381
-578,167,594,479,41,29,0,3,0.31429
-579,167,585,479,41,29,0,3,0.38571
-580,167,577,479,41,29,0,3,0.43016
-581,167,570,477,42,29,0,3,0.43953
-582,167,564,476,42,29,0,3,0.41085
-583,167,557,475,42,30,0,3,0.4036
-584,167,550,475,42,30,0,3,0.37134
-585,167,544,475,41,30,0,3,0.32873
-586,167,539,474,41,30,0,3,0.30722
-587,167,534,474,41,30,0,3,0.23963
-588,167,530,474,41,30,0,3,0.202
-589,167,525,474,41,30,0,3,0.19355
-590,167,521,474,41,30,0,3,0.18894
-591,167,517,474,41,30,0,3,0.18433
-592,167,514,475,41,30,0,3,0.15207
-593,167,510,475,41,30,0,3,0.15207
-594,167,506,475,41,30,0,3,0.17742
-595,167,505,472,42,29,0,3,0.22248
-596,167,501,472,42,29,0,3,0.23643
-597,167,498,473,42,29,0,3,0.18915
-598,167,496,475,42,29,0,3,0.11085
-599,167,494,477,42,29,0,3,0.18295
-600,167,493,479,41,30,0,3,0.27189
-601,167,495,478,33,30,0,3,0.22201
-602,167,494,477,34,30,0,3,0.22488
-603,167,493,476,35,30,0,3,0.22401
-604,167,493,476,36,30,0,3,0.17698
-605,167,492,475,37,30,0,3,0.17572
-606,167,492,475,37,30,0,3,0.12903
-607,167,491,474,39,30,0,3,0.12903
-608,167,491,474,39,30,0,3,0.096774
-609,167,490,473,40,30,0,3,0.096774
-180,168,1172,454,69,69,0,11,1
-181,168,1171,454,69,69,0,11,1
-182,168,1169,454,69,69,0,11,1
-183,168,1167,454,69,69,0,11,1
-184,168,1165,455,69,69,0,11,1
-185,168,1164,455,69,69,0,11,1
-186,168,1163,455,69,69,0,11,1
-187,168,1162,455,69,69,0,11,1
-188,168,1160,455,69,69,0,11,1
-189,168,1158,455,69,69,0,11,1
-190,168,1158,454,68,72,0,11,1
-255,169,1376,425,140,133,0,11,1
-256,169,1392,423,140,133,0,11,1
-257,169,1408,422,140,133,0,11,1
-258,169,1423,420,140,133,0,11,1
-259,169,1439,418,140,133,0,11,1
-260,169,1451,416,143,138,0,11,1
-261,169,1464,415,146,143,0,11,1
-262,169,1482,414,150,142,0,11,1
-263,169,1499,413,155,150,0,11,1
-264,169,1516,413,160,157,0,11,1
-265,169,1534,413,165,160,0,11,1
-266,169,1552,414,170,162,0,11,1
-267,169,1579,415,170,162,0,11,1
-268,169,1601,416,170,162,0,11,1
-114,170,1413,517,14,78,0,10,1
-115,170,1411,517,14,78,0,10,1
-116,170,1407,514,13,83,0,10,1
-117,170,1405,513,13,83,0,10,1
-118,170,1402,511,13,83,0,10,1
-119,170,1400,510,13,83,0,10,1
-120,170,1396,510,13,83,0,10,1
-121,170,1393,510,13,83,0,10,1
-122,170,1389,510,13,83,0,10,1
-123,170,1386,510,13,83,0,10,1
-124,170,1382,511,13,83,0,10,1
-125,170,1379,511,13,83,0,10,1
-126,170,1375,511,13,83,0,10,1
-127,170,1372,511,13,83,0,10,1
-128,170,1368,511,13,83,0,10,1
-129,170,1365,512,13,83,0,10,1
-130,170,1361,512,13,83,0,10,1
-131,170,1358,513,13,82,0,10,0.92427
-132,170,1355,513,12,83,0,10,0.90842
-133,170,1351,514,13,82,0,10,0.89587
-134,170,1348,514,12,82,0,10,0.86747
-135,170,1345,515,12,82,0,10,0.88786
-136,170,1341,515,12,81,0,10,0.88743
-137,170,1338,515,12,81,0,10,0.89681
-138,170,1336,514,12,81,0,10,0.89681
-139,170,1334,514,12,81,0,10,0.91557
-140,170,1332,514,12,81,0,10,0.91557
-141,170,1330,514,12,81,0,10,0.92495
-142,170,1328,514,12,81,0,10,0.92495
-143,170,1325,514,12,81,0,10,0.92495
-144,170,1322,514,12,81,0,10,0.91557
-145,170,1319,516,12,81,0,10,0.93246
-146,170,1316,518,12,81,0,10,0.94371
-147,170,1313,517,12,81,0,10,0.93433
-148,170,1311,517,12,81,0,10,0.93433
-149,170,1307,518,12,80,0,10,0.93732
-150,170,1304,520,12,79,0,10,0.96538
-151,170,1300,520,12,79,0,10,0.9625
-152,170,1296,520,12,79,0,10,0.9625
-153,170,1292,518,12,79,0,10,0.95
-154,170,1288,516,12,79,0,10,0.9125
-155,170,1284,515,12,79,0,10,0.9125
-156,170,1280,515,12,79,0,10,0.925
-157,170,1276,515,12,79,0,10,0.9125
-158,170,1272,515,12,79,0,10,0.925
-159,170,1268,516,12,79,0,10,0.95
-160,170,1264,516,12,79,0,10,0.9375
-161,170,1260,516,12,79,0,10,0.9375
-162,170,1256,517,12,79,0,10,0.87692
-163,170,1254,515,12,81,0,10,0.92683
-164,170,1252,513,12,83,0,10,0.90476
-165,170,1251,512,11,84,0,10,0.90588
-166,170,1248,511,11,84,0,10,0.87059
-167,170,1245,511,11,84,0,10,0.84706
-168,170,1243,511,11,84,0,10,0.87059
-169,170,1240,511,11,84,0,10,1
-170,170,1238,511,11,84,0,10,1
-171,170,1235,510,11,84,0,10,1
-172,170,1234,510,11,84,0,10,1
-173,170,1233,511,11,84,0,10,1
-174,170,1230,513,11,84,0,10,1
-175,170,1228,515,11,84,0,10,1
-176,170,1227,509,13,83,0,10,0.15476
-177,170,1225,510,13,83,0,10,0.14286
-178,170,1224,512,13,83,0,10,0.14286
-179,170,1223,514,13,83,0,10,1
-180,170,1222,516,13,83,0,10,0.90476
-181,170,1219,518,13,83,0,10,0.92857
-66,171,1606,511,11,59,0,10,0.11667
-67,171,1609,527,11,59,0,10,0.36667
-68,171,1607,525,10,51,0,10,0.26923
-69,171,1610,537,10,51,0,10,0.48077
-70,171,1609,535,10,51,0,10,0.42308
-71,171,1608,535,10,51,0,10,0.60839
-72,171,1608,535,10,51,0,10,0.72902
-73,171,1607,536,10,51,0,10,0.8951
-74,171,1607,536,10,51,0,10,1
-75,171,1607,537,10,51,0,10,1
-76,171,1606,537,10,51,0,10,1
-77,171,1605,537,10,51,0,10,1
-78,171,1604,537,10,51,0,10,1
-79,171,1604,538,10,51,0,10,1
-80,171,1604,535,10,51,0,10,1
-81,171,1602,535,10,51,0,10,1
-82,171,1601,535,10,51,0,10,1
-83,171,1599,535,10,51,0,10,1
-92,172,1584,530,9,64,0,10,1
-93,172,1581,533,11,63,0,10,1
-94,172,1579,533,11,63,0,10,1
-95,172,1578,534,11,63,0,10,1
-96,172,1575,537,11,63,0,10,1
-97,172,1573,538,11,63,0,10,1
-98,172,1570,539,11,63,0,10,1
-99,172,1568,539,11,63,0,10,1
-100,172,1564,539,11,63,0,10,1
-101,172,1563,540,11,63,0,10,1
-102,172,1561,540,11,63,0,10,1
-103,172,1558,540,11,63,0,10,1
-104,172,1555,544,11,63,0,10,1
-105,172,1553,543,11,63,0,10,1
-106,172,1552,544,11,63,0,10,1
-107,172,1550,543,11,63,0,10,1
-108,172,1547,543,11,63,0,10,1
-109,172,1543,541,11,63,0,10,1
-110,172,1543,539,11,63,0,10,1
-111,172,1540,539,10,68,0,10,1
-421,173,817,989,84,186,0,10,0.49198
-422,173,784,996,83,186,0,10,0.45455
-423,173,754,1001,83,186,0,10,0.42781
-424,173,715,1007,83,186,0,10,0.39572
-425,173,686,1014,83,186,0,10,0.35829
-426,173,649,1025,83,186,0,10,0.29947
-427,173,614,1034,83,186,0,10,0.25134
-428,173,572,1044,83,186,0,10,0.19786
-429,173,534,1057,83,186,0,10,0.039725
-172,174,1131,557,18,69,0,10,1
-173,174,1128,558,18,69,0,10,1
-174,174,1126,558,18,69,0,10,1
-175,174,1125,559,18,69,0,10,1
-176,174,1123,560,18,69,0,10,1
-177,174,1121,561,18,69,0,10,1
-178,174,1119,562,18,69,0,10,1
-179,174,1118,563,18,69,0,10,1
-180,174,1115,563,18,69,0,10,1
-181,174,1113,563,18,69,0,10,1
-182,174,1112,563,18,69,0,10,1
-183,174,1110,565,18,69,0,10,1
-184,174,1108,568,18,69,0,10,1
-185,174,1105,567,18,69,0,10,1
-186,174,1103,567,18,69,0,10,1
-187,174,1101,567,18,69,0,10,1
-188,174,1100,568,18,69,0,10,1
-189,174,1098,569,18,69,0,10,1
-190,174,1097,570,18,69,0,10,1
-191,174,1095,571,18,69,0,10,1
-192,174,1094,572,18,69,0,10,1
-193,174,1093,574,18,69,0,10,1
-194,174,1092,574,18,69,0,10,1
-195,174,1092,574,18,69,0,10,1
-196,174,1089,576,18,69,0,10,1
-197,174,1087,576,18,69,0,10,1
-198,174,1086,577,18,69,0,10,1
-199,174,1085,578,18,69,0,10,1
-200,174,1084,578,18,69,0,10,1
-201,174,1084,578,18,69,0,10,1
-202,174,1084,578,18,69,0,10,1
-203,174,1084,578,18,69,0,10,1
-204,174,1083,579,19,71,0,10,1
-205,174,1082,581,21,72,0,10,1
-206,174,1079,582,21,72,0,10,1
-207,174,1077,584,21,72,0,10,1
-208,174,1077,585,21,72,0,10,1
-209,174,1077,586,21,72,0,10,1
-210,174,1077,587,21,72,0,10,1
-211,174,1077,588,21,72,0,10,1
-212,174,1077,589,21,72,0,10,1
-213,174,1078,590,21,72,0,10,1
-214,174,1078,591,21,72,0,10,1
-215,174,1078,592,21,72,0,10,1
-216,174,1078,593,21,72,0,10,1
-217,174,1078,594,21,72,0,10,1
-218,174,1079,596,21,72,0,10,1
-219,174,1079,596,25,74,0,10,1
-220,174,1079,592,24,78,0,10,1
-221,174,1083,593,24,78,0,10,1
-222,174,1084,594,24,78,0,10,1
-223,174,1086,595,24,78,0,10,1
-224,174,1086,595,24,78,0,10,1
-225,174,1087,595,24,78,0,10,1
-226,174,1089,596,24,79,0,10,1
-227,174,1092,598,23,80,0,10,1
-228,174,1094,598,23,80,0,10,1
-229,174,1096,599,23,80,0,10,1
-230,174,1097,599,23,80,0,10,1
-231,174,1100,599,22,84,0,10,1
-232,174,1103,599,22,84,0,10,1
-233,174,1106,598,22,84,0,10,1
-234,174,1109,597,22,84,0,10,1
-235,174,1112,597,22,84,0,10,1
-236,174,1115,598,22,84,0,10,1
-237,174,1117,598,22,84,0,10,1
-238,174,1120,598,22,84,0,10,1
-239,174,1125,597,22,84,0,10,1
-240,174,1131,597,22,84,0,10,1
-241,174,1134,597,22,87,0,10,1
-242,174,1138,597,21,91,0,10,0.81818
-243,174,1142,597,21,91,0,10,0.27273
-244,174,1147,598,21,91,0,10,0
-245,174,1152,599,21,91,0,10,0
-246,174,1158,601,21,91,0,10,0
-247,174,1163,601,21,91,0,10,0
-248,174,1168,602,21,91,0,10,0
-249,174,1173,602,21,91,0,10,0
-131,175,1330,546,9,73,0,10,0.5
-132,175,1328,544,9,75,0,10,0.4
-133,175,1325,553,9,66,0,10,0.3
-134,175,1321,554,9,67,0,10,0.4
-135,175,1317,544,9,76,0,10,0.5
-136,175,1314,550,11,66,0,10,0.41667
-137,175,1312,546,9,73,0,10,0.4
-138,175,1310,541,9,81,0,10,0.3
-139,175,1306,548,8,71,0,10,0.44444
-140,175,1303,548,8,72,0,10,0.44444
-141,175,1301,553,9,67,0,10,0.4
-142,175,1301,550,9,68,0,10,0.1
-143,175,1297,552,8,66,0,10,0.22222
-144,175,1294,558,8,62,0,10,0.33333
-145,175,1290,551,7,69,0,10,0.5
-146,175,1288,548,9,77,0,10,0.3
-147,175,1284,551,9,75,0,10,0.5
-148,175,1281,552,9,73,0,10,0.5
-149,175,1278,554,10,71,0,10,0.45455
-150,175,1274,549,9,77,0,10,0.7
-151,175,1270,548,8,79,0,10,0.88889
-152,175,1267,550,9,76,0,10,0.9
-153,175,1263,553,8,72,0,10,1
-154,175,1260,550,9,77,0,10,0.9
-155,175,1255,549,10,75,0,10,0.90909
-156,175,1251,546,9,79,0,10,1
-157,175,1247,546,8,79,0,10,1
-158,175,1243,545,7,80,0,10,1
-159,175,1240,542,7,84,0,10,1
-160,175,1237,543,8,83,0,10,1
-161,175,1233,541,9,85,0,10,1
-162,175,1230,547,11,79,0,10,1
-163,175,1227,543,11,83,0,10,1
-164,175,1224,544,11,83,0,10,1
-165,175,1221,542,11,85,0,10,1
-166,175,1219,541,11,85,0,10,0.75
-167,175,1213,544,13,83,0,10,0.35714
-168,175,1213,545,11,81,0,10,0.33333
-169,175,1211,543,10,82,0,10,0.18182
-170,175,1209,543,10,83,0,10,1
-171,175,1207,544,9,82,0,10,1
-172,175,1206,544,9,85,0,10,1
-173,175,1204,543,10,86,0,10,0
-174,175,1201,543,9,85,0,10,0
-175,175,1200,550,10,79,0,10,1
-176,175,1197,542,10,88,0,10,0
-177,175,1196,546,9,84,0,10,0
-178,175,1195,545,9,85,0,10,0
-179,175,1194,543,9,88,0,10,1
-180,175,1192,544,8,87,0,10,0
-181,175,1190,546,8,86,0,10,0
-182,175,1190,546,10,89,0,10,0
-183,175,1188,553,9,82,0,10,0
-184,175,1186,561,9,74,0,10,0
-185,175,1184,557,10,78,0,10,0
-186,175,1182,555,9,81,0,10,0
-187,175,1180,551,8,86,0,10,0
-188,175,1179,550,8,88,0,10,0
-189,175,1178,553,11,86,0,10,0
-190,175,1176,551,8,88,0,10,0
-191,175,1176,549,9,93,0,10,0
-192,175,1174,556,11,85,0,10,0
-193,175,1173,555,9,88,0,10,0
-194,175,1172,564,8,81,0,10,0
-195,175,1171,562,10,82,0,10,0
-196,175,1170,556,9,89,0,10,0
-197,175,1169,550,10,95,0,10,0
-198,175,1168,561,9,85,0,10,0
-199,175,1167,560,8,86,0,10,0
-200,175,1169,561,8,87,0,10,0
-201,175,1168,564,9,84,0,10,0
-202,175,1167,565,9,84,0,10,1
-203,175,1166,568,9,84,0,10,1
-204,175,1166,567,8,86,0,10,1
-205,175,1166,566,8,88,0,10,1
-206,175,1166,564,9,91,0,10,1
-207,175,1166,565,10,90,0,10,0.36364
-208,175,1166,569,7,88,0,10,1
-184,176,1150,524,12,116,0,10,0
-185,176,1150,527,12,116,0,10,0
-186,176,1148,527,12,116,0,10,0
-187,176,1147,524,12,116,0,10,0
-188,176,1147,522,12,116,0,10,0
-189,176,1144,529,12,116,0,10,0
-190,176,1142,530,12,116,0,10,0.076923
-191,176,1140,529,12,117,0,10,0.15385
-192,176,1138,528,12,118,0,10,0.23077
-193,176,1137,527,11,120,0,10,0.25
-194,176,1136,536,11,119,0,10,0.25
-195,176,1136,536,11,119,0,10,0.16667
-196,176,1135,533,11,123,0,10,0.16667
-197,176,1134,530,11,127,0,10,0.16667
-198,176,1133,527,11,131,0,10,0.16667
-199,176,1132,525,11,134,0,10,0.16667
-200,176,1136,492,11,170,0,10,0
-201,176,1133,502,11,161,0,10,0
-202,176,1131,512,10,152,0,10,0
-203,176,1129,522,10,143,0,10,0.090909
-204,176,1129,519,9,141,0,10,0
-205,176,1129,516,8,139,0,10,0
-206,176,1130,513,9,146,0,10,0
-207,176,1130,510,8,148,0,10,0
-208,176,1130,507,8,151,0,10,0
-209,176,1131,504,9,158,0,10,0
-210,176,1131,501,11,160,0,10,0
-211,176,1130,511,11,152,0,10,0
-212,176,1129,522,11,143,0,10,0
-213,176,1129,533,11,134,0,10,0
-214,176,1130,531,11,135,0,10,0
-215,176,1131,529,11,137,0,10,0
-216,176,1132,527,11,139,0,10,0
-217,176,1133,525,11,141,0,10,0
-218,176,1134,523,11,143,0,10,0
-219,176,1135,521,11,145,0,10,0
-220,176,1136,519,11,147,0,10,0
-221,176,1138,519,11,147,0,10,0
-222,176,1140,519,11,147,0,10,0
-223,176,1142,520,11,147,0,10,0
-224,176,1144,520,11,147,0,10,0
-225,176,1146,521,11,147,0,10,0
-226,176,1148,521,11,147,0,10,0
-227,176,1150,521,11,147,0,10,0
-228,176,1152,522,11,147,0,10,0.083333
-229,176,1154,522,11,147,0,10,0.083333
-230,176,1156,523,11,147,0,10,0.16667
-231,176,1158,523,11,147,0,10,0.25
-46,177,803,504,9,61,0,10,1
-47,177,802,503,9,62,0,10,1
-48,177,802,503,9,63,0,10,1
-49,177,801,503,10,63,0,10,1
-50,177,801,503,9,64,0,10,1
-51,177,801,503,9,64,0,10,1
-52,177,800,503,10,65,0,10,1
-53,177,800,503,9,65,0,10,1
-54,177,799,503,10,66,0,10,1
-55,177,799,503,10,66,0,10,1
-56,177,799,503,10,67,0,10,1
-57,177,798,502,10,67,0,10,1
-58,177,797,501,10,67,0,10,1
-59,177,796,500,11,67,0,10,1
-60,177,795,499,11,67,0,10,1
-61,177,794,498,11,67,0,10,1
-62,177,794,497,11,67,0,10,1
-63,177,793,498,10,67,0,10,1
-64,177,792,500,10,67,0,10,1
-65,177,791,501,10,67,0,10,1
-66,177,790,503,10,67,0,10,1
-67,177,787,502,10,67,0,10,1
-68,177,785,501,10,67,0,10,1
-69,177,782,501,11,66,0,10,1
-70,177,780,500,10,66,0,10,1
-71,177,778,500,10,66,0,10,1
-72,177,775,499,11,66,0,10,1
-73,177,773,498,10,66,0,10,1
-74,177,770,498,11,65,0,10,1
-75,177,768,497,11,65,0,10,1
-76,177,766,497,11,65,0,10,1
-77,177,763,499,11,65,0,10,1
-78,177,761,499,11,65,0,10,1
-79,177,759,499,11,65,0,10,1
-80,177,755,499,11,65,0,10,1
-81,177,751,498,11,65,0,10,1
-82,177,747,498,11,65,0,10,1
-83,177,744,499,11,65,0,10,1
-84,177,739,498,11,65,0,10,0.13636
-85,177,735,499,11,65,0,10,0.13636
-86,177,732,501,11,65,0,10,0.13636
-87,177,728,503,11,65,0,10,1
-88,177,725,504,11,65,0,10,1
-89,177,723,504,11,65,0,10,0.13636
-90,177,715,508,11,65,0,10,1
-91,177,711,511,11,65,0,10,1
-92,177,706,511,11,65,0,10,1
-93,177,700,513,11,65,0,10,1
-94,177,696,509,10,70,0,10,1
-95,177,694,510,10,70,0,10,1
-96,177,691,513,10,70,0,10,1
-97,177,686,513,10,70,0,10,1
-98,177,681,516,10,70,0,10,1
-99,177,675,513,10,70,0,10,1
-100,177,672,515,10,70,0,10,1
-101,177,666,509,9,75,0,10,0.59868
-102,177,663,511,11,74,0,10,1
-103,177,659,513,11,74,0,10,1
-104,177,653,510,10,77,0,10,1
-105,177,650,510,10,77,0,10,1
-106,177,643,506,10,77,0,10,0.63869
-107,177,639,509,11,75,0,10,0.58553
-108,177,635,511,11,75,0,10,1
-109,177,629,510,11,76,0,10,1
-110,177,624,510,11,76,0,10,1
-111,177,619,510,11,76,0,10,1
-112,177,614,510,10,76,0,10,1
-113,177,609,510,10,77,0,10,1
-114,177,603,510,11,77,0,10,1
-115,177,598,510,10,77,0,10,1
-116,177,593,510,10,77,0,10,1
-117,177,588,510,10,77,0,10,1
-118,177,583,510,10,78,0,10,1
-119,177,577,510,10,78,0,10,1
-120,177,572,510,10,79,0,10,1
-121,177,566,510,10,79,0,10,1
-122,177,561,511,10,79,0,10,1
-123,177,556,511,10,80,0,10,1
-124,177,550,511,10,80,0,10,1
-125,177,545,512,10,80,0,10,1
-126,177,539,512,10,80,0,10,1
-127,177,534,512,10,81,0,10,1
-128,177,529,513,10,81,0,10,1
-129,177,523,513,10,81,0,10,1
-130,177,518,514,10,81,0,10,1
-131,177,512,515,10,81,0,10,1
-132,177,507,515,10,81,0,10,1
-133,177,502,516,10,81,0,10,1
-134,177,496,517,10,81,0,10,1
-135,177,491,517,10,81,0,10,1
-136,177,485,518,10,81,0,10,1
-137,177,480,519,10,81,0,10,1
-138,177,475,520,10,81,0,10,1
-139,177,470,519,10,82,0,10,1
-140,177,465,519,10,82,0,10,1
-141,177,460,519,10,82,0,10,1
-142,177,455,519,10,82,0,10,1
-143,177,450,519,10,82,0,10,1
-144,177,445,518,10,83,0,10,1
-145,177,440,518,10,83,0,10,1
-146,177,435,518,10,83,0,10,1
-147,177,430,518,10,83,0,10,1
-148,177,426,518,9,83,0,10,1
-149,177,419,518,10,84,0,10,1
-150,177,413,519,10,84,0,10,1
-151,177,406,520,11,85,0,10,1
-152,177,400,520,11,86,0,10,1
-153,177,394,521,11,87,0,10,1
-154,177,387,522,12,87,0,10,1
-155,177,381,522,12,88,0,10,1
-156,177,374,523,13,89,0,10,1
-157,177,368,524,13,89,0,10,1
-158,177,362,525,13,90,0,10,1
-159,177,356,525,13,90,0,10,1
-160,177,350,526,13,90,0,10,1
-161,177,345,527,13,90,0,10,1
-162,177,339,527,13,90,0,10,1
-163,177,334,528,13,90,0,10,1
-164,177,328,529,13,90,0,10,1
-165,177,322,529,13,90,0,10,1
-166,177,317,530,13,90,0,10,1
-167,177,311,531,13,90,0,10,1
-168,177,306,532,13,90,0,10,1
-169,177,301,532,13,90,0,10,1
-170,177,296,532,13,90,0,10,1
-171,177,291,532,13,90,0,10,1
-172,177,287,533,13,90,0,10,1
-173,177,282,533,13,90,0,10,1
-174,177,277,533,13,90,0,10,1
-175,177,273,534,13,90,0,10,1
-176,177,268,534,13,90,0,10,1
-177,177,263,534,13,90,0,10,1
-292,178,1523,471,26,177,0,10,0
-293,178,1539,482,26,176,0,10,0.51852
-294,178,1551,483,25,174,0,10,1
diff --git a/Yolov5-Deepsort/image.png b/Yolov5-Deepsort/image.png
deleted file mode 100644
index ace8fcff2c3fa4f16cd87a47467f0f755beaed1e..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/image.png and /dev/null differ
diff --git a/Yolov5-Deepsort/manbo.mp4 b/Yolov5-Deepsort/manbo.mp4
deleted file mode 100644
index 840289199ef681528e7898a57105787f19bbff46..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/manbo.mp4 and /dev/null differ
diff --git a/Yolov5-Deepsort/models/__init__.py b/Yolov5-Deepsort/models/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Yolov5-Deepsort/models/__pycache__/__init__.cpython-36.pyc b/Yolov5-Deepsort/models/__pycache__/__init__.cpython-36.pyc
deleted file mode 100644
index e9746b6598ac986fbff7cb2365a7a441cec36779..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/models/__pycache__/__init__.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/models/__pycache__/__init__.cpython-37.pyc b/Yolov5-Deepsort/models/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index 652f93beb9f9231da6eb6ec57d6160ad011178fd..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/models/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/models/__pycache__/common.cpython-36.pyc b/Yolov5-Deepsort/models/__pycache__/common.cpython-36.pyc
deleted file mode 100644
index 9734cfb03cba91dbf15e38722d0509cb47641a91..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/models/__pycache__/common.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/models/__pycache__/common.cpython-37.pyc b/Yolov5-Deepsort/models/__pycache__/common.cpython-37.pyc
deleted file mode 100644
index b4edaea39d903d09c0ad337ec4bff5b9565ea21b..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/models/__pycache__/common.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/models/__pycache__/experimental.cpython-36.pyc b/Yolov5-Deepsort/models/__pycache__/experimental.cpython-36.pyc
deleted file mode 100644
index caa1ef7d5155d2c5bf348930ddf08fbcb5131007..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/models/__pycache__/experimental.cpython-36.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/models/__pycache__/experimental.cpython-37.pyc b/Yolov5-Deepsort/models/__pycache__/experimental.cpython-37.pyc
deleted file mode 100644
index 03d97117b57b37f651134f40a2305512b53bc8dc..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/models/__pycache__/experimental.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/models/__pycache__/yolo.cpython-37.pyc b/Yolov5-Deepsort/models/__pycache__/yolo.cpython-37.pyc
deleted file mode 100644
index 7c4abfe75e25b31af450916e37b66ea4aeb10c72..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/models/__pycache__/yolo.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/models/common.py b/Yolov5-Deepsort/models/common.py
deleted file mode 100644
index 4211db406c3d85e652bc11280cf9856f500ef835..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/common.py
+++ /dev/null
@@ -1,395 +0,0 @@
-# YOLOv5 common modules
-
-import math
-from copy import copy
-from pathlib import Path
-
-import numpy as np
-import pandas as pd
-import requests
-import torch
-import torch.nn as nn
-from PIL import Image
-from torch.cuda import amp
-
-from utils.datasets import letterbox
-from utils.general import non_max_suppression, make_divisible, scale_coords, increment_path, xyxy2xywh, save_one_box
-from utils.plots import colors, plot_one_box
-from utils.torch_utils import time_synchronized
-
-
-def autopad(k, p=None): # kernel, padding
- # Pad to 'same'
- if p is None:
- p = k // 2 if isinstance(k, int) else [x // 2 for x in k] # auto-pad
- return p
-
-
-def DWConv(c1, c2, k=1, s=1, act=True):
- # Depthwise convolution
- return Conv(c1, c2, k, s, g=math.gcd(c1, c2), act=act)
-
-
-class Conv(nn.Module):
- # Standard convolution
- def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True): # ch_in, ch_out, kernel, stride, padding, groups
- super(Conv, self).__init__()
- self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p), groups=g, bias=False)
- self.bn = nn.BatchNorm2d(c2)
- self.act = nn.SiLU() if act is True else (act if isinstance(act, nn.Module) else nn.Identity())
-
- def forward(self, x):
- return self.act(self.bn(self.conv(x)))
-
- def fuseforward(self, x):
- return self.act(self.conv(x))
-
-
-class TransformerLayer(nn.Module):
- # Transformer layer https://arxiv.org/abs/2010.11929 (LayerNorm layers removed for better performance)
- def __init__(self, c, num_heads):
- super().__init__()
- self.q = nn.Linear(c, c, bias=False)
- self.k = nn.Linear(c, c, bias=False)
- self.v = nn.Linear(c, c, bias=False)
- self.ma = nn.MultiheadAttention(embed_dim=c, num_heads=num_heads)
- self.fc1 = nn.Linear(c, c, bias=False)
- self.fc2 = nn.Linear(c, c, bias=False)
-
- def forward(self, x):
- x = self.ma(self.q(x), self.k(x), self.v(x))[0] + x
- x = self.fc2(self.fc1(x)) + x
- return x
-
-
-class TransformerBlock(nn.Module):
- # Vision Transformer https://arxiv.org/abs/2010.11929
- def __init__(self, c1, c2, num_heads, num_layers):
- super().__init__()
- self.conv = None
- if c1 != c2:
- self.conv = Conv(c1, c2)
- self.linear = nn.Linear(c2, c2) # learnable position embedding
- self.tr = nn.Sequential(*[TransformerLayer(c2, num_heads) for _ in range(num_layers)])
- self.c2 = c2
-
- def forward(self, x):
- if self.conv is not None:
- x = self.conv(x)
- b, _, w, h = x.shape
- p = x.flatten(2)
- p = p.unsqueeze(0)
- p = p.transpose(0, 3)
- p = p.squeeze(3)
- e = self.linear(p)
- x = p + e
-
- x = self.tr(x)
- x = x.unsqueeze(3)
- x = x.transpose(0, 3)
- x = x.reshape(b, self.c2, w, h)
- return x
-
-
-class Bottleneck(nn.Module):
- # Standard bottleneck
- def __init__(self, c1, c2, shortcut=True, g=1, e=0.5): # ch_in, ch_out, shortcut, groups, expansion
- super(Bottleneck, self).__init__()
- c_ = int(c2 * e) # hidden channels
- self.cv1 = Conv(c1, c_, 1, 1)
- self.cv2 = Conv(c_, c2, 3, 1, g=g)
- self.add = shortcut and c1 == c2
-
- def forward(self, x):
- return x + self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))
-
-
-class BottleneckCSP(nn.Module):
- # CSP Bottleneck https://github.com/WongKinYiu/CrossStagePartialNetworks
- def __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5): # ch_in, ch_out, number, shortcut, groups, expansion
- super(BottleneckCSP, self).__init__()
- c_ = int(c2 * e) # hidden channels
- self.cv1 = Conv(c1, c_, 1, 1)
- self.cv2 = nn.Conv2d(c1, c_, 1, 1, bias=False)
- self.cv3 = nn.Conv2d(c_, c_, 1, 1, bias=False)
- self.cv4 = Conv(2 * c_, c2, 1, 1)
- self.bn = nn.BatchNorm2d(2 * c_) # applied to cat(cv2, cv3)
- self.act = nn.LeakyReLU(0.1, inplace=True)
- self.m = nn.Sequential(*[Bottleneck(c_, c_, shortcut, g, e=1.0) for _ in range(n)])
-
- def forward(self, x):
- y1 = self.cv3(self.m(self.cv1(x)))
- y2 = self.cv2(x)
- return self.cv4(self.act(self.bn(torch.cat((y1, y2), dim=1))))
-
-
-class C3(nn.Module):
- # CSP Bottleneck with 3 convolutions
- def __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5): # ch_in, ch_out, number, shortcut, groups, expansion
- super(C3, self).__init__()
- c_ = int(c2 * e) # hidden channels
- self.cv1 = Conv(c1, c_, 1, 1)
- self.cv2 = Conv(c1, c_, 1, 1)
- self.cv3 = Conv(2 * c_, c2, 1) # act=FReLU(c2)
- self.m = nn.Sequential(*[Bottleneck(c_, c_, shortcut, g, e=1.0) for _ in range(n)])
- # self.m = nn.Sequential(*[CrossConv(c_, c_, 3, 1, g, 1.0, shortcut) for _ in range(n)])
-
- def forward(self, x):
- return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), dim=1))
-
-
-class C3TR(C3):
- # C3 module with TransformerBlock()
- def __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5):
- super().__init__(c1, c2, n, shortcut, g, e)
- c_ = int(c2 * e)
- self.m = TransformerBlock(c_, c_, 4, n)
-
-
-class SPP(nn.Module):
- # Spatial pyramid pooling layer used in YOLOv3-SPP
- def __init__(self, c1, c2, k=(5, 9, 13)):
- super(SPP, self).__init__()
- c_ = c1 // 2 # hidden channels
- self.cv1 = Conv(c1, c_, 1, 1)
- self.cv2 = Conv(c_ * (len(k) + 1), c2, 1, 1)
- self.m = nn.ModuleList([nn.MaxPool2d(kernel_size=x, stride=1, padding=x // 2) for x in k])
-
- def forward(self, x):
- x = self.cv1(x)
- return self.cv2(torch.cat([x] + [m(x) for m in self.m], 1))
-
-
-class Focus(nn.Module):
- # Focus wh information into c-space
- def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True): # ch_in, ch_out, kernel, stride, padding, groups
- super(Focus, self).__init__()
- self.conv = Conv(c1 * 4, c2, k, s, p, g, act)
- # self.contract = Contract(gain=2)
-
- def forward(self, x): # x(b,c,w,h) -> y(b,4c,w/2,h/2)
- return self.conv(torch.cat([x[..., ::2, ::2], x[..., 1::2, ::2], x[..., ::2, 1::2], x[..., 1::2, 1::2]], 1))
- # return self.conv(self.contract(x))
-
-
-class Contract(nn.Module):
- # Contract width-height into channels, i.e. x(1,64,80,80) to x(1,256,40,40)
- def __init__(self, gain=2):
- super().__init__()
- self.gain = gain
-
- def forward(self, x):
- N, C, H, W = x.size() # assert (H / s == 0) and (W / s == 0), 'Indivisible gain'
- s = self.gain
- x = x.view(N, C, H // s, s, W // s, s) # x(1,64,40,2,40,2)
- x = x.permute(0, 3, 5, 1, 2, 4).contiguous() # x(1,2,2,64,40,40)
- return x.view(N, C * s * s, H // s, W // s) # x(1,256,40,40)
-
-
-class Expand(nn.Module):
- # Expand channels into width-height, i.e. x(1,64,80,80) to x(1,16,160,160)
- def __init__(self, gain=2):
- super().__init__()
- self.gain = gain
-
- def forward(self, x):
- N, C, H, W = x.size() # assert C / s ** 2 == 0, 'Indivisible gain'
- s = self.gain
- x = x.view(N, s, s, C // s ** 2, H, W) # x(1,2,2,16,80,80)
- x = x.permute(0, 3, 4, 1, 5, 2).contiguous() # x(1,16,80,2,80,2)
- return x.view(N, C // s ** 2, H * s, W * s) # x(1,16,160,160)
-
-
-class Concat(nn.Module):
- # Concatenate a list of tensors along dimension
- def __init__(self, dimension=1):
- super(Concat, self).__init__()
- self.d = dimension
-
- def forward(self, x):
- return torch.cat(x, self.d)
-
-
-class NMS(nn.Module):
- # Non-Maximum Suppression (NMS) module
- conf = 0.25 # confidence threshold
- iou = 0.45 # IoU threshold
- classes = None # (optional list) filter by class
- max_det = 1000 # maximum number of detections per image
-
- def __init__(self):
- super(NMS, self).__init__()
-
- def forward(self, x):
- return non_max_suppression(x[0], self.conf, iou_thres=self.iou, classes=self.classes, max_det=self.max_det)
-
-
-class AutoShape(nn.Module):
- # input-robust model wrapper for passing cv2/np/PIL/torch inputs. Includes preprocessing, inference and NMS
- conf = 0.25 # NMS confidence threshold
- iou = 0.45 # NMS IoU threshold
- classes = None # (optional list) filter by class
- max_det = 1000 # maximum number of detections per image
-
- def __init__(self, model):
- super(AutoShape, self).__init__()
- self.model = model.eval()
-
- def autoshape(self):
- print('AutoShape already enabled, skipping... ') # model already converted to model.autoshape()
- return self
-
- @torch.no_grad()
- def forward(self, imgs, size=640, augment=False, profile=False):
- # Inference from various sources. For height=640, width=1280, RGB images example inputs are:
- # filename: imgs = 'data/images/zidane.jpg'
- # URI: = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/zidane.jpg'
- # OpenCV: = cv2.imread('image.jpg')[:,:,::-1] # HWC BGR to RGB x(640,1280,3)
- # PIL: = Image.open('image.jpg') # HWC x(640,1280,3)
- # numpy: = np.zeros((640,1280,3)) # HWC
- # torch: = torch.zeros(16,3,320,640) # BCHW (scaled to size=640, 0-1 values)
- # multiple: = [Image.open('image1.jpg'), Image.open('image2.jpg'), ...] # list of images
-
- t = [time_synchronized()]
- p = next(self.model.parameters()) # for device and type
- if isinstance(imgs, torch.Tensor): # torch
- with amp.autocast(enabled=p.device.type != 'cpu'):
- return self.model(imgs.to(p.device).type_as(p), augment, profile) # inference
-
- # Pre-process
- n, imgs = (len(imgs), imgs) if isinstance(imgs, list) else (1, [imgs]) # number of images, list of images
- shape0, shape1, files = [], [], [] # image and inference shapes, filenames
- for i, im in enumerate(imgs):
- f = f'image{i}' # filename
- if isinstance(im, str): # filename or uri
- im, f = np.asarray(Image.open(requests.get(im, stream=True).raw if im.startswith('http') else im)), im
- elif isinstance(im, Image.Image): # PIL Image
- im, f = np.asarray(im), getattr(im, 'filename', f) or f
- files.append(Path(f).with_suffix('.jpg').name)
- if im.shape[0] < 5: # image in CHW
- im = im.transpose((1, 2, 0)) # reverse dataloader .transpose(2, 0, 1)
- im = im[:, :, :3] if im.ndim == 3 else np.tile(im[:, :, None], 3) # enforce 3ch input
- s = im.shape[:2] # HWC
- shape0.append(s) # image shape
- g = (size / max(s)) # gain
- shape1.append([y * g for y in s])
- imgs[i] = im if im.data.contiguous else np.ascontiguousarray(im) # update
- shape1 = [make_divisible(x, int(self.stride.max())) for x in np.stack(shape1, 0).max(0)] # inference shape
- x = [letterbox(im, new_shape=shape1, auto=False)[0] for im in imgs] # pad
- x = np.stack(x, 0) if n > 1 else x[0][None] # stack
- x = np.ascontiguousarray(x.transpose((0, 3, 1, 2))) # BHWC to BCHW
- x = torch.from_numpy(x).to(p.device).type_as(p) / 255. # uint8 to fp16/32
- t.append(time_synchronized())
-
- with amp.autocast(enabled=p.device.type != 'cpu'):
- # Inference
- y = self.model(x, augment, profile)[0] # forward
- t.append(time_synchronized())
-
- # Post-process
- y = non_max_suppression(y, self.conf, iou_thres=self.iou, classes=self.classes, max_det=self.max_det) # NMS
- for i in range(n):
- scale_coords(shape1, y[i][:, :4], shape0[i])
-
- t.append(time_synchronized())
- return Detections(imgs, y, files, t, self.names, x.shape)
-
-
-class Detections:
- # detections class for YOLOv5 inference results
- def __init__(self, imgs, pred, files, times=None, names=None, shape=None):
- super(Detections, self).__init__()
- d = pred[0].device # device
- gn = [torch.tensor([*[im.shape[i] for i in [1, 0, 1, 0]], 1., 1.], device=d) for im in imgs] # normalizations
- self.imgs = imgs # list of images as numpy arrays
- self.pred = pred # list of tensors pred[0] = (xyxy, conf, cls)
- self.names = names # class names
- self.files = files # image filenames
- self.xyxy = pred # xyxy pixels
- self.xywh = [xyxy2xywh(x) for x in pred] # xywh pixels
- self.xyxyn = [x / g for x, g in zip(self.xyxy, gn)] # xyxy normalized
- self.xywhn = [x / g for x, g in zip(self.xywh, gn)] # xywh normalized
- self.n = len(self.pred) # number of images (batch size)
- self.t = tuple((times[i + 1] - times[i]) * 1000 / self.n for i in range(3)) # timestamps (ms)
- self.s = shape # inference BCHW shape
-
- def display(self, pprint=False, show=False, save=False, crop=False, render=False, save_dir=Path('')):
- for i, (im, pred) in enumerate(zip(self.imgs, self.pred)):
- str = f'image {i + 1}/{len(self.pred)}: {im.shape[0]}x{im.shape[1]} '
- if pred is not None:
- for c in pred[:, -1].unique():
- n = (pred[:, -1] == c).sum() # detections per class
- str += f"{n} {self.names[int(c)]}{'s' * (n > 1)}, " # add to string
- if show or save or render or crop:
- for *box, conf, cls in pred: # xyxy, confidence, class
- label = f'{self.names[int(cls)]} {conf:.2f}'
- if crop:
- save_one_box(box, im, file=save_dir / 'crops' / self.names[int(cls)] / self.files[i])
- else: # all others
- plot_one_box(box, im, label=label, color=colors(cls))
-
- im = Image.fromarray(im.astype(np.uint8)) if isinstance(im, np.ndarray) else im # from np
- if pprint:
- print(str.rstrip(', '))
- if show:
- im.show(self.files[i]) # show
- if save:
- f = self.files[i]
- im.save(save_dir / f) # save
- print(f"{'Saved' * (i == 0)} {f}", end=',' if i < self.n - 1 else f' to {save_dir}\n')
- if render:
- self.imgs[i] = np.asarray(im)
-
- def print(self):
- self.display(pprint=True) # print results
- print(f'Speed: %.1fms pre-process, %.1fms inference, %.1fms NMS per image at shape {tuple(self.s)}' % self.t)
-
- def show(self):
- self.display(show=True) # show results
-
- def save(self, save_dir='runs/hub/exp'):
- save_dir = increment_path(save_dir, exist_ok=save_dir != 'runs/hub/exp', mkdir=True) # increment save_dir
- self.display(save=True, save_dir=save_dir) # save results
-
- def crop(self, save_dir='runs/hub/exp'):
- save_dir = increment_path(save_dir, exist_ok=save_dir != 'runs/hub/exp', mkdir=True) # increment save_dir
- self.display(crop=True, save_dir=save_dir) # crop results
- print(f'Saved results to {save_dir}\n')
-
- def render(self):
- self.display(render=True) # render results
- return self.imgs
-
- def pandas(self):
- # return detections as pandas DataFrames, i.e. print(results.pandas().xyxy[0])
- new = copy(self) # return copy
- ca = 'xmin', 'ymin', 'xmax', 'ymax', 'confidence', 'class', 'name' # xyxy columns
- cb = 'xcenter', 'ycenter', 'width', 'height', 'confidence', 'class', 'name' # xywh columns
- for k, c in zip(['xyxy', 'xyxyn', 'xywh', 'xywhn'], [ca, ca, cb, cb]):
- a = [[x[:5] + [int(x[5]), self.names[int(x[5])]] for x in x.tolist()] for x in getattr(self, k)] # update
- setattr(new, k, [pd.DataFrame(x, columns=c) for x in a])
- return new
-
- def tolist(self):
- # return a list of Detections objects, i.e. 'for result in results.tolist():'
- x = [Detections([self.imgs[i]], [self.pred[i]], self.names, self.s) for i in range(self.n)]
- for d in x:
- for k in ['imgs', 'pred', 'xyxy', 'xyxyn', 'xywh', 'xywhn']:
- setattr(d, k, getattr(d, k)[0]) # pop out of list
- return x
-
- def __len__(self):
- return self.n
-
-
-class Classify(nn.Module):
- # Classification head, i.e. x(b,c1,20,20) to x(b,c2)
- def __init__(self, c1, c2, k=1, s=1, p=None, g=1): # ch_in, ch_out, kernel, stride, padding, groups
- super(Classify, self).__init__()
- self.aap = nn.AdaptiveAvgPool2d(1) # to x(b,c1,1,1)
- self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p), groups=g) # to x(b,c2,1,1)
- self.flat = nn.Flatten()
-
- def forward(self, x):
- z = torch.cat([self.aap(y) for y in (x if isinstance(x, list) else [x])], 1) # cat if list
- return self.flat(self.conv(z)) # flatten to x(b,c2)
diff --git a/Yolov5-Deepsort/models/experimental.py b/Yolov5-Deepsort/models/experimental.py
deleted file mode 100644
index afa787907104f1134335ed3ac7bfdd8ac4fd4ae9..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/experimental.py
+++ /dev/null
@@ -1,137 +0,0 @@
-# YOLOv5 experimental modules
-
-import numpy as np
-import torch
-import torch.nn as nn
-
-from models.common import Conv, DWConv
-from utils.google_utils import attempt_download
-
-
-class CrossConv(nn.Module):
- # Cross Convolution Downsample
- def __init__(self, c1, c2, k=3, s=1, g=1, e=1.0, shortcut=False):
- # ch_in, ch_out, kernel, stride, groups, expansion, shortcut
- super(CrossConv, self).__init__()
- c_ = int(c2 * e) # hidden channels
- self.cv1 = Conv(c1, c_, (1, k), (1, s))
- self.cv2 = Conv(c_, c2, (k, 1), (s, 1), g=g)
- self.add = shortcut and c1 == c2
-
- def forward(self, x):
- return x + self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))
-
-
-class Sum(nn.Module):
- # Weighted sum of 2 or more layers https://arxiv.org/abs/1911.09070
- def __init__(self, n, weight=False): # n: number of inputs
- super(Sum, self).__init__()
- self.weight = weight # apply weights boolean
- self.iter = range(n - 1) # iter object
- if weight:
- self.w = nn.Parameter(-torch.arange(1., n) / 2, requires_grad=True) # layer weights
-
- def forward(self, x):
- y = x[0] # no weight
- if self.weight:
- w = torch.sigmoid(self.w) * 2
- for i in self.iter:
- y = y + x[i + 1] * w[i]
- else:
- for i in self.iter:
- y = y + x[i + 1]
- return y
-
-
-class GhostConv(nn.Module):
- # Ghost Convolution https://github.com/huawei-noah/ghostnet
- def __init__(self, c1, c2, k=1, s=1, g=1, act=True): # ch_in, ch_out, kernel, stride, groups
- super(GhostConv, self).__init__()
- c_ = c2 // 2 # hidden channels
- self.cv1 = Conv(c1, c_, k, s, None, g, act)
- self.cv2 = Conv(c_, c_, 5, 1, None, c_, act)
-
- def forward(self, x):
- y = self.cv1(x)
- return torch.cat([y, self.cv2(y)], 1)
-
-
-class GhostBottleneck(nn.Module):
- # Ghost Bottleneck https://github.com/huawei-noah/ghostnet
- def __init__(self, c1, c2, k=3, s=1): # ch_in, ch_out, kernel, stride
- super(GhostBottleneck, self).__init__()
- c_ = c2 // 2
- self.conv = nn.Sequential(GhostConv(c1, c_, 1, 1), # pw
- DWConv(c_, c_, k, s, act=False) if s == 2 else nn.Identity(), # dw
- GhostConv(c_, c2, 1, 1, act=False)) # pw-linear
- self.shortcut = nn.Sequential(DWConv(c1, c1, k, s, act=False),
- Conv(c1, c2, 1, 1, act=False)) if s == 2 else nn.Identity()
-
- def forward(self, x):
- return self.conv(x) + self.shortcut(x)
-
-
-class MixConv2d(nn.Module):
- # Mixed Depthwise Conv https://arxiv.org/abs/1907.09595
- def __init__(self, c1, c2, k=(1, 3), s=1, equal_ch=True):
- super(MixConv2d, self).__init__()
- groups = len(k)
- if equal_ch: # equal c_ per group
- i = torch.linspace(0, groups - 1E-6, c2).floor() # c2 indices
- c_ = [(i == g).sum() for g in range(groups)] # intermediate channels
- else: # equal weight.numel() per group
- b = [c2] + [0] * groups
- a = np.eye(groups + 1, groups, k=-1)
- a -= np.roll(a, 1, axis=1)
- a *= np.array(k) ** 2
- a[0] = 1
- c_ = np.linalg.lstsq(a, b, rcond=None)[0].round() # solve for equal weight indices, ax = b
-
- self.m = nn.ModuleList([nn.Conv2d(c1, int(c_[g]), k[g], s, k[g] // 2, bias=False) for g in range(groups)])
- self.bn = nn.BatchNorm2d(c2)
- self.act = nn.LeakyReLU(0.1, inplace=True)
-
- def forward(self, x):
- return x + self.act(self.bn(torch.cat([m(x) for m in self.m], 1)))
-
-
-class Ensemble(nn.ModuleList):
- # Ensemble of models
- def __init__(self):
- super(Ensemble, self).__init__()
-
- def forward(self, x, augment=False):
- y = []
- for module in self:
- y.append(module(x, augment)[0])
- # y = torch.stack(y).max(0)[0] # max ensemble
- # y = torch.stack(y).mean(0) # mean ensemble
- y = torch.cat(y, 1) # nms ensemble
- return y, None # inference, train output
-
-
-def attempt_load(weights, map_location=None, inplace=True):
- from models.yolo import Detect, Model
-
- # Loads an ensemble of models weights=[a,b,c] or a single model weights=[a] or weights=a
- model = Ensemble()
- for w in weights if isinstance(weights, list) else [weights]:
- attempt_download(w)
- ckpt = torch.load(w, map_location=map_location) # load
- model.append(ckpt['ema' if ckpt.get('ema') else 'model'].float().fuse().eval()) # FP32 model
-
- # Compatibility updates
- for m in model.modules():
- if type(m) in [nn.Hardswish, nn.LeakyReLU, nn.ReLU, nn.ReLU6, nn.SiLU, Detect, Model]:
- m.inplace = inplace # pytorch 1.7.0 compatibility
- elif type(m) is Conv:
- m._non_persistent_buffers_set = set() # pytorch 1.6.0 compatibility
-
- if len(model) == 1:
- return model[-1] # return model
- else:
- print(f'Ensemble created with {weights}\n')
- for k in ['names']:
- setattr(model, k, getattr(model[-1], k))
- model.stride = model[torch.argmax(torch.tensor([m.stride.max() for m in model])).int()].stride # max stride
- return model # return ensemble
diff --git a/Yolov5-Deepsort/models/export.py b/Yolov5-Deepsort/models/export.py
deleted file mode 100644
index 65721f65d88835bfba6a7b5318af26ae8890bd8a..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/export.py
+++ /dev/null
@@ -1,143 +0,0 @@
-"""Exports a YOLOv5 *.pt model to TorchScript, ONNX, CoreML formats
-
-Usage:
- $ python path/to/models/export.py --weights yolov5s.pt --img 640 --batch 1
-"""
-
-import argparse
-import sys
-import time
-from pathlib import Path
-
-sys.path.append(Path(__file__).parent.parent.absolute().__str__()) # to run '$ python *.py' files in subdirectories
-
-import torch
-import torch.nn as nn
-from torch.utils.mobile_optimizer import optimize_for_mobile
-
-import models
-from models.experimental import attempt_load
-from utils.activations import Hardswish, SiLU
-from utils.general import colorstr, check_img_size, check_requirements, file_size, set_logging
-from utils.torch_utils import select_device
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser()
- parser.add_argument('--weights', type=str, default='./yolov5s.pt', help='weights path')
- parser.add_argument('--img-size', nargs='+', type=int, default=[640, 640], help='image size') # height, width
- parser.add_argument('--batch-size', type=int, default=1, help='batch size')
- parser.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
- parser.add_argument('--include', nargs='+', default=['torchscript', 'onnx', 'coreml'], help='include formats')
- parser.add_argument('--half', action='store_true', help='FP16 half-precision export')
- parser.add_argument('--inplace', action='store_true', help='set YOLOv5 Detect() inplace=True')
- parser.add_argument('--train', action='store_true', help='model.train() mode')
- parser.add_argument('--optimize', action='store_true', help='optimize TorchScript for mobile') # TorchScript-only
- parser.add_argument('--dynamic', action='store_true', help='dynamic ONNX axes') # ONNX-only
- parser.add_argument('--simplify', action='store_true', help='simplify ONNX model') # ONNX-only
- parser.add_argument('--opset-version', type=int, default=12, help='ONNX opset version') # ONNX-only
- opt = parser.parse_args()
- opt.img_size *= 2 if len(opt.img_size) == 1 else 1 # expand
- opt.include = [x.lower() for x in opt.include]
- print(opt)
- set_logging()
- t = time.time()
-
- # Load PyTorch model
- device = select_device(opt.device)
- model = attempt_load(opt.weights, map_location=device) # load FP32 model
- labels = model.names
-
- # Checks
- gs = int(max(model.stride)) # grid size (max stride)
- opt.img_size = [check_img_size(x, gs) for x in opt.img_size] # verify img_size are gs-multiples
- assert not (opt.device.lower() == 'cpu' and opt.half), '--half only compatible with GPU export, i.e. use --device 0'
-
- # Input
- img = torch.zeros(opt.batch_size, 3, *opt.img_size).to(device) # image size(1,3,320,192) iDetection
-
- # Update model
- if opt.half:
- img, model = img.half(), model.half() # to FP16
- if opt.train:
- model.train() # training mode (no grid construction in Detect layer)
- for k, m in model.named_modules():
- m._non_persistent_buffers_set = set() # pytorch 1.6.0 compatibility
- if isinstance(m, models.common.Conv): # assign export-friendly activations
- if isinstance(m.act, nn.Hardswish):
- m.act = Hardswish()
- elif isinstance(m.act, nn.SiLU):
- m.act = SiLU()
- elif isinstance(m, models.yolo.Detect):
- m.inplace = opt.inplace
- m.onnx_dynamic = opt.dynamic
- # m.forward = m.forward_export # assign forward (optional)
-
- for _ in range(2):
- y = model(img) # dry runs
- print(f"\n{colorstr('PyTorch:')} starting from {opt.weights} ({file_size(opt.weights):.1f} MB)")
-
- # TorchScript export -----------------------------------------------------------------------------------------------
- if 'torchscript' in opt.include or 'coreml' in opt.include:
- prefix = colorstr('TorchScript:')
- try:
- print(f'\n{prefix} starting export with torch {torch.__version__}...')
- f = opt.weights.replace('.pt', '.torchscript.pt') # filename
- ts = torch.jit.trace(model, img, strict=False)
- (optimize_for_mobile(ts) if opt.optimize else ts).save(f)
- print(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)')
- except Exception as e:
- print(f'{prefix} export failure: {e}')
-
- # ONNX export ------------------------------------------------------------------------------------------------------
- if 'onnx' in opt.include:
- prefix = colorstr('ONNX:')
- try:
- import onnx
-
- print(f'{prefix} starting export with onnx {onnx.__version__}...')
- f = opt.weights.replace('.pt', '.onnx') # filename
- torch.onnx.export(model, img, f, verbose=False, opset_version=opt.opset_version, input_names=['images'],
- dynamic_axes={'images': {0: 'batch', 2: 'height', 3: 'width'}, # size(1,3,640,640)
- 'output': {0: 'batch', 2: 'y', 3: 'x'}} if opt.dynamic else None)
-
- # Checks
- model_onnx = onnx.load(f) # load onnx model
- onnx.checker.check_model(model_onnx) # check onnx model
- # print(onnx.helper.printable_graph(model_onnx.graph)) # print
-
- # Simplify
- if opt.simplify:
- try:
- check_requirements(['onnx-simplifier'])
- import onnxsim
-
- print(f'{prefix} simplifying with onnx-simplifier {onnxsim.__version__}...')
- model_onnx, check = onnxsim.simplify(
- model_onnx,
- dynamic_input_shape=opt.dynamic,
- input_shapes={'images': list(img.shape)} if opt.dynamic else None)
- assert check, 'assert check failed'
- onnx.save(model_onnx, f)
- except Exception as e:
- print(f'{prefix} simplifier failure: {e}')
- print(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)')
- except Exception as e:
- print(f'{prefix} export failure: {e}')
-
- # CoreML export ----------------------------------------------------------------------------------------------------
- if 'coreml' in opt.include:
- prefix = colorstr('CoreML:')
- try:
- import coremltools as ct
-
- print(f'{prefix} starting export with coremltools {ct.__version__}...')
- assert opt.train, 'CoreML exports should be placed in model.train() mode with `python export.py --train`'
- model = ct.convert(ts, inputs=[ct.ImageType('image', shape=img.shape, scale=1 / 255.0, bias=[0, 0, 0])])
- f = opt.weights.replace('.pt', '.mlmodel') # filename
- model.save(f)
- print(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)')
- except Exception as e:
- print(f'{prefix} export failure: {e}')
-
- # Finish
- print(f'\nExport complete ({time.time() - t:.2f}s). Visualize with https://github.com/lutzroeder/netron.')
diff --git a/Yolov5-Deepsort/models/hub/anchors.yaml b/Yolov5-Deepsort/models/hub/anchors.yaml
deleted file mode 100644
index a07a4dc72387ef79ee0d473ac1055d23c6543ee9..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/anchors.yaml
+++ /dev/null
@@ -1,58 +0,0 @@
-# Default YOLOv5 anchors for COCO data
-
-
-# P5 -------------------------------------------------------------------------------------------------------------------
-# P5-640:
-anchors_p5_640:
- - [ 10,13, 16,30, 33,23 ] # P3/8
- - [ 30,61, 62,45, 59,119 ] # P4/16
- - [ 116,90, 156,198, 373,326 ] # P5/32
-
-
-# P6 -------------------------------------------------------------------------------------------------------------------
-# P6-640: thr=0.25: 0.9964 BPR, 5.54 anchors past thr, n=12, img_size=640, metric_all=0.281/0.716-mean/best, past_thr=0.469-mean: 9,11, 21,19, 17,41, 43,32, 39,70, 86,64, 65,131, 134,130, 120,265, 282,180, 247,354, 512,387
-anchors_p6_640:
- - [ 9,11, 21,19, 17,41 ] # P3/8
- - [ 43,32, 39,70, 86,64 ] # P4/16
- - [ 65,131, 134,130, 120,265 ] # P5/32
- - [ 282,180, 247,354, 512,387 ] # P6/64
-
-# P6-1280: thr=0.25: 0.9950 BPR, 5.55 anchors past thr, n=12, img_size=1280, metric_all=0.281/0.714-mean/best, past_thr=0.468-mean: 19,27, 44,40, 38,94, 96,68, 86,152, 180,137, 140,301, 303,264, 238,542, 436,615, 739,380, 925,792
-anchors_p6_1280:
- - [ 19,27, 44,40, 38,94 ] # P3/8
- - [ 96,68, 86,152, 180,137 ] # P4/16
- - [ 140,301, 303,264, 238,542 ] # P5/32
- - [ 436,615, 739,380, 925,792 ] # P6/64
-
-# P6-1920: thr=0.25: 0.9950 BPR, 5.55 anchors past thr, n=12, img_size=1920, metric_all=0.281/0.714-mean/best, past_thr=0.468-mean: 28,41, 67,59, 57,141, 144,103, 129,227, 270,205, 209,452, 455,396, 358,812, 653,922, 1109,570, 1387,1187
-anchors_p6_1920:
- - [ 28,41, 67,59, 57,141 ] # P3/8
- - [ 144,103, 129,227, 270,205 ] # P4/16
- - [ 209,452, 455,396, 358,812 ] # P5/32
- - [ 653,922, 1109,570, 1387,1187 ] # P6/64
-
-
-# P7 -------------------------------------------------------------------------------------------------------------------
-# P7-640: thr=0.25: 0.9962 BPR, 6.76 anchors past thr, n=15, img_size=640, metric_all=0.275/0.733-mean/best, past_thr=0.466-mean: 11,11, 13,30, 29,20, 30,46, 61,38, 39,92, 78,80, 146,66, 79,163, 149,150, 321,143, 157,303, 257,402, 359,290, 524,372
-anchors_p7_640:
- - [ 11,11, 13,30, 29,20 ] # P3/8
- - [ 30,46, 61,38, 39,92 ] # P4/16
- - [ 78,80, 146,66, 79,163 ] # P5/32
- - [ 149,150, 321,143, 157,303 ] # P6/64
- - [ 257,402, 359,290, 524,372 ] # P7/128
-
-# P7-1280: thr=0.25: 0.9968 BPR, 6.71 anchors past thr, n=15, img_size=1280, metric_all=0.273/0.732-mean/best, past_thr=0.463-mean: 19,22, 54,36, 32,77, 70,83, 138,71, 75,173, 165,159, 148,334, 375,151, 334,317, 251,626, 499,474, 750,326, 534,814, 1079,818
-anchors_p7_1280:
- - [ 19,22, 54,36, 32,77 ] # P3/8
- - [ 70,83, 138,71, 75,173 ] # P4/16
- - [ 165,159, 148,334, 375,151 ] # P5/32
- - [ 334,317, 251,626, 499,474 ] # P6/64
- - [ 750,326, 534,814, 1079,818 ] # P7/128
-
-# P7-1920: thr=0.25: 0.9968 BPR, 6.71 anchors past thr, n=15, img_size=1920, metric_all=0.273/0.732-mean/best, past_thr=0.463-mean: 29,34, 81,55, 47,115, 105,124, 207,107, 113,259, 247,238, 222,500, 563,227, 501,476, 376,939, 749,711, 1126,489, 801,1222, 1618,1227
-anchors_p7_1920:
- - [ 29,34, 81,55, 47,115 ] # P3/8
- - [ 105,124, 207,107, 113,259 ] # P4/16
- - [ 247,238, 222,500, 563,227 ] # P5/32
- - [ 501,476, 376,939, 749,711 ] # P6/64
- - [ 1126,489, 801,1222, 1618,1227 ] # P7/128
diff --git a/Yolov5-Deepsort/models/hub/yolov3-spp.yaml b/Yolov5-Deepsort/models/hub/yolov3-spp.yaml
deleted file mode 100644
index 38dcc449f0d0c1b85b4e6ff426da0d9e9df07d4e..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov3-spp.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors:
- - [10,13, 16,30, 33,23] # P3/8
- - [30,61, 62,45, 59,119] # P4/16
- - [116,90, 156,198, 373,326] # P5/32
-
-# darknet53 backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Conv, [32, 3, 1]], # 0
- [-1, 1, Conv, [64, 3, 2]], # 1-P1/2
- [-1, 1, Bottleneck, [64]],
- [-1, 1, Conv, [128, 3, 2]], # 3-P2/4
- [-1, 2, Bottleneck, [128]],
- [-1, 1, Conv, [256, 3, 2]], # 5-P3/8
- [-1, 8, Bottleneck, [256]],
- [-1, 1, Conv, [512, 3, 2]], # 7-P4/16
- [-1, 8, Bottleneck, [512]],
- [-1, 1, Conv, [1024, 3, 2]], # 9-P5/32
- [-1, 4, Bottleneck, [1024]], # 10
- ]
-
-# YOLOv3-SPP head
-head:
- [[-1, 1, Bottleneck, [1024, False]],
- [-1, 1, SPP, [512, [5, 9, 13]]],
- [-1, 1, Conv, [1024, 3, 1]],
- [-1, 1, Conv, [512, 1, 1]],
- [-1, 1, Conv, [1024, 3, 1]], # 15 (P5/32-large)
-
- [-2, 1, Conv, [256, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 8], 1, Concat, [1]], # cat backbone P4
- [-1, 1, Bottleneck, [512, False]],
- [-1, 1, Bottleneck, [512, False]],
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 1, Conv, [512, 3, 1]], # 22 (P4/16-medium)
-
- [-2, 1, Conv, [128, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 6], 1, Concat, [1]], # cat backbone P3
- [-1, 1, Bottleneck, [256, False]],
- [-1, 2, Bottleneck, [256, False]], # 27 (P3/8-small)
-
- [[27, 22, 15], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov3-tiny.yaml b/Yolov5-Deepsort/models/hub/yolov3-tiny.yaml
deleted file mode 100644
index ff7638cad3beb5a0186cc67b84e23799ffb53bae..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov3-tiny.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors:
- - [10,14, 23,27, 37,58] # P4/16
- - [81,82, 135,169, 344,319] # P5/32
-
-# YOLOv3-tiny backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Conv, [16, 3, 1]], # 0
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 1-P1/2
- [-1, 1, Conv, [32, 3, 1]],
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 3-P2/4
- [-1, 1, Conv, [64, 3, 1]],
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 5-P3/8
- [-1, 1, Conv, [128, 3, 1]],
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 7-P4/16
- [-1, 1, Conv, [256, 3, 1]],
- [-1, 1, nn.MaxPool2d, [2, 2, 0]], # 9-P5/32
- [-1, 1, Conv, [512, 3, 1]],
- [-1, 1, nn.ZeroPad2d, [[0, 1, 0, 1]]], # 11
- [-1, 1, nn.MaxPool2d, [2, 1, 0]], # 12
- ]
-
-# YOLOv3-tiny head
-head:
- [[-1, 1, Conv, [1024, 3, 1]],
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 1, Conv, [512, 3, 1]], # 15 (P5/32-large)
-
- [-2, 1, Conv, [128, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 8], 1, Concat, [1]], # cat backbone P4
- [-1, 1, Conv, [256, 3, 1]], # 19 (P4/16-medium)
-
- [[19, 15], 1, Detect, [nc, anchors]], # Detect(P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov3.yaml b/Yolov5-Deepsort/models/hub/yolov3.yaml
deleted file mode 100644
index f2e76135546945f3ccbb3311c99bf3882a90c199..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov3.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors:
- - [10,13, 16,30, 33,23] # P3/8
- - [30,61, 62,45, 59,119] # P4/16
- - [116,90, 156,198, 373,326] # P5/32
-
-# darknet53 backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Conv, [32, 3, 1]], # 0
- [-1, 1, Conv, [64, 3, 2]], # 1-P1/2
- [-1, 1, Bottleneck, [64]],
- [-1, 1, Conv, [128, 3, 2]], # 3-P2/4
- [-1, 2, Bottleneck, [128]],
- [-1, 1, Conv, [256, 3, 2]], # 5-P3/8
- [-1, 8, Bottleneck, [256]],
- [-1, 1, Conv, [512, 3, 2]], # 7-P4/16
- [-1, 8, Bottleneck, [512]],
- [-1, 1, Conv, [1024, 3, 2]], # 9-P5/32
- [-1, 4, Bottleneck, [1024]], # 10
- ]
-
-# YOLOv3 head
-head:
- [[-1, 1, Bottleneck, [1024, False]],
- [-1, 1, Conv, [512, [1, 1]]],
- [-1, 1, Conv, [1024, 3, 1]],
- [-1, 1, Conv, [512, 1, 1]],
- [-1, 1, Conv, [1024, 3, 1]], # 15 (P5/32-large)
-
- [-2, 1, Conv, [256, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 8], 1, Concat, [1]], # cat backbone P4
- [-1, 1, Bottleneck, [512, False]],
- [-1, 1, Bottleneck, [512, False]],
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 1, Conv, [512, 3, 1]], # 22 (P4/16-medium)
-
- [-2, 1, Conv, [128, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 6], 1, Concat, [1]], # cat backbone P3
- [-1, 1, Bottleneck, [256, False]],
- [-1, 2, Bottleneck, [256, False]], # 27 (P3/8-small)
-
- [[27, 22, 15], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5-fpn.yaml b/Yolov5-Deepsort/models/hub/yolov5-fpn.yaml
deleted file mode 100644
index e772bffecbbca75c536cd43d9e1659e41910b337..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5-fpn.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors:
- - [10,13, 16,30, 33,23] # P3/8
- - [30,61, 62,45, 59,119] # P4/16
- - [116,90, 156,198, 373,326] # P5/32
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Focus, [64, 3]], # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
- [-1, 3, Bottleneck, [128]],
- [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
- [-1, 9, BottleneckCSP, [256]],
- [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
- [-1, 9, BottleneckCSP, [512]],
- [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
- [-1, 1, SPP, [1024, [5, 9, 13]]],
- [-1, 6, BottleneckCSP, [1024]], # 9
- ]
-
-# YOLOv5 FPN head
-head:
- [[-1, 3, BottleneckCSP, [1024, False]], # 10 (P5/32-large)
-
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 6], 1, Concat, [1]], # cat backbone P4
- [-1, 1, Conv, [512, 1, 1]],
- [-1, 3, BottleneckCSP, [512, False]], # 14 (P4/16-medium)
-
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 4], 1, Concat, [1]], # cat backbone P3
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 3, BottleneckCSP, [256, False]], # 18 (P3/8-small)
-
- [[18, 14, 10], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5-p2.yaml b/Yolov5-Deepsort/models/hub/yolov5-p2.yaml
deleted file mode 100644
index 0633a90fd065efce8d9c771da36815ae353fa2f2..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5-p2.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors: 3
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [ [ -1, 1, Focus, [ 64, 3 ] ], # 0-P1/2
- [ -1, 1, Conv, [ 128, 3, 2 ] ], # 1-P2/4
- [ -1, 3, C3, [ 128 ] ],
- [ -1, 1, Conv, [ 256, 3, 2 ] ], # 3-P3/8
- [ -1, 9, C3, [ 256 ] ],
- [ -1, 1, Conv, [ 512, 3, 2 ] ], # 5-P4/16
- [ -1, 9, C3, [ 512 ] ],
- [ -1, 1, Conv, [ 1024, 3, 2 ] ], # 7-P5/32
- [ -1, 1, SPP, [ 1024, [ 5, 9, 13 ] ] ],
- [ -1, 3, C3, [ 1024, False ] ], # 9
- ]
-
-# YOLOv5 head
-head:
- [ [ -1, 1, Conv, [ 512, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 6 ], 1, Concat, [ 1 ] ], # cat backbone P4
- [ -1, 3, C3, [ 512, False ] ], # 13
-
- [ -1, 1, Conv, [ 256, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 4 ], 1, Concat, [ 1 ] ], # cat backbone P3
- [ -1, 3, C3, [ 256, False ] ], # 17 (P3/8-small)
-
- [ -1, 1, Conv, [ 128, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 2 ], 1, Concat, [ 1 ] ], # cat backbone P2
- [ -1, 1, C3, [ 128, False ] ], # 21 (P2/4-xsmall)
-
- [ -1, 1, Conv, [ 128, 3, 2 ] ],
- [ [ -1, 18 ], 1, Concat, [ 1 ] ], # cat head P3
- [ -1, 3, C3, [ 256, False ] ], # 24 (P3/8-small)
-
- [ -1, 1, Conv, [ 256, 3, 2 ] ],
- [ [ -1, 14 ], 1, Concat, [ 1 ] ], # cat head P4
- [ -1, 3, C3, [ 512, False ] ], # 27 (P4/16-medium)
-
- [ -1, 1, Conv, [ 512, 3, 2 ] ],
- [ [ -1, 10 ], 1, Concat, [ 1 ] ], # cat head P5
- [ -1, 3, C3, [ 1024, False ] ], # 30 (P5/32-large)
-
- [ [ 24, 27, 30 ], 1, Detect, [ nc, anchors ] ], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5-p6.yaml b/Yolov5-Deepsort/models/hub/yolov5-p6.yaml
deleted file mode 100644
index 3728a118f09016eebc68538e7651134e070bd79f..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5-p6.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors: 3
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [ [ -1, 1, Focus, [ 64, 3 ] ], # 0-P1/2
- [ -1, 1, Conv, [ 128, 3, 2 ] ], # 1-P2/4
- [ -1, 3, C3, [ 128 ] ],
- [ -1, 1, Conv, [ 256, 3, 2 ] ], # 3-P3/8
- [ -1, 9, C3, [ 256 ] ],
- [ -1, 1, Conv, [ 512, 3, 2 ] ], # 5-P4/16
- [ -1, 9, C3, [ 512 ] ],
- [ -1, 1, Conv, [ 768, 3, 2 ] ], # 7-P5/32
- [ -1, 3, C3, [ 768 ] ],
- [ -1, 1, Conv, [ 1024, 3, 2 ] ], # 9-P6/64
- [ -1, 1, SPP, [ 1024, [ 3, 5, 7 ] ] ],
- [ -1, 3, C3, [ 1024, False ] ], # 11
- ]
-
-# YOLOv5 head
-head:
- [ [ -1, 1, Conv, [ 768, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 8 ], 1, Concat, [ 1 ] ], # cat backbone P5
- [ -1, 3, C3, [ 768, False ] ], # 15
-
- [ -1, 1, Conv, [ 512, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 6 ], 1, Concat, [ 1 ] ], # cat backbone P4
- [ -1, 3, C3, [ 512, False ] ], # 19
-
- [ -1, 1, Conv, [ 256, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 4 ], 1, Concat, [ 1 ] ], # cat backbone P3
- [ -1, 3, C3, [ 256, False ] ], # 23 (P3/8-small)
-
- [ -1, 1, Conv, [ 256, 3, 2 ] ],
- [ [ -1, 20 ], 1, Concat, [ 1 ] ], # cat head P4
- [ -1, 3, C3, [ 512, False ] ], # 26 (P4/16-medium)
-
- [ -1, 1, Conv, [ 512, 3, 2 ] ],
- [ [ -1, 16 ], 1, Concat, [ 1 ] ], # cat head P5
- [ -1, 3, C3, [ 768, False ] ], # 29 (P5/32-large)
-
- [ -1, 1, Conv, [ 768, 3, 2 ] ],
- [ [ -1, 12 ], 1, Concat, [ 1 ] ], # cat head P6
- [ -1, 3, C3, [ 1024, False ] ], # 32 (P5/64-xlarge)
-
- [ [ 23, 26, 29, 32 ], 1, Detect, [ nc, anchors ] ], # Detect(P3, P4, P5, P6)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5-p7.yaml b/Yolov5-Deepsort/models/hub/yolov5-p7.yaml
deleted file mode 100644
index ca8f8492ce0e9750e1856ac67f19ff4bf92d1948..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5-p7.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors: 3
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [ [ -1, 1, Focus, [ 64, 3 ] ], # 0-P1/2
- [ -1, 1, Conv, [ 128, 3, 2 ] ], # 1-P2/4
- [ -1, 3, C3, [ 128 ] ],
- [ -1, 1, Conv, [ 256, 3, 2 ] ], # 3-P3/8
- [ -1, 9, C3, [ 256 ] ],
- [ -1, 1, Conv, [ 512, 3, 2 ] ], # 5-P4/16
- [ -1, 9, C3, [ 512 ] ],
- [ -1, 1, Conv, [ 768, 3, 2 ] ], # 7-P5/32
- [ -1, 3, C3, [ 768 ] ],
- [ -1, 1, Conv, [ 1024, 3, 2 ] ], # 9-P6/64
- [ -1, 3, C3, [ 1024 ] ],
- [ -1, 1, Conv, [ 1280, 3, 2 ] ], # 11-P7/128
- [ -1, 1, SPP, [ 1280, [ 3, 5 ] ] ],
- [ -1, 3, C3, [ 1280, False ] ], # 13
- ]
-
-# YOLOv5 head
-head:
- [ [ -1, 1, Conv, [ 1024, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 10 ], 1, Concat, [ 1 ] ], # cat backbone P6
- [ -1, 3, C3, [ 1024, False ] ], # 17
-
- [ -1, 1, Conv, [ 768, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 8 ], 1, Concat, [ 1 ] ], # cat backbone P5
- [ -1, 3, C3, [ 768, False ] ], # 21
-
- [ -1, 1, Conv, [ 512, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 6 ], 1, Concat, [ 1 ] ], # cat backbone P4
- [ -1, 3, C3, [ 512, False ] ], # 25
-
- [ -1, 1, Conv, [ 256, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 4 ], 1, Concat, [ 1 ] ], # cat backbone P3
- [ -1, 3, C3, [ 256, False ] ], # 29 (P3/8-small)
-
- [ -1, 1, Conv, [ 256, 3, 2 ] ],
- [ [ -1, 26 ], 1, Concat, [ 1 ] ], # cat head P4
- [ -1, 3, C3, [ 512, False ] ], # 32 (P4/16-medium)
-
- [ -1, 1, Conv, [ 512, 3, 2 ] ],
- [ [ -1, 22 ], 1, Concat, [ 1 ] ], # cat head P5
- [ -1, 3, C3, [ 768, False ] ], # 35 (P5/32-large)
-
- [ -1, 1, Conv, [ 768, 3, 2 ] ],
- [ [ -1, 18 ], 1, Concat, [ 1 ] ], # cat head P6
- [ -1, 3, C3, [ 1024, False ] ], # 38 (P6/64-xlarge)
-
- [ -1, 1, Conv, [ 1024, 3, 2 ] ],
- [ [ -1, 14 ], 1, Concat, [ 1 ] ], # cat head P7
- [ -1, 3, C3, [ 1280, False ] ], # 41 (P7/128-xxlarge)
-
- [ [ 29, 32, 35, 38, 41 ], 1, Detect, [ nc, anchors ] ], # Detect(P3, P4, P5, P6, P7)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5-panet.yaml b/Yolov5-Deepsort/models/hub/yolov5-panet.yaml
deleted file mode 100644
index 340f95a4dbc9a7a3250cd6e41422ea4c520991c8..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5-panet.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors:
- - [10,13, 16,30, 33,23] # P3/8
- - [30,61, 62,45, 59,119] # P4/16
- - [116,90, 156,198, 373,326] # P5/32
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Focus, [64, 3]], # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
- [-1, 3, BottleneckCSP, [128]],
- [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
- [-1, 9, BottleneckCSP, [256]],
- [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
- [-1, 9, BottleneckCSP, [512]],
- [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
- [-1, 1, SPP, [1024, [5, 9, 13]]],
- [-1, 3, BottleneckCSP, [1024, False]], # 9
- ]
-
-# YOLOv5 PANet head
-head:
- [[-1, 1, Conv, [512, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 6], 1, Concat, [1]], # cat backbone P4
- [-1, 3, BottleneckCSP, [512, False]], # 13
-
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 4], 1, Concat, [1]], # cat backbone P3
- [-1, 3, BottleneckCSP, [256, False]], # 17 (P3/8-small)
-
- [-1, 1, Conv, [256, 3, 2]],
- [[-1, 14], 1, Concat, [1]], # cat head P4
- [-1, 3, BottleneckCSP, [512, False]], # 20 (P4/16-medium)
-
- [-1, 1, Conv, [512, 3, 2]],
- [[-1, 10], 1, Concat, [1]], # cat head P5
- [-1, 3, BottleneckCSP, [1024, False]], # 23 (P5/32-large)
-
- [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5l6.yaml b/Yolov5-Deepsort/models/hub/yolov5l6.yaml
deleted file mode 100644
index 11298b01f47915d729c747714caf308b676ec579..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5l6.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors:
- - [ 19,27, 44,40, 38,94 ] # P3/8
- - [ 96,68, 86,152, 180,137 ] # P4/16
- - [ 140,301, 303,264, 238,542 ] # P5/32
- - [ 436,615, 739,380, 925,792 ] # P6/64
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [ [ -1, 1, Focus, [ 64, 3 ] ], # 0-P1/2
- [ -1, 1, Conv, [ 128, 3, 2 ] ], # 1-P2/4
- [ -1, 3, C3, [ 128 ] ],
- [ -1, 1, Conv, [ 256, 3, 2 ] ], # 3-P3/8
- [ -1, 9, C3, [ 256 ] ],
- [ -1, 1, Conv, [ 512, 3, 2 ] ], # 5-P4/16
- [ -1, 9, C3, [ 512 ] ],
- [ -1, 1, Conv, [ 768, 3, 2 ] ], # 7-P5/32
- [ -1, 3, C3, [ 768 ] ],
- [ -1, 1, Conv, [ 1024, 3, 2 ] ], # 9-P6/64
- [ -1, 1, SPP, [ 1024, [ 3, 5, 7 ] ] ],
- [ -1, 3, C3, [ 1024, False ] ], # 11
- ]
-
-# YOLOv5 head
-head:
- [ [ -1, 1, Conv, [ 768, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 8 ], 1, Concat, [ 1 ] ], # cat backbone P5
- [ -1, 3, C3, [ 768, False ] ], # 15
-
- [ -1, 1, Conv, [ 512, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 6 ], 1, Concat, [ 1 ] ], # cat backbone P4
- [ -1, 3, C3, [ 512, False ] ], # 19
-
- [ -1, 1, Conv, [ 256, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 4 ], 1, Concat, [ 1 ] ], # cat backbone P3
- [ -1, 3, C3, [ 256, False ] ], # 23 (P3/8-small)
-
- [ -1, 1, Conv, [ 256, 3, 2 ] ],
- [ [ -1, 20 ], 1, Concat, [ 1 ] ], # cat head P4
- [ -1, 3, C3, [ 512, False ] ], # 26 (P4/16-medium)
-
- [ -1, 1, Conv, [ 512, 3, 2 ] ],
- [ [ -1, 16 ], 1, Concat, [ 1 ] ], # cat head P5
- [ -1, 3, C3, [ 768, False ] ], # 29 (P5/32-large)
-
- [ -1, 1, Conv, [ 768, 3, 2 ] ],
- [ [ -1, 12 ], 1, Concat, [ 1 ] ], # cat head P6
- [ -1, 3, C3, [ 1024, False ] ], # 32 (P6/64-xlarge)
-
- [ [ 23, 26, 29, 32 ], 1, Detect, [ nc, anchors ] ], # Detect(P3, P4, P5, P6)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5m6.yaml b/Yolov5-Deepsort/models/hub/yolov5m6.yaml
deleted file mode 100644
index 48afc865593ae964493e8fbd042a72209ab6487f..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5m6.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 0.67 # model depth multiple
-width_multiple: 0.75 # layer channel multiple
-
-# anchors
-anchors:
- - [ 19,27, 44,40, 38,94 ] # P3/8
- - [ 96,68, 86,152, 180,137 ] # P4/16
- - [ 140,301, 303,264, 238,542 ] # P5/32
- - [ 436,615, 739,380, 925,792 ] # P6/64
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [ [ -1, 1, Focus, [ 64, 3 ] ], # 0-P1/2
- [ -1, 1, Conv, [ 128, 3, 2 ] ], # 1-P2/4
- [ -1, 3, C3, [ 128 ] ],
- [ -1, 1, Conv, [ 256, 3, 2 ] ], # 3-P3/8
- [ -1, 9, C3, [ 256 ] ],
- [ -1, 1, Conv, [ 512, 3, 2 ] ], # 5-P4/16
- [ -1, 9, C3, [ 512 ] ],
- [ -1, 1, Conv, [ 768, 3, 2 ] ], # 7-P5/32
- [ -1, 3, C3, [ 768 ] ],
- [ -1, 1, Conv, [ 1024, 3, 2 ] ], # 9-P6/64
- [ -1, 1, SPP, [ 1024, [ 3, 5, 7 ] ] ],
- [ -1, 3, C3, [ 1024, False ] ], # 11
- ]
-
-# YOLOv5 head
-head:
- [ [ -1, 1, Conv, [ 768, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 8 ], 1, Concat, [ 1 ] ], # cat backbone P5
- [ -1, 3, C3, [ 768, False ] ], # 15
-
- [ -1, 1, Conv, [ 512, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 6 ], 1, Concat, [ 1 ] ], # cat backbone P4
- [ -1, 3, C3, [ 512, False ] ], # 19
-
- [ -1, 1, Conv, [ 256, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 4 ], 1, Concat, [ 1 ] ], # cat backbone P3
- [ -1, 3, C3, [ 256, False ] ], # 23 (P3/8-small)
-
- [ -1, 1, Conv, [ 256, 3, 2 ] ],
- [ [ -1, 20 ], 1, Concat, [ 1 ] ], # cat head P4
- [ -1, 3, C3, [ 512, False ] ], # 26 (P4/16-medium)
-
- [ -1, 1, Conv, [ 512, 3, 2 ] ],
- [ [ -1, 16 ], 1, Concat, [ 1 ] ], # cat head P5
- [ -1, 3, C3, [ 768, False ] ], # 29 (P5/32-large)
-
- [ -1, 1, Conv, [ 768, 3, 2 ] ],
- [ [ -1, 12 ], 1, Concat, [ 1 ] ], # cat head P6
- [ -1, 3, C3, [ 1024, False ] ], # 32 (P6/64-xlarge)
-
- [ [ 23, 26, 29, 32 ], 1, Detect, [ nc, anchors ] ], # Detect(P3, P4, P5, P6)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5s-transformer.yaml b/Yolov5-Deepsort/models/hub/yolov5s-transformer.yaml
deleted file mode 100644
index f2d666722b30508eea865cf4d51ce607589a60ec..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5s-transformer.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 0.33 # model depth multiple
-width_multiple: 0.50 # layer channel multiple
-
-# anchors
-anchors:
- - [10,13, 16,30, 33,23] # P3/8
- - [30,61, 62,45, 59,119] # P4/16
- - [116,90, 156,198, 373,326] # P5/32
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Focus, [64, 3]], # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
- [-1, 3, C3, [128]],
- [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
- [-1, 9, C3, [256]],
- [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
- [-1, 9, C3, [512]],
- [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
- [-1, 1, SPP, [1024, [5, 9, 13]]],
- [-1, 3, C3TR, [1024, False]], # 9 <-------- C3TR() Transformer module
- ]
-
-# YOLOv5 head
-head:
- [[-1, 1, Conv, [512, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 6], 1, Concat, [1]], # cat backbone P4
- [-1, 3, C3, [512, False]], # 13
-
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 4], 1, Concat, [1]], # cat backbone P3
- [-1, 3, C3, [256, False]], # 17 (P3/8-small)
-
- [-1, 1, Conv, [256, 3, 2]],
- [[-1, 14], 1, Concat, [1]], # cat head P4
- [-1, 3, C3, [512, False]], # 20 (P4/16-medium)
-
- [-1, 1, Conv, [512, 3, 2]],
- [[-1, 10], 1, Concat, [1]], # cat head P5
- [-1, 3, C3, [1024, False]], # 23 (P5/32-large)
-
- [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5s6.yaml b/Yolov5-Deepsort/models/hub/yolov5s6.yaml
deleted file mode 100644
index 1df577a2cc97c66763eafd37c70b97f6e893d4fd..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5s6.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 0.33 # model depth multiple
-width_multiple: 0.50 # layer channel multiple
-
-# anchors
-anchors:
- - [ 19,27, 44,40, 38,94 ] # P3/8
- - [ 96,68, 86,152, 180,137 ] # P4/16
- - [ 140,301, 303,264, 238,542 ] # P5/32
- - [ 436,615, 739,380, 925,792 ] # P6/64
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [ [ -1, 1, Focus, [ 64, 3 ] ], # 0-P1/2
- [ -1, 1, Conv, [ 128, 3, 2 ] ], # 1-P2/4
- [ -1, 3, C3, [ 128 ] ],
- [ -1, 1, Conv, [ 256, 3, 2 ] ], # 3-P3/8
- [ -1, 9, C3, [ 256 ] ],
- [ -1, 1, Conv, [ 512, 3, 2 ] ], # 5-P4/16
- [ -1, 9, C3, [ 512 ] ],
- [ -1, 1, Conv, [ 768, 3, 2 ] ], # 7-P5/32
- [ -1, 3, C3, [ 768 ] ],
- [ -1, 1, Conv, [ 1024, 3, 2 ] ], # 9-P6/64
- [ -1, 1, SPP, [ 1024, [ 3, 5, 7 ] ] ],
- [ -1, 3, C3, [ 1024, False ] ], # 11
- ]
-
-# YOLOv5 head
-head:
- [ [ -1, 1, Conv, [ 768, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 8 ], 1, Concat, [ 1 ] ], # cat backbone P5
- [ -1, 3, C3, [ 768, False ] ], # 15
-
- [ -1, 1, Conv, [ 512, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 6 ], 1, Concat, [ 1 ] ], # cat backbone P4
- [ -1, 3, C3, [ 512, False ] ], # 19
-
- [ -1, 1, Conv, [ 256, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 4 ], 1, Concat, [ 1 ] ], # cat backbone P3
- [ -1, 3, C3, [ 256, False ] ], # 23 (P3/8-small)
-
- [ -1, 1, Conv, [ 256, 3, 2 ] ],
- [ [ -1, 20 ], 1, Concat, [ 1 ] ], # cat head P4
- [ -1, 3, C3, [ 512, False ] ], # 26 (P4/16-medium)
-
- [ -1, 1, Conv, [ 512, 3, 2 ] ],
- [ [ -1, 16 ], 1, Concat, [ 1 ] ], # cat head P5
- [ -1, 3, C3, [ 768, False ] ], # 29 (P5/32-large)
-
- [ -1, 1, Conv, [ 768, 3, 2 ] ],
- [ [ -1, 12 ], 1, Concat, [ 1 ] ], # cat head P6
- [ -1, 3, C3, [ 1024, False ] ], # 32 (P6/64-xlarge)
-
- [ [ 23, 26, 29, 32 ], 1, Detect, [ nc, anchors ] ], # Detect(P3, P4, P5, P6)
- ]
diff --git a/Yolov5-Deepsort/models/hub/yolov5x6.yaml b/Yolov5-Deepsort/models/hub/yolov5x6.yaml
deleted file mode 100644
index 5ebc02124fe785d730316fde42bde40c830eac66..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/hub/yolov5x6.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.33 # model depth multiple
-width_multiple: 1.25 # layer channel multiple
-
-# anchors
-anchors:
- - [ 19,27, 44,40, 38,94 ] # P3/8
- - [ 96,68, 86,152, 180,137 ] # P4/16
- - [ 140,301, 303,264, 238,542 ] # P5/32
- - [ 436,615, 739,380, 925,792 ] # P6/64
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [ [ -1, 1, Focus, [ 64, 3 ] ], # 0-P1/2
- [ -1, 1, Conv, [ 128, 3, 2 ] ], # 1-P2/4
- [ -1, 3, C3, [ 128 ] ],
- [ -1, 1, Conv, [ 256, 3, 2 ] ], # 3-P3/8
- [ -1, 9, C3, [ 256 ] ],
- [ -1, 1, Conv, [ 512, 3, 2 ] ], # 5-P4/16
- [ -1, 9, C3, [ 512 ] ],
- [ -1, 1, Conv, [ 768, 3, 2 ] ], # 7-P5/32
- [ -1, 3, C3, [ 768 ] ],
- [ -1, 1, Conv, [ 1024, 3, 2 ] ], # 9-P6/64
- [ -1, 1, SPP, [ 1024, [ 3, 5, 7 ] ] ],
- [ -1, 3, C3, [ 1024, False ] ], # 11
- ]
-
-# YOLOv5 head
-head:
- [ [ -1, 1, Conv, [ 768, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 8 ], 1, Concat, [ 1 ] ], # cat backbone P5
- [ -1, 3, C3, [ 768, False ] ], # 15
-
- [ -1, 1, Conv, [ 512, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 6 ], 1, Concat, [ 1 ] ], # cat backbone P4
- [ -1, 3, C3, [ 512, False ] ], # 19
-
- [ -1, 1, Conv, [ 256, 1, 1 ] ],
- [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
- [ [ -1, 4 ], 1, Concat, [ 1 ] ], # cat backbone P3
- [ -1, 3, C3, [ 256, False ] ], # 23 (P3/8-small)
-
- [ -1, 1, Conv, [ 256, 3, 2 ] ],
- [ [ -1, 20 ], 1, Concat, [ 1 ] ], # cat head P4
- [ -1, 3, C3, [ 512, False ] ], # 26 (P4/16-medium)
-
- [ -1, 1, Conv, [ 512, 3, 2 ] ],
- [ [ -1, 16 ], 1, Concat, [ 1 ] ], # cat head P5
- [ -1, 3, C3, [ 768, False ] ], # 29 (P5/32-large)
-
- [ -1, 1, Conv, [ 768, 3, 2 ] ],
- [ [ -1, 12 ], 1, Concat, [ 1 ] ], # cat head P6
- [ -1, 3, C3, [ 1024, False ] ], # 32 (P6/64-xlarge)
-
- [ [ 23, 26, 29, 32 ], 1, Detect, [ nc, anchors ] ], # Detect(P3, P4, P5, P6)
- ]
diff --git a/Yolov5-Deepsort/models/yolo.py b/Yolov5-Deepsort/models/yolo.py
deleted file mode 100644
index 06b80032d3d3b6d84162e040e45e0e276a619a34..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/yolo.py
+++ /dev/null
@@ -1,304 +0,0 @@
-# YOLOv5 YOLO-specific modules
-
-import argparse
-import logging
-import sys
-from copy import deepcopy
-from pathlib import Path
-
-sys.path.append(Path(__file__).parent.parent.absolute().__str__()) # to run '$ python *.py' files in subdirectories
-logger = logging.getLogger(__name__)
-
-from models.common import *
-from models.experimental import *
-from utils.autoanchor import check_anchor_order
-from utils.general import make_divisible, check_file, set_logging
-from utils.torch_utils import time_synchronized, fuse_conv_and_bn, model_info, scale_img, initialize_weights, \
- select_device, copy_attr
-
-try:
- import thop # for FLOPS computation
-except ImportError:
- thop = None
-
-
-class Detect(nn.Module):
- stride = None # strides computed during build
- onnx_dynamic = False # ONNX export parameter
-
- def __init__(self, nc=80, anchors=(), ch=(), inplace=True): # detection layer
- super(Detect, self).__init__()
- self.nc = nc # number of classes
- self.no = nc + 5 # number of outputs per anchor
- self.nl = len(anchors) # number of detection layers
- self.na = len(anchors[0]) // 2 # number of anchors
- self.grid = [torch.zeros(1)] * self.nl # init grid
- a = torch.tensor(anchors).float().view(self.nl, -1, 2)
- self.register_buffer('anchors', a) # shape(nl,na,2)
- self.register_buffer('anchor_grid', a.clone().view(self.nl, 1, -1, 1, 1, 2)) # shape(nl,1,na,1,1,2)
- self.m = nn.ModuleList(nn.Conv2d(x, self.no * self.na, 1) for x in ch) # output conv
- self.inplace = inplace # use in-place ops (e.g. slice assignment)
-
- def forward(self, x):
- # x = x.copy() # for profiling
- z = [] # inference output
- for i in range(self.nl):
- x[i] = self.m[i](x[i]) # conv
- bs, _, ny, nx = x[i].shape # x(bs,255,20,20) to x(bs,3,20,20,85)
- x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous()
-
- if not self.training: # inference
- if self.grid[i].shape[2:4] != x[i].shape[2:4] or self.onnx_dynamic:
- self.grid[i] = self._make_grid(nx, ny).to(x[i].device)
-
- y = x[i].sigmoid()
- if self.inplace:
- y[..., 0:2] = (y[..., 0:2] * 2. - 0.5 + self.grid[i]) * self.stride[i] # xy
- y[..., 2:4] = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i] # wh
- else: # for YOLOv5 on AWS Inferentia https://github.com/ultralytics/yolov5/pull/2953
- xy = (y[..., 0:2] * 2. - 0.5 + self.grid[i]) * self.stride[i] # xy
- wh = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i].view(1, self.na, 1, 1, 2) # wh
- y = torch.cat((xy, wh, y[..., 4:]), -1)
- z.append(y.view(bs, -1, self.no))
-
- return x if self.training else (torch.cat(z, 1), x)
-
- @staticmethod
- def _make_grid(nx=20, ny=20):
- yv, xv = torch.meshgrid([torch.arange(ny), torch.arange(nx)])
- return torch.stack((xv, yv), 2).view((1, 1, ny, nx, 2)).float()
-
-
-class Model(nn.Module):
- def __init__(self, cfg='yolov5s.yaml', ch=3, nc=None, anchors=None): # model, input channels, number of classes
- super(Model, self).__init__()
- if isinstance(cfg, dict):
- self.yaml = cfg # model dict
- else: # is *.yaml
- import yaml # for torch hub
- self.yaml_file = Path(cfg).name
- with open(cfg) as f:
- self.yaml = yaml.safe_load(f) # model dict
-
- # Define model
- ch = self.yaml['ch'] = self.yaml.get('ch', ch) # input channels
- if nc and nc != self.yaml['nc']:
- logger.info(f"Overriding model.yaml nc={self.yaml['nc']} with nc={nc}")
- self.yaml['nc'] = nc # override yaml value
- if anchors:
- logger.info(f'Overriding model.yaml anchors with anchors={anchors}')
- self.yaml['anchors'] = round(anchors) # override yaml value
- self.model, self.save = parse_model(deepcopy(self.yaml), ch=[ch]) # model, savelist
- self.names = [str(i) for i in range(self.yaml['nc'])] # default names
- self.inplace = self.yaml.get('inplace', True)
- # logger.info([x.shape for x in self.forward(torch.zeros(1, ch, 64, 64))])
-
- # Build strides, anchors
- m = self.model[-1] # Detect()
- if isinstance(m, Detect):
- s = 256 # 2x min stride
- m.inplace = self.inplace
- m.stride = torch.tensor([s / x.shape[-2] for x in self.forward(torch.zeros(1, ch, s, s))]) # forward
- m.anchors /= m.stride.view(-1, 1, 1)
- check_anchor_order(m)
- self.stride = m.stride
- self._initialize_biases() # only run once
- # logger.info('Strides: %s' % m.stride.tolist())
-
- # Init weights, biases
- initialize_weights(self)
- self.info()
- logger.info('')
-
- def forward(self, x, augment=False, profile=False):
- if augment:
- return self.forward_augment(x) # augmented inference, None
- else:
- return self.forward_once(x, profile) # single-scale inference, train
-
- def forward_augment(self, x):
- img_size = x.shape[-2:] # height, width
- s = [1, 0.83, 0.67] # scales
- f = [None, 3, None] # flips (2-ud, 3-lr)
- y = [] # outputs
- for si, fi in zip(s, f):
- xi = scale_img(x.flip(fi) if fi else x, si, gs=int(self.stride.max()))
- yi = self.forward_once(xi)[0] # forward
- # cv2.imwrite(f'img_{si}.jpg', 255 * xi[0].cpu().numpy().transpose((1, 2, 0))[:, :, ::-1]) # save
- yi = self._descale_pred(yi, fi, si, img_size)
- y.append(yi)
- return torch.cat(y, 1), None # augmented inference, train
-
- def forward_once(self, x, profile=False):
- y, dt = [], [] # outputs
- for m in self.model:
- if m.f != -1: # if not from previous layer
- x = y[m.f] if isinstance(m.f, int) else [x if j == -1 else y[j] for j in m.f] # from earlier layers
-
- if profile:
- o = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 if thop else 0 # FLOPS
- t = time_synchronized()
- for _ in range(10):
- _ = m(x)
- dt.append((time_synchronized() - t) * 100)
- if m == self.model[0]:
- logger.info(f"{'time (ms)':>10s} {'GFLOPS':>10s} {'params':>10s} {'module'}")
- logger.info(f'{dt[-1]:10.2f} {o:10.2f} {m.np:10.0f} {m.type}')
-
- x = m(x) # run
- y.append(x if m.i in self.save else None) # save output
-
- if profile:
- logger.info('%.1fms total' % sum(dt))
- return x
-
- def _descale_pred(self, p, flips, scale, img_size):
- # de-scale predictions following augmented inference (inverse operation)
- if self.inplace:
- p[..., :4] /= scale # de-scale
- if flips == 2:
- p[..., 1] = img_size[0] - p[..., 1] # de-flip ud
- elif flips == 3:
- p[..., 0] = img_size[1] - p[..., 0] # de-flip lr
- else:
- x, y, wh = p[..., 0:1] / scale, p[..., 1:2] / scale, p[..., 2:4] / scale # de-scale
- if flips == 2:
- y = img_size[0] - y # de-flip ud
- elif flips == 3:
- x = img_size[1] - x # de-flip lr
- p = torch.cat((x, y, wh, p[..., 4:]), -1)
- return p
-
- def _initialize_biases(self, cf=None): # initialize biases into Detect(), cf is class frequency
- # https://arxiv.org/abs/1708.02002 section 3.3
- # cf = torch.bincount(torch.tensor(np.concatenate(dataset.labels, 0)[:, 0]).long(), minlength=nc) + 1.
- m = self.model[-1] # Detect() module
- for mi, s in zip(m.m, m.stride): # from
- b = mi.bias.view(m.na, -1) # conv.bias(255) to (3,85)
- b.data[:, 4] += math.log(8 / (640 / s) ** 2) # obj (8 objects per 640 image)
- b.data[:, 5:] += math.log(0.6 / (m.nc - 0.99)) if cf is None else torch.log(cf / cf.sum()) # cls
- mi.bias = torch.nn.Parameter(b.view(-1), requires_grad=True)
-
- def _print_biases(self):
- m = self.model[-1] # Detect() module
- for mi in m.m: # from
- b = mi.bias.detach().view(m.na, -1).T # conv.bias(255) to (3,85)
- logger.info(
- ('%6g Conv2d.bias:' + '%10.3g' * 6) % (mi.weight.shape[1], *b[:5].mean(1).tolist(), b[5:].mean()))
-
- # def _print_weights(self):
- # for m in self.model.modules():
- # if type(m) is Bottleneck:
- # logger.info('%10.3g' % (m.w.detach().sigmoid() * 2)) # shortcut weights
-
- def fuse(self): # fuse model Conv2d() + BatchNorm2d() layers
- logger.info('Fusing layers... ')
- for m in self.model.modules():
- if type(m) is Conv and hasattr(m, 'bn'):
- m.conv = fuse_conv_and_bn(m.conv, m.bn) # update conv
- delattr(m, 'bn') # remove batchnorm
- m.forward = m.fuseforward # update forward
- self.info()
- return self
-
- def nms(self, mode=True): # add or remove NMS module
- present = type(self.model[-1]) is NMS # last layer is NMS
- if mode and not present:
- logger.info('Adding NMS... ')
- m = NMS() # module
- m.f = -1 # from
- m.i = self.model[-1].i + 1 # index
- self.model.add_module(name='%s' % m.i, module=m) # add
- self.eval()
- elif not mode and present:
- logger.info('Removing NMS... ')
- self.model = self.model[:-1] # remove
- return self
-
- def autoshape(self): # add AutoShape module
- logger.info('Adding AutoShape... ')
- m = AutoShape(self) # wrap model
- copy_attr(m, self, include=('yaml', 'nc', 'hyp', 'names', 'stride'), exclude=()) # copy attributes
- return m
-
- def info(self, verbose=False, img_size=640): # print model information
- model_info(self, verbose, img_size)
-
-
-def parse_model(d, ch): # model_dict, input_channels(3)
- logger.info('\n%3s%18s%3s%10s %-40s%-30s' % ('', 'from', 'n', 'params', 'module', 'arguments'))
- anchors, nc, gd, gw = d['anchors'], d['nc'], d['depth_multiple'], d['width_multiple']
- na = (len(anchors[0]) // 2) if isinstance(anchors, list) else anchors # number of anchors
- no = na * (nc + 5) # number of outputs = anchors * (classes + 5)
-
- layers, save, c2 = [], [], ch[-1] # layers, savelist, ch out
- for i, (f, n, m, args) in enumerate(d['backbone'] + d['head']): # from, number, module, args
- m = eval(m) if isinstance(m, str) else m # eval strings
- for j, a in enumerate(args):
- try:
- args[j] = eval(a) if isinstance(a, str) else a # eval strings
- except:
- pass
-
- n = max(round(n * gd), 1) if n > 1 else n # depth gain
- if m in [Conv, GhostConv, Bottleneck, GhostBottleneck, SPP, DWConv, MixConv2d, Focus, CrossConv, BottleneckCSP,
- C3, C3TR]:
- c1, c2 = ch[f], args[0]
- if c2 != no: # if not output
- c2 = make_divisible(c2 * gw, 8)
-
- args = [c1, c2, *args[1:]]
- if m in [BottleneckCSP, C3, C3TR]:
- args.insert(2, n) # number of repeats
- n = 1
- elif m is nn.BatchNorm2d:
- args = [ch[f]]
- elif m is Concat:
- c2 = sum([ch[x] for x in f])
- elif m is Detect:
- args.append([ch[x] for x in f])
- if isinstance(args[1], int): # number of anchors
- args[1] = [list(range(args[1] * 2))] * len(f)
- elif m is Contract:
- c2 = ch[f] * args[0] ** 2
- elif m is Expand:
- c2 = ch[f] // args[0] ** 2
- else:
- c2 = ch[f]
-
- m_ = nn.Sequential(*[m(*args) for _ in range(n)]) if n > 1 else m(*args) # module
- t = str(m)[8:-2].replace('__main__.', '') # module type
- np = sum([x.numel() for x in m_.parameters()]) # number params
- m_.i, m_.f, m_.type, m_.np = i, f, t, np # attach index, 'from' index, type, number params
- logger.info('%3s%18s%3s%10.0f %-40s%-30s' % (i, f, n, np, t, args)) # print
- save.extend(x % i for x in ([f] if isinstance(f, int) else f) if x != -1) # append to savelist
- layers.append(m_)
- if i == 0:
- ch = []
- ch.append(c2)
- return nn.Sequential(*layers), sorted(save)
-
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser()
- parser.add_argument('--cfg', type=str, default='yolov5s.yaml', help='model.yaml')
- parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
- opt = parser.parse_args()
- opt.cfg = check_file(opt.cfg) # check file
- set_logging()
- device = select_device(opt.device)
-
- # Create model
- model = Model(opt.cfg).to(device)
- model.train()
-
- # Profile
- # img = torch.rand(8 if torch.cuda.is_available() else 1, 3, 320, 320).to(device)
- # y = model(img, profile=True)
-
- # Tensorboard (not working https://github.com/ultralytics/yolov5/issues/2898)
- # from torch.utils.tensorboard import SummaryWriter
- # tb_writer = SummaryWriter('.')
- # logger.info("Run 'tensorboard --logdir=models' to view tensorboard at http://localhost:6006/")
- # tb_writer.add_graph(torch.jit.trace(model, img, strict=False), []) # add model graph
- # tb_writer.add_image('test', img[0], dataformats='CWH') # add model to tensorboard
diff --git a/Yolov5-Deepsort/models/yolov5l.yaml b/Yolov5-Deepsort/models/yolov5l.yaml
deleted file mode 100644
index 71ebf86e57918ca222264d47fa6f04205be445a7..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/yolov5l.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.0 # model depth multiple
-width_multiple: 1.0 # layer channel multiple
-
-# anchors
-anchors:
- - [10,13, 16,30, 33,23] # P3/8
- - [30,61, 62,45, 59,119] # P4/16
- - [116,90, 156,198, 373,326] # P5/32
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Focus, [64, 3]], # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
- [-1, 3, C3, [128]],
- [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
- [-1, 9, C3, [256]],
- [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
- [-1, 9, C3, [512]],
- [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
- [-1, 1, SPP, [1024, [5, 9, 13]]],
- [-1, 3, C3, [1024, False]], # 9
- ]
-
-# YOLOv5 head
-head:
- [[-1, 1, Conv, [512, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 6], 1, Concat, [1]], # cat backbone P4
- [-1, 3, C3, [512, False]], # 13
-
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 4], 1, Concat, [1]], # cat backbone P3
- [-1, 3, C3, [256, False]], # 17 (P3/8-small)
-
- [-1, 1, Conv, [256, 3, 2]],
- [[-1, 14], 1, Concat, [1]], # cat head P4
- [-1, 3, C3, [512, False]], # 20 (P4/16-medium)
-
- [-1, 1, Conv, [512, 3, 2]],
- [[-1, 10], 1, Concat, [1]], # cat head P5
- [-1, 3, C3, [1024, False]], # 23 (P5/32-large)
-
- [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/yolov5m.yaml b/Yolov5-Deepsort/models/yolov5m.yaml
deleted file mode 100644
index 3c749c916246815fbfaa3ac96506c85a65466c02..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/yolov5m.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 0.67 # model depth multiple
-width_multiple: 0.75 # layer channel multiple
-
-# anchors
-anchors:
- - [10,13, 16,30, 33,23] # P3/8
- - [30,61, 62,45, 59,119] # P4/16
- - [116,90, 156,198, 373,326] # P5/32
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Focus, [64, 3]], # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
- [-1, 3, C3, [128]],
- [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
- [-1, 9, C3, [256]],
- [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
- [-1, 9, C3, [512]],
- [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
- [-1, 1, SPP, [1024, [5, 9, 13]]],
- [-1, 3, C3, [1024, False]], # 9
- ]
-
-# YOLOv5 head
-head:
- [[-1, 1, Conv, [512, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 6], 1, Concat, [1]], # cat backbone P4
- [-1, 3, C3, [512, False]], # 13
-
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 4], 1, Concat, [1]], # cat backbone P3
- [-1, 3, C3, [256, False]], # 17 (P3/8-small)
-
- [-1, 1, Conv, [256, 3, 2]],
- [[-1, 14], 1, Concat, [1]], # cat head P4
- [-1, 3, C3, [512, False]], # 20 (P4/16-medium)
-
- [-1, 1, Conv, [512, 3, 2]],
- [[-1, 10], 1, Concat, [1]], # cat head P5
- [-1, 3, C3, [1024, False]], # 23 (P5/32-large)
-
- [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/yolov5s.yaml b/Yolov5-Deepsort/models/yolov5s.yaml
deleted file mode 100644
index aca669d60d8b5db54963302b1ae629afe4499565..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/yolov5s.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 0.33 # model depth multiple
-width_multiple: 0.50 # layer channel multiple
-
-# anchors
-anchors:
- - [10,13, 16,30, 33,23] # P3/8
- - [30,61, 62,45, 59,119] # P4/16
- - [116,90, 156,198, 373,326] # P5/32
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Focus, [64, 3]], # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
- [-1, 3, C3, [128]],
- [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
- [-1, 9, C3, [256]],
- [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
- [-1, 9, C3, [512]],
- [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
- [-1, 1, SPP, [1024, [5, 9, 13]]],
- [-1, 3, C3, [1024, False]], # 9
- ]
-
-# YOLOv5 head
-head:
- [[-1, 1, Conv, [512, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 6], 1, Concat, [1]], # cat backbone P4
- [-1, 3, C3, [512, False]], # 13
-
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 4], 1, Concat, [1]], # cat backbone P3
- [-1, 3, C3, [256, False]], # 17 (P3/8-small)
-
- [-1, 1, Conv, [256, 3, 2]],
- [[-1, 14], 1, Concat, [1]], # cat head P4
- [-1, 3, C3, [512, False]], # 20 (P4/16-medium)
-
- [-1, 1, Conv, [512, 3, 2]],
- [[-1, 10], 1, Concat, [1]], # cat head P5
- [-1, 3, C3, [1024, False]], # 23 (P5/32-large)
-
- [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/models/yolov5x.yaml b/Yolov5-Deepsort/models/yolov5x.yaml
deleted file mode 100644
index d3babdf7baf01a95a2a8da760a6db41bb8c7dd79..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/models/yolov5x.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# parameters
-nc: 80 # number of classes
-depth_multiple: 1.33 # model depth multiple
-width_multiple: 1.25 # layer channel multiple
-
-# anchors
-anchors:
- - [10,13, 16,30, 33,23] # P3/8
- - [30,61, 62,45, 59,119] # P4/16
- - [116,90, 156,198, 373,326] # P5/32
-
-# YOLOv5 backbone
-backbone:
- # [from, number, module, args]
- [[-1, 1, Focus, [64, 3]], # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]], # 1-P2/4
- [-1, 3, C3, [128]],
- [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
- [-1, 9, C3, [256]],
- [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
- [-1, 9, C3, [512]],
- [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
- [-1, 1, SPP, [1024, [5, 9, 13]]],
- [-1, 3, C3, [1024, False]], # 9
- ]
-
-# YOLOv5 head
-head:
- [[-1, 1, Conv, [512, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 6], 1, Concat, [1]], # cat backbone P4
- [-1, 3, C3, [512, False]], # 13
-
- [-1, 1, Conv, [256, 1, 1]],
- [-1, 1, nn.Upsample, [None, 2, 'nearest']],
- [[-1, 4], 1, Concat, [1]], # cat backbone P3
- [-1, 3, C3, [256, False]], # 17 (P3/8-small)
-
- [-1, 1, Conv, [256, 3, 2]],
- [[-1, 14], 1, Concat, [1]], # cat head P4
- [-1, 3, C3, [512, False]], # 20 (P4/16-medium)
-
- [-1, 1, Conv, [512, 3, 2]],
- [[-1, 10], 1, Concat, [1]], # cat head P5
- [-1, 3, C3, [1024, False]], # 23 (P5/32-large)
-
- [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
- ]
diff --git a/Yolov5-Deepsort/mot.mp4 b/Yolov5-Deepsort/mot.mp4
deleted file mode 100644
index ad233d76ae04637c5d8950a7e50482f82400168f..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/mot.mp4
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:19075cdf256ef23ce5432e16ab4b6a8c5a75b5d8f0c5548955f6eacf672a06c5
-size 7869562
diff --git a/Yolov5-Deepsort/myresult.txt b/Yolov5-Deepsort/myresult.txt
deleted file mode 100644
index 8535951ffaed1fefe8d6a09be3a3c00d3074f50c..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/myresult.txt
+++ /dev/null
@@ -1,6619 +0,0 @@
-3, 1, 477, 269, 43, 35, 1, 2, 1
-3, 2, 0, 339, 20, 108, 1, 0, 1
-3, 3, 540, 269, 56, 53, 1, 2, 1
-3, 4, 686, 256, 18, 49, 1, 0, 1
-3, 5, 810, 272, 28, 61, 1, 0, 1
-3, 6, 767, 277, 25, 58, 1, 0, 1
-3, 7, 250, 272, 17, 47, 1, 0, 1
-3, 8, 725, 243, 15, 44, 1, 0, 1
-3, 9, 267, 268, 19, 52, 1, 0, 1
-3, 10, 744, 255, 13, 35, 1, 0, 1
-3, 11, 52, 359, 24, 47, 1, 0, 1
-3, 12, 130, 298, 22, 68, 1, 0, 1
-4, 1, 478, 270, 43, 35, 1, 2, 1
-4, 2, 0, 346, 17, 92, 1, 0, 1
-4, 3, 541, 269, 57, 53, 1, 2, 1
-4, 4, 688, 253, 20, 52, 1, 0, 1
-4, 5, 815, 274, 29, 61, 1, 0, 1
-4, 6, 771, 278, 24, 58, 1, 0, 1
-4, 7, 249, 272, 19, 48, 1, 0, 1
-4, 8, 727, 243, 15, 44, 1, 0, 1
-4, 9, 268, 270, 18, 51, 1, 0, 1
-4, 10, 747, 255, 12, 34, 1, 0, 1
-4, 11, 46, 361, 23, 47, 1, 0, 1
-4, 12, 129, 299, 22, 69, 1, 0, 1
-5, 1, 479, 271, 43, 35, 1, 2, 1
-5, 2, 0, 350, 15, 88, 1, 0, 1
-5, 3, 541, 268, 59, 56, 1, 2, 1
-5, 4, 690, 256, 19, 54, 1, 0, 1
-5, 5, 818, 278, 29, 61, 1, 0, 1
-5, 6, 773, 283, 25, 56, 1, 0, 1
-5, 7, 248, 270, 18, 50, 1, 0, 1
-5, 8, 729, 246, 15, 44, 1, 0, 1
-5, 9, 267, 265, 19, 54, 1, 0, 1
-5, 10, 748, 256, 14, 37, 1, 0, 1
-5, 11, 38, 361, 23, 47, 1, 0, 1
-6, 1, 480, 275, 43, 35, 1, 2, 1
-6, 3, 542, 273, 60, 57, 1, 2, 1
-6, 4, 692, 259, 20, 55, 1, 0, 1
-6, 5, 821, 282, 30, 63, 1, 0, 1
-6, 6, 778, 287, 25, 59, 1, 0, 1
-6, 7, 247, 274, 19, 50, 1, 0, 1
-6, 8, 731, 251, 15, 43, 1, 0, 1
-6, 9, 268, 269, 18, 53, 1, 0, 1
-6, 10, 751, 261, 13, 36, 1, 0, 1
-6, 11, 31, 364, 25, 51, 1, 0, 1
-7, 1, 479, 273, 45, 37, 1, 2, 1
-7, 3, 543, 271, 61, 59, 1, 2, 1
-7, 4, 694, 260, 19, 53, 1, 0, 1
-7, 5, 825, 284, 30, 63, 1, 0, 1
-7, 6, 781, 288, 25, 57, 1, 0, 1
-7, 7, 246, 272, 19, 51, 1, 0, 1
-7, 8, 731, 250, 15, 44, 1, 0, 1
-7, 9, 268, 269, 18, 53, 1, 0, 1
-7, 10, 753, 260, 13, 38, 1, 0, 1
-7, 11, 25, 368, 24, 50, 1, 0, 1
-7, 12, 115, 306, 22, 67, 1, 0, 1
-8, 1, 480, 278, 43, 35, 1, 2, 1
-8, 3, 545, 274, 61, 59, 1, 2, 1
-8, 4, 695, 262, 20, 56, 1, 0, 1
-8, 5, 829, 288, 30, 63, 1, 0, 1
-8, 6, 785, 291, 25, 58, 1, 0, 1
-8, 7, 245, 273, 19, 52, 1, 0, 1
-8, 8, 733, 252, 15, 44, 1, 0, 1
-8, 9, 266, 270, 19, 55, 1, 0, 1
-8, 10, 755, 263, 14, 38, 1, 0, 1
-8, 11, 17, 371, 25, 53, 1, 0, 1
-8, 12, 111, 306, 22, 71, 1, 0, 1
-9, 1, 481, 279, 42, 35, 1, 2, 1
-9, 3, 545, 276, 61, 58, 1, 2, 1
-9, 4, 696, 265, 20, 54, 1, 0, 1
-9, 5, 833, 292, 29, 63, 1, 0, 1
-9, 6, 788, 293, 26, 60, 1, 0, 1
-9, 7, 244, 273, 19, 52, 1, 0, 1
-9, 8, 734, 253, 15, 46, 1, 0, 1
-9, 9, 265, 271, 19, 55, 1, 0, 1
-9, 10, 756, 264, 14, 39, 1, 0, 1
-9, 11, 7, 372, 26, 54, 1, 0, 1
-9, 12, 107, 309, 23, 69, 1, 0, 1
-9, 18, 338, 261, 14, 41, 1, 0, 1
-10, 1, 481, 281, 42, 34, 1, 2, 1
-10, 3, 545, 276, 63, 61, 1, 2, 1
-10, 4, 698, 269, 19, 54, 1, 0, 1
-10, 5, 835, 298, 31, 64, 1, 0, 1
-10, 6, 791, 297, 26, 63, 1, 0, 1
-10, 7, 243, 270, 20, 53, 1, 0, 1
-10, 8, 735, 258, 15, 45, 1, 0, 1
-10, 9, 264, 270, 18, 53, 1, 0, 1
-10, 10, 758, 272, 13, 35, 1, 0, 1
-10, 11, 0, 369, 25, 55, 1, 0, 1
-10, 12, 101, 300, 24, 76, 1, 0, 1
-10, 18, 337, 260, 14, 40, 1, 0, 1
-11, 1, 480, 280, 44, 35, 1, 2, 1
-11, 3, 545, 276, 63, 61, 1, 2, 1
-11, 4, 699, 266, 19, 53, 1, 0, 1
-11, 5, 840, 295, 30, 63, 1, 0, 1
-11, 6, 794, 295, 27, 64, 1, 0, 1
-11, 7, 242, 273, 19, 51, 1, 0, 1
-11, 8, 737, 256, 15, 44, 1, 0, 1
-11, 9, 262, 274, 18, 50, 1, 0, 1
-11, 10, 760, 268, 13, 35, 1, 0, 1
-11, 11, 0, 374, 21, 57, 1, 0, 1
-11, 12, 96, 298, 27, 83, 1, 0, 1
-11, 18, 337, 262, 13, 39, 1, 0, 1
-11, 20, 40, 308, 33, 67, 1, 0, 1
-12, 1, 479, 279, 45, 36, 1, 2, 1
-12, 3, 546, 278, 63, 59, 1, 2, 1
-12, 4, 701, 267, 19, 54, 1, 0, 1
-12, 5, 843, 295, 31, 64, 1, 0, 1
-12, 6, 797, 297, 27, 62, 1, 0, 1
-12, 7, 240, 274, 20, 51, 1, 0, 1
-12, 8, 737, 257, 16, 42, 1, 0, 1
-12, 9, 260, 272, 19, 54, 1, 0, 1
-12, 10, 763, 271, 12, 35, 1, 0, 1
-12, 11, 0, 377, 15, 57, 1, 0, 1
-12, 12, 92, 299, 27, 84, 1, 0, 1
-12, 18, 336, 262, 14, 39, 1, 0, 1
-12, 20, 34, 307, 34, 70, 1, 0, 1
-13, 1, 480, 277, 45, 36, 1, 2, 1
-13, 3, 546, 275, 63, 61, 1, 2, 1
-13, 4, 702, 266, 19, 52, 1, 0, 1
-13, 5, 846, 296, 31, 64, 1, 0, 1
-13, 6, 801, 298, 26, 62, 1, 0, 1
-13, 7, 239, 270, 19, 52, 1, 0, 1
-13, 8, 739, 258, 15, 42, 1, 0, 1
-13, 9, 258, 266, 20, 55, 1, 0, 1
-13, 10, 765, 272, 13, 35, 1, 0, 1
-13, 12, 85, 294, 28, 85, 1, 0, 1
-13, 20, 31, 307, 35, 71, 1, 0, 1
-13, 23, 509, 264, 46, 31, 1, 2, 1
-14, 1, 479, 277, 46, 37, 1, 2, 1
-14, 3, 546, 275, 63, 61, 1, 2, 1
-14, 4, 704, 264, 18, 51, 1, 0, 1
-14, 5, 851, 294, 30, 64, 1, 0, 1
-14, 6, 805, 295, 26, 63, 1, 0, 1
-14, 7, 239, 269, 19, 53, 1, 0, 1
-14, 8, 740, 258, 15, 43, 1, 0, 1
-14, 9, 258, 265, 19, 57, 1, 0, 1
-14, 10, 767, 268, 13, 36, 1, 0, 1
-14, 12, 81, 293, 29, 88, 1, 0, 1
-14, 18, 335, 261, 14, 40, 1, 0, 1
-14, 20, 22, 303, 37, 78, 1, 0, 1
-14, 23, 506, 264, 37, 24, 1, 2, 1
-15, 1, 478, 276, 48, 38, 1, 2, 1
-15, 3, 546, 275, 65, 62, 1, 2, 1
-15, 4, 705, 264, 18, 51, 1, 0, 1
-15, 5, 854, 293, 32, 68, 1, 0, 1
-15, 6, 808, 296, 27, 65, 1, 0, 1
-15, 7, 238, 268, 19, 54, 1, 0, 1
-15, 9, 258, 266, 19, 55, 1, 0, 1
-15, 10, 767, 262, 15, 42, 1, 0, 1
-15, 18, 335, 260, 14, 39, 1, 0, 1
-15, 20, 13, 296, 39, 83, 1, 0, 1
-15, 23, 507, 262, 34, 23, 1, 2, 1
-16, 1, 479, 278, 47, 37, 1, 2, 1
-16, 3, 547, 274, 65, 63, 1, 2, 1
-16, 4, 707, 265, 19, 53, 1, 0, 1
-16, 5, 858, 294, 31, 68, 1, 0, 1
-16, 6, 812, 297, 27, 65, 1, 0, 1
-16, 7, 237, 266, 20, 56, 1, 0, 1
-16, 8, 744, 257, 15, 41, 1, 0, 1
-16, 9, 258, 266, 19, 55, 1, 0, 1
-16, 10, 769, 264, 15, 40, 1, 0, 1
-16, 18, 336, 260, 13, 39, 1, 0, 1
-16, 20, 7, 294, 41, 86, 1, 0, 1
-16, 23, 507, 262, 32, 20, 1, 2, 1
-16, 24, 642, 282, 34, 29, 1, 2, 1
-17, 1, 480, 280, 45, 35, 1, 2, 1
-17, 3, 548, 274, 65, 64, 1, 2, 1
-17, 4, 708, 266, 19, 53, 1, 0, 1
-17, 5, 862, 295, 31, 69, 1, 0, 1
-17, 6, 816, 297, 27, 65, 1, 0, 1
-17, 7, 237, 269, 19, 53, 1, 0, 1
-17, 8, 745, 257, 15, 41, 1, 0, 1
-17, 9, 256, 268, 19, 54, 1, 0, 1
-17, 10, 772, 268, 13, 37, 1, 0, 1
-17, 12, 60, 297, 33, 100, 1, 0, 1
-17, 18, 335, 259, 14, 41, 1, 0, 1
-17, 20, 0, 297, 40, 86, 1, 0, 1
-17, 23, 504, 263, 30, 20, 1, 2, 1
-17, 24, 643, 282, 34, 29, 1, 2, 1
-18, 1, 481, 279, 45, 35, 1, 2, 1
-18, 3, 549, 275, 65, 63, 1, 2, 1
-18, 4, 710, 266, 19, 53, 1, 0, 1
-18, 5, 865, 296, 32, 68, 1, 0, 1
-18, 6, 820, 297, 28, 66, 1, 0, 1
-18, 7, 236, 268, 19, 54, 1, 0, 1
-18, 9, 256, 267, 19, 55, 1, 0, 1
-18, 10, 773, 268, 13, 36, 1, 0, 1
-18, 12, 55, 296, 34, 104, 1, 0, 1
-18, 18, 334, 258, 15, 42, 1, 0, 1
-18, 20, 0, 292, 36, 94, 1, 0, 1
-18, 23, 503, 262, 27, 18, 1, 2, 1
-18, 24, 643, 282, 34, 29, 1, 2, 1
-19, 1, 481, 280, 44, 35, 1, 2, 1
-19, 3, 550, 275, 65, 63, 1, 2, 1
-19, 4, 711, 265, 19, 54, 1, 0, 1
-19, 5, 869, 297, 32, 69, 1, 0, 1
-19, 6, 825, 296, 28, 67, 1, 0, 1
-19, 7, 235, 267, 19, 55, 1, 0, 1
-19, 8, 752, 259, 14, 39, 1, 0, 1
-19, 9, 255, 268, 19, 54, 1, 0, 1
-19, 10, 775, 266, 14, 39, 1, 0, 1
-19, 18, 334, 257, 15, 43, 1, 0, 1
-19, 20, 0, 291, 31, 97, 1, 0, 1
-20, 1, 481, 280, 45, 35, 1, 2, 1
-20, 3, 550, 275, 67, 66, 1, 2, 1
-20, 4, 712, 265, 19, 55, 1, 0, 1
-20, 5, 873, 297, 32, 70, 1, 0, 1
-20, 6, 829, 296, 28, 67, 1, 0, 1
-20, 7, 234, 272, 19, 52, 1, 0, 1
-20, 8, 754, 259, 14, 39, 1, 0, 1
-20, 9, 255, 271, 18, 53, 1, 0, 1
-20, 10, 778, 268, 13, 38, 1, 0, 1
-20, 18, 333, 258, 15, 43, 1, 0, 1
-20, 24, 646, 283, 33, 28, 1, 2, 1
-21, 1, 480, 279, 47, 37, 1, 2, 1
-21, 3, 551, 276, 67, 66, 1, 2, 1
-21, 4, 712, 265, 20, 56, 1, 0, 1
-21, 5, 878, 299, 32, 69, 1, 0, 1
-21, 6, 832, 297, 29, 69, 1, 0, 1
-21, 7, 234, 273, 18, 51, 1, 0, 1
-21, 9, 253, 273, 18, 52, 1, 0, 1
-21, 10, 780, 269, 13, 39, 1, 0, 1
-21, 18, 333, 258, 15, 43, 1, 0, 1
-21, 24, 648, 284, 33, 28, 1, 2, 1
-22, 1, 481, 281, 46, 35, 1, 2, 1
-22, 3, 551, 277, 68, 66, 1, 2, 1
-22, 4, 713, 265, 21, 57, 1, 0, 1
-22, 5, 883, 300, 32, 69, 1, 0, 1
-22, 6, 836, 298, 29, 70, 1, 0, 1
-22, 7, 234, 273, 19, 53, 1, 0, 1
-22, 9, 251, 272, 19, 54, 1, 0, 1
-22, 10, 781, 265, 14, 42, 1, 0, 1
-22, 18, 332, 259, 15, 44, 1, 0, 1
-22, 24, 649, 285, 33, 27, 1, 2, 1
-22, 29, 419, 263, 60, 27, 1, 2, 1
-23, 1, 480, 281, 47, 36, 1, 2, 1
-23, 3, 552, 276, 68, 67, 1, 2, 1
-23, 4, 714, 265, 21, 57, 1, 0, 1
-23, 5, 888, 300, 32, 71, 1, 0, 1
-23, 6, 839, 299, 29, 72, 1, 0, 1
-23, 7, 231, 273, 19, 54, 1, 0, 1
-23, 9, 250, 273, 19, 54, 1, 0, 1
-23, 10, 782, 264, 14, 39, 1, 0, 1
-23, 18, 332, 261, 14, 43, 1, 0, 1
-23, 29, 408, 263, 63, 27, 1, 2, 1
-24, 1, 480, 281, 48, 37, 1, 2, 1
-24, 3, 553, 276, 69, 67, 1, 2, 1
-24, 4, 716, 265, 20, 56, 1, 0, 1
-24, 5, 892, 299, 33, 72, 1, 0, 1
-24, 6, 843, 300, 29, 71, 1, 0, 1
-24, 7, 229, 275, 19, 53, 1, 0, 1
-24, 8, 760, 259, 14, 37, 1, 0, 1
-24, 9, 249, 275, 19, 53, 1, 0, 1
-24, 10, 784, 267, 13, 37, 1, 0, 1
-24, 18, 332, 262, 14, 42, 1, 0, 1
-24, 29, 399, 265, 62, 27, 1, 2, 1
-25, 1, 480, 282, 49, 38, 1, 2, 1
-25, 3, 553, 278, 68, 68, 1, 2, 1
-25, 4, 718, 266, 20, 58, 1, 0, 1
-25, 5, 897, 302, 33, 73, 1, 0, 1
-25, 6, 847, 301, 29, 74, 1, 0, 1
-25, 7, 229, 273, 20, 57, 1, 0, 1
-25, 8, 761, 259, 16, 42, 1, 0, 1
-25, 9, 249, 275, 19, 55, 1, 0, 1
-25, 10, 787, 271, 12, 38, 1, 0, 1
-25, 18, 332, 265, 14, 40, 1, 0, 1
-25, 29, 392, 267, 66, 29, 1, 2, 1
-26, 1, 480, 283, 50, 38, 1, 2, 1
-26, 3, 553, 280, 69, 68, 1, 2, 1
-26, 4, 720, 268, 20, 56, 1, 0, 1
-26, 5, 901, 302, 35, 76, 1, 0, 1
-26, 6, 851, 302, 30, 76, 1, 0, 1
-26, 7, 228, 275, 19, 55, 1, 0, 1
-26, 8, 763, 259, 16, 43, 1, 0, 1
-26, 9, 248, 275, 19, 57, 1, 0, 1
-26, 10, 789, 274, 13, 37, 1, 0, 1
-26, 18, 333, 265, 13, 41, 1, 0, 1
-26, 29, 393, 269, 59, 26, 1, 2, 1
-27, 1, 479, 284, 51, 39, 1, 2, 1
-27, 3, 553, 281, 69, 69, 1, 2, 1
-27, 4, 722, 270, 20, 56, 1, 0, 1
-27, 5, 907, 304, 34, 76, 1, 0, 1
-27, 6, 855, 305, 30, 75, 1, 0, 1
-27, 7, 226, 274, 20, 58, 1, 0, 1
-27, 8, 765, 260, 16, 43, 1, 0, 1
-27, 9, 247, 277, 19, 56, 1, 0, 1
-27, 10, 791, 270, 13, 40, 1, 0, 1
-27, 18, 332, 267, 13, 40, 1, 0, 1
-27, 29, 379, 269, 62, 27, 1, 2, 1
-28, 1, 479, 285, 51, 39, 1, 2, 1
-28, 3, 554, 282, 70, 70, 1, 2, 1
-28, 4, 724, 271, 20, 56, 1, 0, 1
-28, 5, 910, 305, 34, 76, 1, 0, 1
-28, 6, 859, 306, 30, 76, 1, 0, 1
-28, 7, 224, 271, 21, 62, 1, 0, 1
-28, 8, 767, 259, 16, 44, 1, 0, 1
-28, 9, 246, 278, 19, 55, 1, 0, 1
-28, 10, 791, 262, 16, 48, 1, 0, 1
-28, 18, 331, 269, 13, 38, 1, 0, 1
-28, 29, 370, 270, 62, 27, 1, 2, 1
-28, 36, 497, 250, 17, 13, 1, 2, 1
-29, 1, 480, 286, 51, 40, 1, 2, 1
-29, 3, 555, 285, 70, 70, 1, 2, 1
-29, 4, 725, 273, 20, 56, 1, 0, 1
-29, 5, 915, 310, 35, 76, 1, 0, 1
-29, 6, 864, 309, 30, 78, 1, 0, 1
-29, 7, 223, 272, 21, 61, 1, 0, 1
-29, 8, 768, 261, 16, 45, 1, 0, 1
-29, 9, 245, 277, 19, 56, 1, 0, 1
-29, 10, 793, 261, 16, 49, 1, 0, 1
-29, 12, 0, 284, 32, 153, 1, 0, 1
-29, 18, 330, 271, 13, 37, 1, 0, 1
-29, 29, 364, 271, 64, 27, 1, 2, 1
-29, 36, 496, 250, 19, 15, 1, 2, 1
-30, 1, 480, 289, 51, 38, 1, 2, 1
-30, 3, 555, 286, 70, 70, 1, 2, 1
-30, 4, 726, 274, 21, 57, 1, 0, 1
-30, 5, 921, 311, 33, 73, 1, 0, 1
-30, 6, 868, 311, 29, 75, 1, 0, 1
-30, 7, 222, 278, 20, 57, 1, 0, 1
-30, 8, 769, 262, 16, 45, 1, 0, 1
-30, 9, 243, 279, 20, 57, 1, 0, 1
-30, 10, 794, 260, 16, 51, 1, 0, 1
-30, 12, 0, 291, 29, 138, 1, 0, 1
-30, 18, 330, 272, 13, 36, 1, 0, 1
-30, 29, 371, 272, 59, 26, 1, 2, 1
-30, 36, 495, 250, 21, 17, 1, 2, 1
-31, 1, 481, 292, 51, 39, 1, 2, 1
-31, 3, 556, 288, 70, 71, 1, 2, 1
-31, 4, 727, 276, 21, 58, 1, 0, 1
-31, 5, 925, 312, 34, 73, 1, 0, 1
-31, 6, 873, 313, 30, 75, 1, 0, 1
-31, 7, 220, 284, 21, 58, 1, 0, 1
-31, 8, 771, 264, 17, 46, 1, 0, 1
-31, 9, 243, 285, 20, 56, 1, 0, 1
-31, 10, 796, 262, 17, 52, 1, 0, 1
-31, 12, 0, 291, 24, 141, 1, 0, 1
-31, 18, 330, 277, 13, 40, 1, 0, 1
-31, 29, 366, 273, 59, 25, 1, 2, 1
-31, 36, 494, 250, 23, 18, 1, 2, 1
-32, 1, 481, 294, 51, 38, 1, 2, 1
-32, 3, 556, 288, 71, 71, 1, 2, 1
-32, 4, 728, 276, 22, 61, 1, 0, 1
-32, 5, 928, 316, 31, 75, 1, 0, 1
-32, 6, 878, 313, 29, 75, 1, 0, 1
-32, 7, 220, 285, 19, 57, 1, 0, 1
-32, 8, 772, 265, 17, 45, 1, 0, 1
-32, 9, 242, 285, 20, 56, 1, 0, 1
-32, 10, 800, 275, 14, 42, 1, 0, 1
-32, 18, 328, 277, 14, 40, 1, 0, 1
-33, 1, 481, 290, 51, 38, 1, 2, 1
-33, 3, 557, 286, 71, 71, 1, 2, 1
-33, 4, 730, 273, 23, 63, 1, 0, 1
-33, 5, 930, 312, 29, 77, 1, 0, 1
-33, 6, 882, 311, 30, 76, 1, 0, 1
-33, 7, 218, 281, 20, 57, 1, 0, 1
-33, 8, 775, 261, 17, 46, 1, 0, 1
-33, 9, 240, 280, 21, 59, 1, 0, 1
-33, 10, 802, 266, 15, 48, 1, 0, 1
-33, 18, 326, 275, 14, 39, 1, 0, 1
-33, 36, 496, 249, 20, 16, 1, 2, 1
-34, 1, 481, 289, 52, 39, 1, 2, 1
-34, 3, 557, 285, 72, 73, 1, 2, 1
-34, 4, 732, 271, 23, 65, 1, 0, 1
-34, 5, 935, 313, 24, 75, 1, 0, 1
-34, 6, 888, 311, 30, 76, 1, 0, 1
-34, 7, 217, 283, 19, 56, 1, 0, 1
-34, 8, 777, 261, 17, 46, 1, 0, 1
-34, 9, 239, 280, 21, 59, 1, 0, 1
-34, 10, 802, 262, 16, 50, 1, 0, 1
-34, 18, 324, 275, 14, 40, 1, 0, 1
-34, 36, 497, 250, 19, 16, 1, 2, 1
-35, 1, 481, 287, 53, 40, 1, 2, 1
-35, 3, 557, 283, 74, 74, 1, 2, 1
-35, 4, 734, 271, 22, 63, 1, 0, 1
-35, 5, 940, 315, 19, 58, 1, 0, 1
-35, 6, 892, 310, 31, 78, 1, 0, 1
-35, 7, 216, 277, 20, 58, 1, 0, 1
-35, 8, 780, 259, 16, 46, 1, 0, 1
-35, 9, 237, 275, 22, 61, 1, 0, 1
-35, 10, 805, 266, 14, 45, 1, 0, 1
-35, 18, 323, 271, 15, 41, 1, 0, 1
-35, 36, 496, 250, 21, 17, 1, 2, 1
-36, 1, 481, 285, 54, 41, 1, 2, 1
-36, 3, 558, 282, 74, 75, 1, 2, 1
-36, 4, 737, 270, 21, 61, 1, 0, 1
-36, 5, 945, 316, 14, 57, 1, 0, 1
-36, 6, 897, 309, 32, 81, 1, 0, 1
-36, 7, 215, 276, 20, 58, 1, 0, 1
-36, 8, 782, 257, 17, 47, 1, 0, 1
-36, 9, 235, 272, 22, 63, 1, 0, 1
-36, 10, 809, 270, 12, 39, 1, 0, 1
-36, 18, 322, 269, 16, 42, 1, 0, 1
-36, 41, 307, 272, 15, 37, 1, 0, 1
-37, 1, 480, 284, 55, 41, 1, 2, 1
-37, 3, 559, 281, 74, 75, 1, 2, 1
-37, 4, 739, 269, 21, 62, 1, 0, 1
-37, 6, 901, 309, 34, 84, 1, 0, 1
-37, 7, 215, 276, 19, 55, 1, 0, 1
-37, 8, 785, 257, 17, 46, 1, 0, 1
-37, 9, 234, 270, 22, 63, 1, 0, 1
-37, 10, 812, 273, 11, 37, 1, 0, 1
-37, 18, 321, 268, 16, 41, 1, 0, 1
-37, 41, 307, 271, 15, 37, 1, 0, 1
-38, 1, 481, 283, 54, 40, 1, 2, 1
-38, 3, 559, 279, 75, 76, 1, 2, 1
-38, 4, 741, 268, 21, 61, 1, 0, 1
-38, 6, 907, 309, 34, 85, 1, 0, 1
-38, 7, 214, 276, 18, 55, 1, 0, 1
-38, 8, 786, 253, 17, 47, 1, 0, 1
-38, 9, 234, 270, 21, 63, 1, 0, 1
-38, 10, 813, 272, 12, 38, 1, 0, 1
-38, 18, 321, 269, 15, 39, 1, 0, 1
-38, 41, 307, 272, 15, 36, 1, 0, 1
-39, 1, 480, 282, 55, 40, 1, 2, 1
-39, 3, 560, 279, 75, 77, 1, 2, 1
-39, 4, 743, 269, 21, 61, 1, 0, 1
-39, 6, 912, 312, 35, 85, 1, 0, 1
-39, 7, 213, 273, 19, 55, 1, 0, 1
-39, 8, 789, 251, 18, 51, 1, 0, 1
-39, 9, 232, 266, 22, 64, 1, 0, 1
-39, 10, 815, 274, 12, 36, 1, 0, 1
-39, 18, 323, 266, 16, 40, 1, 0, 1
-39, 41, 306, 267, 16, 39, 1, 0, 1
-39, 46, 646, 263, 47, 21, 1, 2, 1
-39, 47, 500, 242, 17, 15, 1, 2, 1
-40, 1, 480, 281, 55, 41, 1, 2, 1
-40, 3, 562, 278, 74, 77, 1, 2, 1
-40, 4, 745, 268, 21, 61, 1, 0, 1
-40, 6, 917, 313, 36, 87, 1, 0, 1
-40, 7, 211, 272, 19, 57, 1, 0, 1
-40, 8, 791, 249, 19, 51, 1, 0, 1
-40, 9, 232, 265, 21, 64, 1, 0, 1
-40, 10, 817, 272, 11, 36, 1, 0, 1
-40, 18, 321, 263, 17, 43, 1, 0, 1
-40, 24, 665, 281, 43, 37, 1, 0, 1
-40, 41, 305, 265, 17, 41, 1, 0, 1
-40, 46, 646, 262, 47, 21, 1, 2, 1
-40, 47, 500, 242, 16, 15, 1, 2, 1
-40, 48, 289, 265, 14, 40, 1, 0, 1
-41, 1, 480, 282, 55, 41, 1, 2, 1
-41, 3, 563, 280, 74, 76, 1, 2, 1
-41, 4, 747, 270, 22, 61, 1, 0, 1
-41, 6, 923, 315, 36, 88, 1, 0, 1
-41, 7, 210, 270, 20, 58, 1, 0, 1
-41, 8, 794, 250, 18, 51, 1, 0, 1
-41, 9, 231, 265, 22, 63, 1, 0, 1
-41, 10, 819, 272, 11, 35, 1, 0, 1
-41, 18, 321, 260, 18, 46, 1, 0, 1
-41, 24, 666, 280, 44, 39, 1, 0, 1
-41, 41, 305, 264, 17, 42, 1, 0, 1
-41, 46, 641, 262, 51, 22, 1, 2, 1
-41, 47, 500, 243, 16, 14, 1, 2, 1
-41, 48, 288, 262, 15, 43, 1, 0, 1
-42, 1, 481, 282, 55, 42, 1, 2, 1
-42, 3, 564, 281, 75, 77, 1, 2, 1
-42, 4, 749, 270, 22, 63, 1, 0, 1
-42, 6, 927, 317, 32, 88, 1, 0, 1
-42, 7, 209, 269, 21, 60, 1, 0, 1
-42, 8, 795, 251, 19, 51, 1, 0, 1
-42, 9, 231, 266, 21, 63, 1, 0, 1
-42, 10, 822, 274, 12, 37, 1, 0, 1
-42, 18, 322, 259, 18, 48, 1, 0, 1
-42, 41, 304, 264, 17, 43, 1, 0, 1
-42, 46, 640, 263, 48, 21, 1, 2, 1
-42, 47, 500, 244, 15, 13, 1, 2, 1
-42, 48, 289, 262, 15, 44, 1, 0, 1
-42, 49, 253, 262, 16, 43, 1, 0, 1
-43, 1, 481, 284, 55, 41, 1, 2, 1
-43, 3, 564, 281, 77, 79, 1, 2, 1
-43, 4, 752, 272, 22, 64, 1, 0, 1
-43, 6, 931, 319, 28, 87, 1, 0, 1
-43, 7, 207, 267, 23, 65, 1, 0, 1
-43, 8, 798, 253, 19, 51, 1, 0, 1
-43, 9, 229, 266, 22, 64, 1, 0, 1
-43, 10, 825, 276, 12, 35, 1, 0, 1
-43, 18, 322, 261, 17, 46, 1, 0, 1
-43, 41, 304, 263, 17, 44, 1, 0, 1
-43, 46, 638, 262, 47, 21, 1, 2, 1
-43, 47, 500, 245, 16, 14, 1, 2, 1
-43, 48, 288, 263, 15, 44, 1, 0, 1
-43, 49, 252, 262, 16, 43, 1, 0, 1
-43, 50, 783, 256, 11, 28, 1, 0, 1
-44, 1, 481, 285, 55, 42, 1, 2, 1
-44, 3, 565, 283, 76, 79, 1, 2, 1
-44, 4, 754, 273, 22, 64, 1, 0, 1
-44, 6, 935, 319, 24, 88, 1, 0, 1
-44, 7, 206, 267, 23, 67, 1, 0, 1
-44, 8, 800, 254, 19, 52, 1, 0, 1
-44, 9, 226, 266, 23, 65, 1, 0, 1
-44, 10, 828, 276, 11, 35, 1, 0, 1
-44, 18, 321, 262, 17, 46, 1, 0, 1
-44, 47, 500, 246, 16, 13, 1, 2, 1
-44, 48, 288, 262, 15, 46, 1, 0, 1
-44, 49, 251, 263, 16, 42, 1, 0, 1
-44, 50, 783, 256, 11, 29, 1, 0, 1
-45, 1, 481, 286, 55, 41, 1, 2, 1
-45, 3, 566, 284, 77, 81, 1, 2, 1
-45, 4, 756, 275, 23, 65, 1, 0, 1
-45, 6, 939, 328, 20, 84, 1, 0, 1
-45, 7, 206, 267, 23, 66, 1, 0, 1
-45, 8, 802, 256, 19, 52, 1, 0, 1
-45, 9, 228, 267, 22, 65, 1, 0, 1
-45, 18, 322, 262, 16, 44, 1, 0, 1
-45, 47, 501, 246, 16, 14, 1, 2, 1
-45, 49, 251, 264, 15, 41, 1, 0, 1
-45, 50, 784, 257, 11, 29, 1, 0, 1
-46, 1, 481, 286, 56, 42, 1, 2, 1
-46, 3, 566, 283, 79, 83, 1, 2, 1
-46, 4, 759, 275, 23, 67, 1, 0, 1
-46, 6, 943, 329, 16, 85, 1, 0, 1
-46, 7, 206, 264, 24, 71, 1, 0, 1
-46, 8, 803, 256, 20, 52, 1, 0, 1
-46, 9, 225, 263, 24, 70, 1, 0, 1
-46, 18, 322, 262, 16, 43, 1, 0, 1
-46, 47, 501, 245, 17, 15, 1, 2, 1
-46, 49, 248, 264, 16, 42, 1, 0, 1
-46, 50, 784, 256, 11, 30, 1, 0, 1
-47, 1, 481, 286, 57, 43, 1, 2, 1
-47, 3, 567, 284, 79, 83, 1, 2, 1
-47, 4, 761, 276, 23, 68, 1, 0, 1
-47, 7, 205, 264, 24, 71, 1, 0, 1
-47, 8, 807, 259, 18, 49, 1, 0, 1
-47, 9, 225, 264, 23, 69, 1, 0, 1
-47, 18, 321, 261, 16, 44, 1, 0, 1
-47, 47, 501, 246, 17, 14, 1, 2, 1
-47, 49, 247, 265, 16, 43, 1, 0, 1
-47, 50, 784, 256, 12, 31, 1, 0, 1
-48, 1, 481, 287, 57, 43, 1, 2, 1
-48, 3, 567, 283, 81, 84, 1, 2, 1
-48, 4, 763, 278, 23, 67, 1, 0, 1
-48, 7, 202, 266, 24, 69, 1, 0, 1
-48, 8, 810, 262, 17, 47, 1, 0, 1
-48, 9, 224, 267, 23, 68, 1, 0, 1
-48, 18, 320, 262, 16, 44, 1, 0, 1
-48, 49, 245, 264, 18, 48, 1, 0, 1
-48, 50, 788, 257, 11, 30, 1, 0, 1
-49, 1, 480, 289, 58, 44, 1, 2, 1
-49, 3, 567, 285, 83, 87, 1, 2, 1
-49, 4, 766, 279, 23, 68, 1, 0, 1
-49, 7, 201, 268, 23, 67, 1, 0, 1
-49, 8, 812, 265, 17, 45, 1, 0, 1
-49, 9, 223, 271, 22, 65, 1, 0, 1
-49, 18, 319, 266, 16, 42, 1, 0, 1
-49, 49, 243, 265, 18, 48, 1, 0, 1
-49, 50, 789, 258, 11, 30, 1, 0, 1
-50, 1, 480, 289, 58, 44, 1, 2, 1
-50, 3, 568, 284, 84, 88, 1, 2, 1
-50, 4, 768, 278, 23, 69, 1, 0, 1
-50, 7, 200, 268, 23, 67, 1, 0, 1
-50, 8, 814, 266, 17, 44, 1, 0, 1
-50, 9, 222, 271, 21, 65, 1, 0, 1
-50, 10, 840, 277, 11, 35, 1, 0, 1
-50, 18, 319, 266, 15, 43, 1, 0, 1
-50, 48, 281, 267, 14, 43, 1, 0, 1
-50, 49, 242, 264, 18, 50, 1, 0, 1
-51, 1, 481, 289, 57, 44, 1, 2, 1
-51, 3, 569, 284, 84, 90, 1, 2, 1
-51, 4, 770, 279, 24, 70, 1, 0, 1
-51, 7, 199, 270, 23, 66, 1, 0, 1
-51, 8, 817, 266, 16, 45, 1, 0, 1
-51, 9, 221, 275, 21, 62, 1, 0, 1
-51, 10, 842, 277, 11, 35, 1, 0, 1
-51, 18, 318, 267, 16, 43, 1, 0, 1
-51, 41, 298, 274, 15, 38, 1, 0, 1
-51, 48, 280, 267, 15, 45, 1, 0, 1
-51, 49, 241, 264, 18, 49, 1, 0, 1
-51, 55, 408, 256, 13, 28, 1, 0, 1
-51, 56, 171, 277, 16, 55, 1, 0, 1
-52, 1, 481, 290, 57, 43, 1, 2, 1
-52, 3, 569, 285, 84, 91, 1, 2, 1
-52, 4, 772, 278, 25, 72, 1, 0, 1
-52, 7, 197, 271, 22, 65, 1, 0, 1
-52, 8, 819, 265, 17, 46, 1, 0, 1
-52, 9, 219, 278, 21, 60, 1, 0, 1
-52, 18, 317, 267, 17, 44, 1, 0, 1
-52, 41, 297, 274, 16, 38, 1, 0, 1
-52, 48, 279, 267, 15, 45, 1, 0, 1
-52, 49, 240, 265, 17, 46, 1, 0, 1
-52, 50, 800, 257, 13, 32, 1, 0, 1
-52, 55, 408, 256, 13, 28, 1, 0, 1
-52, 56, 169, 278, 16, 56, 1, 0, 1
-53, 1, 482, 290, 57, 44, 1, 2, 1
-53, 3, 569, 285, 85, 92, 1, 2, 1
-53, 4, 775, 279, 25, 73, 1, 0, 1
-53, 7, 196, 272, 23, 66, 1, 0, 1
-53, 8, 821, 267, 16, 43, 1, 0, 1
-53, 9, 218, 278, 21, 61, 1, 0, 1
-53, 10, 847, 278, 12, 36, 1, 0, 1
-53, 18, 316, 268, 17, 44, 1, 0, 1
-53, 41, 296, 274, 16, 41, 1, 0, 1
-53, 48, 279, 269, 15, 44, 1, 0, 1
-53, 49, 238, 266, 17, 46, 1, 0, 1
-53, 50, 802, 257, 13, 32, 1, 0, 1
-53, 55, 408, 257, 13, 27, 1, 0, 1
-53, 56, 167, 278, 16, 56, 1, 0, 1
-53, 57, 378, 258, 9, 27, 1, 0, 1
-54, 1, 481, 291, 58, 44, 1, 2, 1
-54, 3, 571, 288, 84, 91, 1, 2, 1
-54, 4, 777, 279, 25, 74, 1, 0, 1
-54, 7, 194, 271, 24, 68, 1, 0, 1
-54, 8, 824, 268, 15, 41, 1, 0, 1
-54, 9, 217, 279, 21, 61, 1, 0, 1
-54, 10, 849, 279, 12, 35, 1, 0, 1
-54, 18, 316, 268, 17, 45, 1, 0, 1
-54, 41, 295, 274, 16, 41, 1, 0, 1
-54, 48, 277, 269, 15, 45, 1, 0, 1
-54, 49, 237, 266, 16, 44, 1, 0, 1
-54, 50, 803, 258, 12, 31, 1, 0, 1
-54, 55, 408, 257, 13, 27, 1, 0, 1
-54, 56, 165, 278, 17, 57, 1, 0, 1
-54, 57, 378, 258, 9, 27, 1, 0, 1
-55, 1, 481, 290, 58, 45, 1, 2, 1
-55, 3, 572, 288, 84, 91, 1, 2, 1
-55, 4, 779, 279, 25, 74, 1, 0, 1
-55, 7, 193, 271, 23, 69, 1, 0, 1
-55, 8, 825, 267, 16, 43, 1, 0, 1
-55, 9, 216, 277, 21, 62, 1, 0, 1
-55, 10, 851, 279, 12, 35, 1, 0, 1
-55, 18, 315, 269, 17, 44, 1, 0, 1
-55, 41, 296, 275, 16, 39, 1, 0, 1
-55, 48, 276, 270, 15, 45, 1, 0, 1
-55, 49, 236, 268, 17, 44, 1, 0, 1
-55, 50, 805, 258, 12, 32, 1, 0, 1
-55, 55, 408, 258, 13, 26, 1, 0, 1
-55, 56, 163, 278, 17, 58, 1, 0, 1
-55, 57, 378, 257, 9, 29, 1, 0, 1
-56, 1, 481, 291, 58, 45, 1, 2, 1
-56, 3, 572, 288, 85, 93, 1, 2, 1
-56, 4, 781, 280, 25, 74, 1, 0, 1
-56, 7, 190, 273, 23, 65, 1, 0, 1
-56, 8, 828, 267, 16, 44, 1, 0, 1
-56, 9, 214, 278, 22, 62, 1, 0, 1
-56, 18, 314, 269, 17, 44, 1, 0, 1
-56, 41, 295, 275, 16, 40, 1, 0, 1
-56, 48, 277, 272, 14, 44, 1, 0, 1
-56, 49, 235, 270, 17, 43, 1, 0, 1
-56, 55, 408, 258, 13, 27, 1, 0, 1
-56, 56, 162, 278, 17, 59, 1, 0, 1
-56, 57, 377, 256, 10, 29, 1, 0, 1
-56, 61, 573, 269, 48, 28, 1, 2, 1
-57, 1, 480, 290, 59, 46, 1, 2, 1
-57, 3, 573, 289, 85, 92, 1, 2, 1
-57, 4, 782, 277, 27, 77, 1, 0, 1
-57, 7, 189, 273, 23, 67, 1, 0, 1
-57, 8, 829, 264, 18, 47, 1, 0, 1
-57, 9, 212, 275, 23, 65, 1, 0, 1
-57, 18, 314, 269, 17, 44, 1, 0, 1
-57, 48, 276, 271, 15, 45, 1, 0, 1
-57, 49, 232, 268, 17, 46, 1, 0, 1
-57, 55, 408, 256, 13, 27, 1, 0, 1
-57, 56, 160, 278, 18, 60, 1, 0, 1
-57, 57, 377, 256, 9, 29, 1, 0, 1
-57, 61, 569, 266, 54, 31, 1, 2, 1
-58, 1, 479, 289, 61, 46, 1, 2, 1
-58, 3, 573, 288, 85, 92, 1, 2, 1
-58, 4, 785, 276, 27, 78, 1, 0, 1
-58, 7, 187, 274, 23, 66, 1, 0, 1
-58, 8, 830, 261, 18, 51, 1, 0, 1
-58, 9, 210, 270, 24, 71, 1, 0, 1
-58, 18, 313, 267, 17, 46, 1, 0, 1
-58, 48, 275, 269, 14, 45, 1, 0, 1
-58, 49, 229, 265, 18, 50, 1, 0, 1
-58, 55, 408, 256, 13, 26, 1, 0, 1
-58, 56, 157, 277, 18, 60, 1, 0, 1
-58, 61, 566, 266, 56, 31, 1, 2, 1
-59, 1, 478, 288, 61, 47, 1, 2, 1
-59, 3, 574, 287, 86, 94, 1, 2, 1
-59, 4, 788, 277, 26, 77, 1, 0, 1
-59, 7, 185, 273, 23, 66, 1, 0, 1
-59, 8, 831, 259, 20, 52, 1, 0, 1
-59, 9, 207, 267, 25, 73, 1, 0, 1
-59, 18, 313, 265, 17, 47, 1, 0, 1
-59, 41, 288, 272, 16, 40, 1, 0, 1
-59, 48, 274, 269, 15, 44, 1, 0, 1
-59, 49, 226, 265, 19, 50, 1, 0, 1
-59, 55, 408, 255, 13, 26, 1, 0, 1
-59, 56, 154, 276, 19, 62, 1, 0, 1
-59, 57, 376, 256, 11, 31, 1, 0, 1
-59, 61, 563, 265, 55, 30, 1, 2, 1
-60, 1, 478, 287, 61, 47, 1, 2, 1
-60, 3, 574, 287, 87, 94, 1, 2, 1
-60, 4, 790, 278, 27, 77, 1, 0, 1
-60, 7, 182, 273, 23, 67, 1, 0, 1
-60, 8, 833, 258, 20, 54, 1, 0, 1
-60, 9, 207, 270, 24, 70, 1, 0, 1
-60, 18, 312, 265, 17, 46, 1, 0, 1
-60, 41, 287, 271, 16, 41, 1, 0, 1
-60, 48, 272, 268, 15, 45, 1, 0, 1
-60, 49, 225, 265, 19, 50, 1, 0, 1
-60, 55, 408, 255, 13, 26, 1, 0, 1
-60, 56, 153, 276, 19, 60, 1, 0, 1
-60, 57, 375, 255, 11, 33, 1, 0, 1
-60, 61, 557, 264, 57, 31, 1, 2, 1
-61, 1, 478, 287, 62, 48, 1, 2, 1
-61, 3, 576, 287, 86, 93, 1, 2, 1
-61, 4, 792, 277, 26, 77, 1, 0, 1
-61, 7, 181, 275, 22, 64, 1, 0, 1
-61, 8, 833, 256, 21, 55, 1, 0, 1
-61, 9, 206, 271, 23, 69, 1, 0, 1
-61, 18, 312, 266, 16, 45, 1, 0, 1
-61, 41, 284, 272, 17, 42, 1, 0, 1
-61, 47, 503, 240, 19, 17, 1, 2, 1
-61, 48, 271, 268, 16, 46, 1, 0, 1
-61, 55, 408, 254, 12, 26, 1, 0, 1
-61, 56, 151, 277, 20, 59, 1, 0, 1
-61, 57, 373, 253, 12, 35, 1, 0, 1
-61, 61, 551, 263, 60, 31, 1, 2, 1
-62, 1, 478, 287, 61, 47, 1, 2, 1
-62, 3, 576, 287, 86, 94, 1, 2, 1
-62, 4, 794, 278, 26, 75, 1, 0, 1
-62, 7, 180, 273, 21, 63, 1, 0, 1
-62, 8, 834, 256, 21, 55, 1, 0, 1
-62, 9, 205, 270, 23, 69, 1, 0, 1
-62, 18, 311, 265, 16, 46, 1, 0, 1
-62, 41, 282, 272, 17, 43, 1, 0, 1
-62, 47, 503, 240, 20, 17, 1, 2, 1
-62, 55, 407, 254, 13, 26, 1, 0, 1
-62, 56, 149, 274, 20, 61, 1, 0, 1
-62, 57, 373, 252, 12, 37, 1, 0, 1
-62, 61, 546, 263, 63, 31, 1, 2, 1
-63, 1, 477, 287, 64, 49, 1, 2, 1
-63, 3, 577, 287, 88, 94, 1, 2, 1
-63, 4, 798, 274, 26, 75, 1, 0, 1
-63, 7, 177, 276, 23, 66, 1, 0, 1
-63, 8, 838, 253, 20, 52, 1, 0, 1
-63, 9, 205, 273, 24, 71, 1, 0, 1
-63, 41, 281, 273, 19, 47, 1, 0, 1
-63, 48, 265, 271, 15, 44, 1, 0, 1
-63, 55, 406, 256, 13, 28, 1, 0, 1
-63, 56, 147, 280, 21, 61, 1, 0, 1
-63, 57, 372, 251, 12, 39, 1, 0, 1
-63, 61, 544, 262, 64, 32, 1, 2, 1
-64, 1, 477, 287, 64, 49, 1, 2, 1
-64, 3, 576, 287, 90, 97, 1, 2, 1
-64, 4, 800, 279, 27, 76, 1, 0, 1
-64, 7, 176, 273, 22, 65, 1, 0, 1
-64, 8, 842, 260, 19, 49, 1, 0, 1
-64, 9, 204, 271, 23, 69, 1, 0, 1
-64, 18, 309, 265, 16, 46, 1, 0, 1
-64, 41, 281, 269, 19, 48, 1, 0, 1
-64, 48, 264, 266, 15, 46, 1, 0, 1
-64, 49, 235, 274, 14, 37, 1, 0, 1
-64, 55, 406, 256, 13, 28, 1, 0, 1
-64, 56, 146, 276, 20, 60, 1, 0, 1
-64, 57, 371, 251, 13, 39, 1, 0, 1
-65, 1, 477, 288, 63, 49, 1, 2, 1
-65, 3, 576, 287, 90, 98, 1, 2, 1
-65, 4, 803, 280, 26, 74, 1, 0, 1
-65, 7, 173, 274, 23, 66, 1, 0, 1
-65, 8, 844, 261, 18, 47, 1, 0, 1
-65, 9, 201, 274, 23, 66, 1, 0, 1
-65, 18, 308, 264, 16, 47, 1, 0, 1
-65, 41, 282, 272, 18, 46, 1, 0, 1
-65, 47, 502, 240, 21, 18, 1, 2, 1
-65, 48, 263, 267, 15, 46, 1, 0, 1
-65, 49, 235, 277, 13, 34, 1, 0, 1
-65, 55, 405, 256, 12, 27, 1, 0, 1
-65, 56, 143, 278, 20, 59, 1, 0, 1
-65, 57, 371, 253, 10, 33, 1, 0, 1
-66, 1, 477, 289, 64, 49, 1, 2, 1
-66, 3, 576, 287, 92, 99, 1, 2, 1
-66, 4, 806, 280, 26, 74, 1, 0, 1
-66, 7, 172, 276, 23, 68, 1, 0, 1
-66, 8, 846, 259, 18, 47, 1, 0, 1
-66, 9, 200, 277, 23, 66, 1, 0, 1
-66, 41, 280, 275, 19, 46, 1, 0, 1
-66, 47, 502, 239, 21, 19, 1, 2, 1
-66, 48, 262, 268, 16, 50, 1, 0, 1
-66, 49, 234, 280, 13, 34, 1, 0, 1
-66, 50, 831, 250, 11, 27, 1, 0, 1
-66, 55, 404, 256, 13, 27, 1, 0, 1
-66, 56, 142, 280, 20, 60, 1, 0, 1
-66, 57, 370, 254, 11, 32, 1, 0, 1
-66, 61, 531, 261, 69, 34, 1, 2, 1
-67, 1, 476, 289, 64, 50, 1, 2, 1
-67, 3, 576, 288, 92, 101, 1, 2, 1
-67, 4, 807, 284, 26, 74, 1, 0, 1
-67, 7, 170, 275, 23, 66, 1, 0, 1
-67, 8, 849, 265, 17, 46, 1, 0, 1
-67, 9, 198, 277, 22, 63, 1, 0, 1
-67, 18, 299, 263, 18, 52, 1, 0, 1
-67, 41, 276, 273, 19, 46, 1, 0, 1
-67, 47, 502, 240, 22, 19, 1, 2, 1
-67, 48, 261, 268, 16, 49, 1, 0, 1
-67, 49, 231, 277, 13, 34, 1, 0, 1
-67, 50, 833, 250, 11, 27, 1, 0, 1
-67, 56, 140, 274, 21, 62, 1, 0, 1
-67, 57, 369, 253, 11, 34, 1, 0, 1
-67, 61, 527, 262, 67, 33, 1, 2, 1
-68, 1, 476, 289, 64, 51, 1, 2, 1
-68, 3, 576, 288, 93, 101, 1, 2, 1
-68, 4, 808, 283, 27, 76, 1, 0, 1
-68, 7, 168, 276, 23, 66, 1, 0, 1
-68, 8, 850, 264, 17, 45, 1, 0, 1
-68, 9, 196, 280, 22, 61, 1, 0, 1
-68, 18, 298, 266, 18, 52, 1, 0, 1
-68, 41, 273, 274, 20, 47, 1, 0, 1
-68, 47, 501, 240, 22, 19, 1, 2, 1
-68, 48, 259, 269, 17, 51, 1, 0, 1
-68, 49, 228, 278, 14, 36, 1, 0, 1
-68, 50, 831, 251, 12, 28, 1, 0, 1
-68, 56, 139, 278, 21, 60, 1, 0, 1
-68, 57, 369, 252, 11, 35, 1, 0, 1
-68, 61, 523, 261, 69, 34, 1, 2, 1
-69, 1, 474, 291, 64, 50, 1, 2, 1
-69, 3, 575, 290, 94, 103, 1, 2, 1
-69, 4, 810, 286, 28, 77, 1, 0, 1
-69, 7, 167, 274, 24, 68, 1, 0, 1
-69, 8, 852, 266, 17, 46, 1, 0, 1
-69, 9, 193, 278, 22, 63, 1, 0, 1
-69, 18, 298, 266, 18, 52, 1, 0, 1
-69, 41, 272, 273, 19, 48, 1, 0, 1
-69, 47, 501, 242, 20, 17, 1, 2, 1
-69, 48, 256, 268, 16, 48, 1, 0, 1
-69, 49, 225, 277, 14, 36, 1, 0, 1
-69, 50, 830, 254, 13, 29, 1, 0, 1
-69, 56, 137, 275, 22, 63, 1, 0, 1
-69, 57, 367, 253, 11, 33, 1, 0, 1
-69, 61, 520, 262, 67, 32, 1, 2, 1
-70, 1, 473, 291, 64, 51, 1, 2, 1
-70, 3, 574, 289, 96, 105, 1, 2, 1
-70, 4, 812, 286, 28, 77, 1, 0, 1
-70, 7, 164, 274, 24, 69, 1, 0, 1
-70, 8, 852, 266, 18, 46, 1, 0, 1
-70, 9, 190, 276, 23, 66, 1, 0, 1
-70, 18, 297, 268, 18, 50, 1, 0, 1
-70, 41, 270, 275, 19, 46, 1, 0, 1
-70, 47, 500, 242, 20, 17, 1, 2, 1
-70, 48, 253, 270, 17, 48, 1, 0, 1
-70, 49, 223, 276, 14, 36, 1, 0, 1
-70, 50, 832, 254, 12, 29, 1, 0, 1
-70, 56, 134, 274, 23, 66, 1, 0, 1
-70, 57, 365, 253, 12, 34, 1, 0, 1
-70, 61, 517, 262, 64, 31, 1, 2, 1
-71, 1, 472, 292, 64, 50, 1, 2, 1
-71, 3, 574, 291, 96, 106, 1, 2, 1
-71, 4, 814, 286, 29, 79, 1, 0, 1
-71, 7, 162, 273, 25, 70, 1, 0, 1
-71, 8, 852, 268, 18, 46, 1, 0, 1
-71, 9, 188, 275, 23, 66, 1, 0, 1
-71, 18, 296, 268, 18, 51, 1, 0, 1
-71, 41, 268, 275, 18, 47, 1, 0, 1
-71, 47, 499, 243, 18, 15, 1, 2, 1
-71, 48, 252, 269, 17, 51, 1, 0, 1
-71, 49, 220, 276, 13, 36, 1, 0, 1
-71, 56, 131, 273, 22, 64, 1, 0, 1
-71, 57, 365, 252, 11, 35, 1, 0, 1
-71, 61, 515, 262, 63, 31, 1, 2, 1
-71, 82, 558, 243, 17, 13, 1, 2, 1
-72, 1, 471, 291, 64, 51, 1, 2, 1
-72, 3, 573, 291, 98, 107, 1, 2, 1
-72, 4, 817, 286, 29, 80, 1, 0, 1
-72, 7, 160, 274, 24, 70, 1, 0, 1
-72, 8, 853, 268, 18, 46, 1, 0, 1
-72, 9, 186, 275, 23, 68, 1, 0, 1
-72, 41, 266, 277, 18, 46, 1, 0, 1
-72, 47, 498, 243, 18, 15, 1, 2, 1
-72, 48, 250, 270, 18, 52, 1, 0, 1
-72, 49, 217, 277, 14, 35, 1, 0, 1
-72, 55, 398, 256, 13, 27, 1, 0, 1
-72, 56, 128, 278, 22, 61, 1, 0, 1
-72, 57, 364, 253, 11, 36, 1, 0, 1
-72, 61, 511, 262, 64, 30, 1, 2, 1
-72, 82, 557, 241, 18, 15, 1, 2, 1
-73, 1, 469, 292, 65, 51, 1, 2, 1
-73, 3, 572, 292, 98, 108, 1, 2, 1
-73, 4, 819, 286, 29, 81, 1, 0, 1
-73, 7, 158, 273, 25, 70, 1, 0, 1
-73, 8, 854, 269, 18, 46, 1, 0, 1
-73, 9, 183, 275, 23, 66, 1, 0, 1
-73, 18, 294, 268, 16, 48, 1, 0, 1
-73, 41, 264, 276, 18, 45, 1, 0, 1
-73, 47, 496, 242, 20, 16, 1, 2, 1
-73, 48, 249, 271, 18, 51, 1, 0, 1
-73, 49, 214, 277, 13, 35, 1, 0, 1
-73, 55, 397, 256, 13, 28, 1, 0, 1
-73, 56, 125, 275, 22, 64, 1, 0, 1
-73, 57, 363, 252, 11, 37, 1, 0, 1
-73, 61, 509, 263, 62, 29, 1, 2, 1
-73, 82, 557, 242, 17, 14, 1, 2, 1
-74, 1, 468, 292, 65, 51, 1, 2, 1
-74, 3, 572, 291, 98, 110, 1, 2, 1
-74, 4, 821, 286, 30, 81, 1, 0, 1
-74, 7, 157, 273, 25, 70, 1, 0, 1
-74, 8, 855, 270, 17, 44, 1, 0, 1
-74, 9, 181, 274, 24, 69, 1, 0, 1
-74, 18, 293, 269, 16, 46, 1, 0, 1
-74, 24, 695, 303, 43, 35, 1, 2, 1
-74, 41, 262, 276, 18, 46, 1, 0, 1
-74, 47, 495, 242, 20, 17, 1, 2, 1
-74, 48, 243, 266, 19, 54, 1, 0, 1
-74, 49, 211, 277, 14, 35, 1, 0, 1
-74, 55, 396, 255, 13, 28, 1, 0, 1
-74, 56, 123, 273, 23, 67, 1, 0, 1
-74, 57, 361, 252, 12, 38, 1, 0, 1
-74, 61, 508, 263, 59, 28, 1, 2, 1
-74, 82, 556, 242, 18, 14, 1, 2, 1
-75, 1, 466, 291, 67, 53, 1, 2, 1
-75, 3, 571, 292, 99, 110, 1, 2, 1
-75, 4, 823, 288, 30, 82, 1, 0, 1
-75, 7, 153, 273, 24, 69, 1, 0, 1
-75, 8, 856, 270, 18, 47, 1, 0, 1
-75, 9, 178, 276, 24, 67, 1, 0, 1
-75, 18, 291, 268, 16, 48, 1, 0, 1
-75, 24, 696, 304, 42, 35, 1, 2, 1
-75, 41, 260, 276, 18, 46, 1, 0, 1
-75, 47, 494, 242, 20, 17, 1, 2, 1
-75, 48, 240, 265, 18, 51, 1, 0, 1
-75, 49, 207, 276, 14, 36, 1, 0, 1
-75, 55, 395, 255, 13, 27, 1, 0, 1
-75, 56, 120, 275, 22, 66, 1, 0, 1
-75, 57, 359, 252, 12, 38, 1, 0, 1
-75, 61, 504, 264, 58, 27, 1, 2, 1
-75, 82, 554, 241, 19, 16, 1, 2, 1
-75, 85, 799, 259, 11, 29, 1, 0, 1
-76, 1, 465, 291, 68, 54, 1, 2, 1
-76, 3, 571, 292, 100, 111, 1, 2, 1
-76, 4, 825, 288, 31, 83, 1, 0, 1
-76, 7, 149, 273, 25, 69, 1, 0, 1
-76, 8, 856, 269, 18, 47, 1, 0, 1
-76, 9, 175, 274, 24, 68, 1, 0, 1
-76, 18, 289, 268, 16, 46, 1, 0, 1
-76, 41, 257, 278, 18, 44, 1, 0, 1
-76, 48, 239, 265, 18, 51, 1, 0, 1
-76, 49, 203, 276, 14, 35, 1, 0, 1
-76, 55, 394, 254, 12, 27, 1, 0, 1
-76, 56, 117, 275, 22, 65, 1, 0, 1
-76, 57, 358, 252, 12, 38, 1, 0, 1
-76, 61, 499, 262, 61, 29, 1, 2, 1
-76, 82, 553, 241, 19, 15, 1, 2, 1
-76, 85, 799, 259, 11, 29, 1, 0, 1
-77, 1, 464, 291, 68, 54, 1, 2, 1
-77, 3, 570, 293, 100, 111, 1, 2, 1
-77, 4, 825, 289, 32, 86, 1, 0, 1
-77, 7, 146, 272, 26, 71, 1, 0, 1
-77, 8, 856, 270, 19, 47, 1, 0, 1
-77, 9, 173, 274, 23, 67, 1, 0, 1
-77, 18, 286, 268, 16, 47, 1, 0, 1
-77, 41, 254, 278, 18, 44, 1, 0, 1
-77, 48, 237, 268, 19, 52, 1, 0, 1
-77, 49, 200, 276, 14, 36, 1, 0, 1
-77, 55, 392, 254, 13, 28, 1, 0, 1
-77, 56, 114, 278, 21, 62, 1, 0, 1
-77, 57, 356, 251, 13, 39, 1, 0, 1
-77, 61, 495, 262, 63, 29, 1, 2, 1
-77, 82, 552, 242, 19, 15, 1, 2, 1
-77, 85, 798, 259, 11, 29, 1, 0, 1
-78, 1, 462, 291, 68, 54, 1, 2, 1
-78, 3, 568, 293, 102, 113, 1, 2, 1
-78, 4, 827, 289, 32, 87, 1, 0, 1
-78, 7, 143, 271, 26, 73, 1, 0, 1
-78, 8, 857, 270, 18, 48, 1, 0, 1
-78, 9, 169, 274, 24, 68, 1, 0, 1
-78, 18, 282, 269, 17, 49, 1, 0, 1
-78, 41, 251, 276, 18, 47, 1, 0, 1
-78, 48, 235, 271, 19, 51, 1, 0, 1
-78, 49, 194, 275, 15, 38, 1, 0, 1
-78, 55, 391, 254, 13, 28, 1, 0, 1
-78, 56, 111, 275, 23, 66, 1, 0, 1
-78, 57, 354, 252, 12, 37, 1, 0, 1
-78, 61, 493, 261, 61, 29, 1, 2, 1
-78, 82, 551, 241, 20, 16, 1, 2, 1
-78, 85, 797, 259, 11, 29, 1, 0, 1
-79, 1, 461, 291, 66, 53, 1, 2, 1
-79, 3, 568, 294, 100, 113, 1, 2, 1
-79, 4, 829, 290, 32, 86, 1, 0, 1
-79, 7, 138, 270, 27, 74, 1, 0, 1
-79, 8, 856, 270, 20, 48, 1, 0, 1
-79, 9, 167, 274, 23, 69, 1, 0, 1
-79, 18, 278, 266, 18, 53, 1, 0, 1
-79, 41, 248, 276, 18, 47, 1, 0, 1
-79, 48, 230, 265, 21, 56, 1, 0, 1
-79, 49, 192, 275, 15, 37, 1, 0, 1
-79, 56, 107, 276, 23, 65, 1, 0, 1
-79, 57, 353, 252, 11, 35, 1, 0, 1
-79, 61, 491, 261, 59, 29, 1, 2, 1
-79, 82, 550, 242, 19, 15, 1, 2, 1
-79, 85, 797, 259, 11, 29, 1, 0, 1
-80, 1, 459, 291, 66, 53, 1, 2, 1
-80, 3, 566, 293, 102, 115, 1, 2, 1
-80, 4, 829, 288, 33, 88, 1, 0, 1
-80, 7, 135, 270, 27, 74, 1, 0, 1
-80, 8, 856, 269, 19, 46, 1, 0, 1
-80, 9, 165, 274, 23, 70, 1, 0, 1
-80, 18, 274, 269, 19, 52, 1, 0, 1
-80, 41, 244, 276, 19, 48, 1, 0, 1
-80, 48, 228, 267, 20, 56, 1, 0, 1
-80, 49, 189, 277, 14, 36, 1, 0, 1
-80, 56, 105, 277, 22, 65, 1, 0, 1
-80, 57, 352, 252, 11, 35, 1, 0, 1
-80, 61, 489, 261, 58, 28, 1, 2, 1
-80, 82, 549, 242, 19, 15, 1, 2, 1
-80, 85, 796, 258, 11, 31, 1, 0, 1
-81, 1, 457, 291, 67, 54, 1, 2, 1
-81, 3, 564, 293, 104, 116, 1, 2, 1
-81, 4, 830, 287, 34, 90, 1, 0, 1
-81, 7, 133, 273, 26, 70, 1, 0, 1
-81, 8, 856, 268, 18, 46, 1, 0, 1
-81, 9, 161, 275, 24, 68, 1, 0, 1
-81, 18, 271, 270, 18, 52, 1, 0, 1
-81, 41, 241, 276, 19, 48, 1, 0, 1
-81, 48, 226, 269, 19, 56, 1, 0, 1
-81, 49, 185, 277, 14, 37, 1, 0, 1
-81, 56, 102, 277, 22, 65, 1, 0, 1
-81, 57, 349, 252, 12, 37, 1, 0, 1
-81, 61, 487, 261, 56, 27, 1, 2, 1
-81, 82, 548, 243, 17, 13, 1, 2, 1
-81, 85, 795, 258, 12, 31, 1, 0, 1
-81, 91, 75, 277, 20, 65, 1, 0, 1
-82, 1, 455, 291, 68, 54, 1, 2, 1
-82, 3, 562, 293, 106, 118, 1, 2, 1
-82, 4, 831, 287, 34, 91, 1, 0, 1
-82, 7, 130, 274, 26, 70, 1, 0, 1
-82, 8, 855, 267, 19, 47, 1, 0, 1
-82, 9, 158, 277, 23, 68, 1, 0, 1
-82, 18, 264, 273, 18, 50, 1, 0, 1
-82, 41, 237, 275, 20, 50, 1, 0, 1
-82, 48, 224, 272, 18, 52, 1, 0, 1
-82, 49, 180, 277, 16, 37, 1, 0, 1
-82, 56, 99, 276, 22, 67, 1, 0, 1
-82, 57, 348, 252, 12, 37, 1, 0, 1
-82, 61, 484, 261, 55, 27, 1, 2, 1
-82, 82, 547, 243, 17, 13, 1, 2, 1
-82, 85, 795, 258, 12, 32, 1, 0, 1
-82, 91, 70, 277, 21, 66, 1, 0, 1
-83, 1, 452, 291, 69, 56, 1, 2, 1
-83, 3, 561, 294, 106, 119, 1, 2, 1
-83, 4, 832, 287, 35, 92, 1, 0, 1
-83, 7, 127, 277, 24, 66, 1, 0, 1
-83, 8, 855, 266, 19, 48, 1, 0, 1
-83, 9, 154, 277, 24, 69, 1, 0, 1
-83, 18, 265, 271, 19, 51, 1, 0, 1
-83, 41, 234, 274, 21, 51, 1, 0, 1
-83, 48, 222, 269, 20, 57, 1, 0, 1
-83, 49, 177, 277, 16, 37, 1, 0, 1
-83, 55, 382, 255, 13, 27, 1, 0, 1
-83, 56, 96, 276, 23, 68, 1, 0, 1
-83, 57, 346, 252, 12, 39, 1, 0, 1
-83, 61, 482, 261, 55, 28, 1, 2, 1
-83, 82, 546, 244, 16, 12, 1, 2, 1
-83, 91, 66, 279, 20, 64, 1, 0, 1
-84, 1, 449, 291, 70, 56, 1, 2, 1
-84, 3, 560, 294, 106, 119, 1, 2, 1
-84, 4, 833, 286, 35, 93, 1, 0, 1
-84, 7, 122, 275, 26, 70, 1, 0, 1
-84, 8, 855, 265, 20, 49, 1, 0, 1
-84, 9, 151, 276, 24, 69, 1, 0, 1
-84, 18, 265, 269, 19, 53, 1, 0, 1
-84, 41, 232, 276, 20, 50, 1, 0, 1
-84, 48, 217, 270, 20, 56, 1, 0, 1
-84, 49, 173, 278, 16, 38, 1, 0, 1
-84, 55, 381, 255, 13, 27, 1, 0, 1
-84, 56, 93, 274, 24, 73, 1, 0, 1
-84, 57, 343, 251, 12, 38, 1, 0, 1
-84, 61, 480, 261, 54, 28, 1, 2, 1
-84, 82, 544, 243, 17, 12, 1, 2, 1
-84, 85, 792, 257, 12, 30, 1, 0, 1
-84, 91, 63, 280, 20, 64, 1, 0, 1
-85, 1, 448, 292, 69, 56, 1, 2, 1
-85, 3, 560, 295, 105, 118, 1, 2, 1
-85, 4, 834, 288, 34, 91, 1, 0, 1
-85, 7, 119, 276, 26, 70, 1, 0, 1
-85, 8, 854, 265, 20, 49, 1, 0, 1
-85, 9, 147, 278, 24, 68, 1, 0, 1
-85, 18, 264, 269, 19, 53, 1, 0, 1
-85, 41, 229, 275, 20, 51, 1, 0, 1
-85, 48, 213, 271, 20, 56, 1, 0, 1
-85, 49, 168, 278, 17, 42, 1, 0, 1
-85, 55, 379, 255, 13, 27, 1, 0, 1
-85, 56, 90, 274, 25, 73, 1, 0, 1
-85, 57, 341, 254, 12, 36, 1, 0, 1
-85, 61, 478, 261, 53, 27, 1, 2, 1
-85, 82, 543, 243, 17, 12, 1, 2, 1
-85, 85, 791, 257, 12, 30, 1, 0, 1
-85, 91, 58, 281, 21, 66, 1, 0, 1
-86, 1, 446, 293, 69, 55, 1, 2, 1
-86, 3, 559, 295, 106, 119, 1, 2, 1
-86, 4, 835, 288, 34, 90, 1, 0, 1
-86, 7, 115, 275, 26, 71, 1, 0, 1
-86, 8, 853, 264, 20, 49, 1, 0, 1
-86, 9, 143, 279, 24, 68, 1, 0, 1
-86, 18, 259, 270, 20, 54, 1, 0, 1
-86, 41, 226, 277, 20, 51, 1, 0, 1
-86, 48, 211, 274, 19, 53, 1, 0, 1
-86, 49, 165, 279, 17, 40, 1, 0, 1
-86, 55, 378, 255, 13, 27, 1, 0, 1
-86, 57, 339, 255, 11, 34, 1, 0, 1
-86, 61, 475, 261, 51, 27, 1, 2, 1
-86, 91, 54, 280, 23, 69, 1, 0, 1
-87, 1, 444, 293, 70, 57, 1, 2, 1
-87, 3, 557, 296, 108, 122, 1, 2, 1
-87, 4, 835, 287, 35, 93, 1, 0, 1
-87, 7, 111, 275, 27, 73, 1, 0, 1
-87, 8, 853, 266, 19, 47, 1, 0, 1
-87, 9, 141, 280, 23, 69, 1, 0, 1
-87, 18, 253, 272, 19, 54, 1, 0, 1
-87, 41, 222, 277, 20, 52, 1, 0, 1
-87, 48, 206, 273, 19, 54, 1, 0, 1
-87, 49, 162, 280, 16, 40, 1, 0, 1
-87, 57, 337, 257, 11, 34, 1, 0, 1
-87, 61, 472, 262, 52, 28, 1, 2, 1
-87, 82, 540, 244, 17, 14, 1, 2, 1
-87, 91, 51, 282, 23, 67, 1, 0, 1
-88, 1, 442, 295, 69, 56, 1, 2, 1
-88, 3, 554, 297, 110, 124, 1, 2, 1
-88, 4, 836, 287, 36, 95, 1, 0, 1
-88, 7, 107, 275, 27, 74, 1, 0, 1
-88, 8, 852, 266, 18, 45, 1, 0, 1
-88, 9, 136, 281, 24, 68, 1, 0, 1
-88, 18, 253, 271, 20, 54, 1, 0, 1
-88, 41, 219, 276, 21, 54, 1, 0, 1
-88, 48, 203, 272, 20, 57, 1, 0, 1
-88, 49, 157, 280, 18, 46, 1, 0, 1
-88, 55, 372, 257, 14, 28, 1, 0, 1
-88, 57, 334, 257, 12, 35, 1, 0, 1
-88, 61, 472, 263, 50, 27, 1, 2, 1
-88, 82, 538, 244, 18, 14, 1, 2, 1
-88, 91, 46, 282, 24, 72, 1, 0, 1
-88, 97, 188, 282, 16, 40, 1, 0, 1
-89, 1, 441, 296, 69, 56, 1, 2, 1
-89, 3, 552, 297, 112, 126, 1, 2, 1
-89, 4, 838, 291, 35, 93, 1, 0, 1
-89, 7, 104, 275, 28, 75, 1, 0, 1
-89, 8, 851, 266, 19, 44, 1, 0, 1
-89, 9, 134, 283, 23, 66, 1, 0, 1
-89, 18, 250, 271, 21, 56, 1, 0, 1
-89, 41, 215, 277, 22, 57, 1, 0, 1
-89, 48, 199, 274, 20, 55, 1, 0, 1
-89, 49, 153, 283, 17, 44, 1, 0, 1
-89, 55, 371, 257, 13, 29, 1, 0, 1
-89, 57, 332, 257, 12, 35, 1, 0, 1
-89, 61, 470, 264, 48, 26, 1, 2, 1
-89, 82, 537, 245, 18, 14, 1, 2, 1
-89, 91, 43, 282, 24, 68, 1, 0, 1
-89, 97, 184, 283, 16, 40, 1, 0, 1
-90, 1, 440, 297, 69, 56, 1, 2, 1
-90, 3, 551, 300, 112, 127, 1, 2, 1
-90, 4, 840, 292, 35, 94, 1, 0, 1
-90, 7, 101, 276, 28, 76, 1, 0, 1
-90, 8, 851, 267, 18, 43, 1, 0, 1
-90, 9, 130, 282, 24, 70, 1, 0, 1
-90, 18, 248, 272, 20, 57, 1, 0, 1
-90, 41, 211, 279, 22, 57, 1, 0, 1
-90, 48, 195, 274, 21, 59, 1, 0, 1
-90, 49, 150, 286, 16, 40, 1, 0, 1
-90, 55, 368, 259, 13, 27, 1, 0, 1
-90, 57, 330, 261, 10, 32, 1, 0, 1
-90, 61, 467, 264, 49, 28, 1, 2, 1
-90, 82, 536, 248, 16, 12, 1, 2, 1
-90, 91, 39, 283, 25, 71, 1, 0, 1
-90, 97, 181, 285, 16, 40, 1, 0, 1
-91, 1, 437, 297, 70, 57, 1, 2, 1
-91, 3, 550, 303, 112, 126, 1, 2, 1
-91, 4, 841, 297, 35, 92, 1, 0, 1
-91, 7, 98, 277, 27, 76, 1, 0, 1
-91, 8, 851, 269, 17, 39, 1, 0, 1
-91, 9, 127, 283, 24, 70, 1, 0, 1
-91, 18, 246, 273, 20, 57, 1, 0, 1
-91, 41, 208, 280, 22, 57, 1, 0, 1
-91, 48, 192, 280, 20, 56, 1, 0, 1
-91, 49, 147, 286, 16, 41, 1, 0, 1
-91, 55, 366, 259, 13, 27, 1, 0, 1
-91, 56, 73, 278, 24, 73, 1, 0, 1
-91, 57, 328, 260, 11, 32, 1, 0, 1
-91, 61, 464, 264, 49, 27, 1, 2, 1
-91, 82, 535, 249, 16, 12, 1, 2, 1
-91, 91, 34, 284, 26, 72, 1, 0, 1
-91, 97, 177, 286, 16, 39, 1, 0, 1
-92, 1, 436, 298, 70, 57, 1, 2, 1
-92, 3, 548, 304, 113, 128, 1, 2, 1
-92, 4, 843, 299, 35, 93, 1, 0, 1
-92, 7, 93, 277, 29, 79, 1, 0, 1
-92, 8, 851, 270, 17, 37, 1, 0, 1
-92, 9, 124, 283, 25, 71, 1, 0, 1
-92, 18, 238, 280, 19, 54, 1, 0, 1
-92, 41, 205, 282, 21, 57, 1, 0, 1
-92, 48, 189, 278, 21, 60, 1, 0, 1
-92, 55, 364, 261, 12, 26, 1, 0, 1
-92, 56, 70, 278, 24, 73, 1, 0, 1
-92, 57, 326, 259, 12, 35, 1, 0, 1
-92, 61, 461, 264, 48, 28, 1, 2, 1
-92, 82, 532, 249, 17, 12, 1, 2, 1
-92, 85, 794, 256, 14, 38, 1, 0, 1
-92, 91, 31, 285, 25, 71, 1, 0, 1
-92, 97, 174, 287, 16, 39, 1, 0, 1
-92, 101, 757, 259, 12, 30, 1, 0, 1
-93, 1, 433, 300, 70, 56, 1, 2, 1
-93, 3, 544, 302, 116, 132, 1, 2, 1
-93, 4, 844, 302, 35, 92, 1, 0, 1
-93, 7, 90, 279, 28, 78, 1, 0, 1
-93, 8, 850, 271, 17, 38, 1, 0, 1
-93, 9, 121, 287, 24, 68, 1, 0, 1
-93, 18, 237, 278, 19, 55, 1, 0, 1
-93, 41, 201, 282, 22, 58, 1, 0, 1
-93, 48, 185, 279, 21, 61, 1, 0, 1
-93, 49, 137, 288, 17, 44, 1, 0, 1
-93, 55, 361, 261, 13, 28, 1, 0, 1
-93, 57, 324, 259, 12, 36, 1, 0, 1
-93, 61, 459, 265, 48, 27, 1, 2, 1
-93, 82, 530, 249, 19, 13, 1, 2, 1
-93, 85, 794, 257, 15, 39, 1, 0, 1
-93, 91, 27, 287, 25, 69, 1, 0, 1
-93, 97, 169, 290, 16, 40, 1, 0, 1
-93, 101, 756, 260, 12, 30, 1, 0, 1
-94, 1, 431, 301, 69, 55, 1, 2, 1
-94, 3, 542, 303, 118, 133, 1, 2, 1
-94, 4, 845, 303, 36, 93, 1, 0, 1
-94, 7, 86, 281, 29, 78, 1, 0, 1
-94, 8, 849, 272, 19, 40, 1, 0, 1
-94, 9, 117, 288, 25, 70, 1, 0, 1
-94, 18, 229, 283, 20, 54, 1, 0, 1
-94, 41, 198, 287, 21, 54, 1, 0, 1
-94, 48, 185, 279, 22, 63, 1, 0, 1
-94, 49, 134, 289, 17, 44, 1, 0, 1
-94, 55, 359, 261, 13, 29, 1, 0, 1
-94, 56, 68, 285, 21, 64, 1, 0, 1
-94, 57, 321, 261, 12, 36, 1, 0, 1
-94, 61, 458, 266, 46, 27, 1, 2, 1
-94, 82, 529, 249, 19, 14, 1, 2, 1
-94, 85, 790, 258, 14, 38, 1, 0, 1
-94, 91, 22, 289, 25, 68, 1, 0, 1
-94, 97, 165, 291, 16, 41, 1, 0, 1
-94, 101, 753, 261, 12, 29, 1, 0, 1
-95, 1, 430, 302, 68, 55, 1, 2, 1
-95, 3, 541, 307, 117, 131, 1, 2, 1
-95, 4, 846, 305, 36, 93, 1, 0, 1
-95, 7, 83, 283, 28, 77, 1, 0, 1
-95, 8, 848, 272, 18, 42, 1, 0, 1
-95, 9, 112, 289, 26, 71, 1, 0, 1
-95, 18, 224, 284, 20, 55, 1, 0, 1
-95, 41, 195, 289, 21, 54, 1, 0, 1
-95, 48, 179, 279, 22, 64, 1, 0, 1
-95, 55, 357, 261, 13, 29, 1, 0, 1
-95, 56, 57, 287, 21, 68, 1, 0, 1
-95, 57, 319, 260, 13, 39, 1, 0, 1
-95, 61, 457, 266, 45, 27, 1, 2, 1
-95, 82, 528, 249, 19, 14, 1, 2, 1
-95, 85, 786, 259, 14, 38, 1, 0, 1
-95, 91, 18, 288, 26, 71, 1, 0, 1
-95, 97, 161, 292, 17, 42, 1, 0, 1
-95, 101, 751, 261, 13, 31, 1, 0, 1
-96, 1, 427, 303, 69, 55, 1, 2, 1
-96, 3, 539, 307, 118, 133, 1, 2, 1
-96, 4, 848, 305, 37, 94, 1, 0, 1
-96, 7, 80, 285, 28, 77, 1, 0, 1
-96, 8, 846, 273, 20, 44, 1, 0, 1
-96, 9, 109, 291, 25, 70, 1, 0, 1
-96, 18, 221, 284, 20, 56, 1, 0, 1
-96, 41, 191, 289, 21, 55, 1, 0, 1
-96, 48, 175, 283, 21, 60, 1, 0, 1
-96, 55, 355, 262, 13, 30, 1, 0, 1
-96, 56, 53, 288, 21, 67, 1, 0, 1
-96, 57, 317, 261, 13, 39, 1, 0, 1
-96, 61, 456, 267, 42, 26, 1, 2, 1
-96, 85, 784, 260, 13, 37, 1, 0, 1
-96, 91, 14, 291, 26, 71, 1, 0, 1
-96, 97, 158, 293, 16, 41, 1, 0, 1
-96, 101, 749, 261, 13, 32, 1, 0, 1
-97, 1, 424, 303, 70, 55, 1, 2, 1
-97, 3, 538, 310, 116, 131, 1, 2, 1
-97, 4, 849, 305, 37, 95, 1, 0, 1
-97, 7, 78, 286, 27, 75, 1, 0, 1
-97, 8, 845, 272, 21, 48, 1, 0, 1
-97, 9, 106, 291, 25, 70, 1, 0, 1
-97, 18, 221, 282, 21, 57, 1, 0, 1
-97, 41, 187, 287, 22, 58, 1, 0, 1
-97, 48, 170, 279, 23, 66, 1, 0, 1
-97, 55, 354, 263, 13, 29, 1, 0, 1
-97, 56, 49, 289, 22, 67, 1, 0, 1
-97, 57, 314, 267, 12, 33, 1, 0, 1
-97, 61, 453, 268, 42, 25, 1, 2, 1
-97, 82, 524, 250, 21, 15, 1, 2, 1
-97, 85, 783, 260, 13, 37, 1, 0, 1
-97, 91, 11, 286, 28, 78, 1, 0, 1
-97, 97, 153, 290, 18, 47, 1, 0, 1
-97, 101, 748, 261, 13, 31, 1, 0, 1
-97, 108, 554, 300, 75, 22, 1, 2, 1
-98, 1, 421, 303, 70, 57, 1, 2, 1
-98, 3, 536, 312, 117, 131, 1, 2, 1
-98, 4, 851, 306, 38, 96, 1, 0, 1
-98, 7, 75, 288, 27, 73, 1, 0, 1
-98, 8, 843, 273, 22, 49, 1, 0, 1
-98, 9, 101, 290, 27, 74, 1, 0, 1
-98, 18, 220, 283, 21, 55, 1, 0, 1
-98, 41, 183, 288, 23, 58, 1, 0, 1
-98, 48, 166, 278, 22, 66, 1, 0, 1
-98, 55, 352, 263, 13, 30, 1, 0, 1
-98, 56, 45, 290, 19, 60, 1, 0, 1
-98, 57, 312, 267, 12, 34, 1, 0, 1
-98, 61, 451, 268, 42, 26, 1, 2, 1
-98, 82, 522, 250, 21, 15, 1, 2, 1
-98, 85, 781, 260, 14, 36, 1, 0, 1
-98, 91, 7, 286, 29, 79, 1, 0, 1
-98, 97, 149, 293, 17, 44, 1, 0, 1
-98, 101, 746, 261, 13, 31, 1, 0, 1
-98, 108, 553, 299, 77, 23, 1, 2, 1
-99, 1, 419, 303, 70, 56, 1, 2, 1
-99, 3, 534, 312, 119, 133, 1, 2, 1
-99, 4, 853, 307, 38, 98, 1, 0, 1
-99, 7, 70, 287, 28, 75, 1, 0, 1
-99, 8, 842, 274, 21, 49, 1, 0, 1
-99, 9, 98, 290, 26, 73, 1, 0, 1
-99, 18, 212, 282, 21, 58, 1, 0, 1
-99, 41, 179, 287, 23, 60, 1, 0, 1
-99, 48, 161, 284, 21, 61, 1, 0, 1
-99, 56, 42, 291, 19, 59, 1, 0, 1
-99, 57, 308, 264, 13, 37, 1, 0, 1
-99, 61, 450, 268, 40, 26, 1, 2, 1
-99, 82, 520, 250, 21, 16, 1, 2, 1
-99, 85, 780, 259, 14, 39, 1, 0, 1
-99, 91, 3, 287, 30, 79, 1, 0, 1
-99, 97, 144, 294, 18, 45, 1, 0, 1
-99, 101, 745, 261, 13, 32, 1, 0, 1
-99, 108, 551, 300, 78, 23, 1, 2, 1
-100, 1, 416, 304, 71, 56, 1, 2, 1
-100, 3, 532, 313, 120, 135, 1, 2, 1
-100, 4, 854, 307, 39, 99, 1, 0, 1
-100, 7, 66, 290, 27, 74, 1, 0, 1
-100, 8, 842, 274, 21, 50, 1, 0, 1
-100, 9, 94, 291, 26, 72, 1, 0, 1
-100, 18, 206, 280, 22, 63, 1, 0, 1
-100, 41, 175, 289, 23, 59, 1, 0, 1
-100, 48, 158, 280, 22, 67, 1, 0, 1
-100, 55, 347, 264, 13, 29, 1, 0, 1
-100, 57, 306, 263, 13, 39, 1, 0, 1
-100, 61, 448, 268, 41, 26, 1, 2, 1
-100, 82, 519, 250, 21, 15, 1, 2, 1
-100, 85, 778, 259, 14, 41, 1, 0, 1
-100, 97, 140, 294, 18, 47, 1, 0, 1
-100, 101, 743, 262, 13, 31, 1, 0, 1
-100, 108, 548, 300, 77, 23, 1, 2, 1
-101, 1, 415, 304, 69, 56, 1, 2, 1
-101, 3, 529, 314, 122, 137, 1, 2, 1
-101, 4, 855, 308, 39, 101, 1, 0, 1
-101, 7, 61, 288, 28, 75, 1, 0, 1
-101, 8, 842, 275, 21, 51, 1, 0, 1
-101, 9, 90, 289, 27, 74, 1, 0, 1
-101, 18, 200, 281, 22, 64, 1, 0, 1
-101, 41, 171, 288, 24, 60, 1, 0, 1
-101, 48, 154, 288, 20, 58, 1, 0, 1
-101, 55, 344, 263, 13, 30, 1, 0, 1
-101, 57, 303, 264, 14, 39, 1, 0, 1
-101, 61, 446, 268, 40, 26, 1, 2, 1
-101, 82, 518, 251, 19, 14, 1, 2, 1
-101, 85, 776, 259, 14, 42, 1, 0, 1
-101, 97, 135, 295, 18, 45, 1, 0, 1
-101, 101, 741, 262, 13, 32, 1, 0, 1
-101, 108, 543, 300, 83, 26, 1, 2, 1
-102, 1, 412, 305, 70, 55, 1, 2, 1
-102, 3, 527, 316, 121, 137, 1, 2, 1
-102, 4, 856, 308, 40, 102, 1, 0, 1
-102, 7, 57, 290, 27, 73, 1, 0, 1
-102, 8, 841, 275, 21, 52, 1, 0, 1
-102, 9, 85, 289, 28, 75, 1, 0, 1
-102, 18, 196, 284, 22, 63, 1, 0, 1
-102, 41, 166, 287, 24, 62, 1, 0, 1
-102, 48, 150, 287, 20, 60, 1, 0, 1
-102, 55, 342, 264, 13, 29, 1, 0, 1
-102, 61, 445, 268, 39, 26, 1, 2, 1
-102, 82, 516, 252, 19, 14, 1, 2, 1
-102, 85, 773, 258, 15, 42, 1, 0, 1
-102, 97, 131, 294, 18, 47, 1, 0, 1
-102, 101, 740, 262, 13, 31, 1, 0, 1
-102, 108, 540, 301, 85, 25, 1, 2, 1
-102, 114, 213, 282, 18, 50, 1, 0, 1
-103, 1, 409, 304, 71, 57, 1, 2, 1
-103, 3, 525, 314, 123, 140, 1, 2, 1
-103, 4, 857, 308, 41, 104, 1, 0, 1
-103, 7, 52, 290, 28, 74, 1, 0, 1
-103, 8, 840, 274, 21, 54, 1, 0, 1
-103, 9, 81, 291, 27, 74, 1, 0, 1
-103, 18, 192, 282, 24, 67, 1, 0, 1
-103, 41, 163, 288, 24, 61, 1, 0, 1
-103, 48, 146, 282, 22, 66, 1, 0, 1
-103, 55, 340, 264, 13, 29, 1, 0, 1
-103, 57, 300, 264, 13, 38, 1, 0, 1
-103, 61, 443, 268, 39, 26, 1, 2, 1
-103, 82, 514, 251, 19, 15, 1, 2, 1
-103, 85, 771, 258, 14, 43, 1, 0, 1
-103, 97, 127, 295, 18, 47, 1, 0, 1
-103, 101, 737, 261, 13, 32, 1, 0, 1
-103, 108, 539, 300, 83, 26, 1, 2, 1
-103, 114, 210, 281, 18, 52, 1, 0, 1
-104, 1, 407, 304, 71, 57, 1, 2, 1
-104, 3, 522, 314, 124, 141, 1, 2, 1
-104, 4, 858, 311, 41, 104, 1, 0, 1
-104, 7, 49, 290, 27, 74, 1, 0, 1
-104, 8, 839, 275, 21, 53, 1, 0, 1
-104, 9, 77, 292, 27, 73, 1, 0, 1
-104, 18, 188, 285, 22, 65, 1, 0, 1
-104, 41, 158, 288, 24, 62, 1, 0, 1
-104, 48, 142, 288, 19, 59, 1, 0, 1
-104, 55, 338, 264, 13, 30, 1, 0, 1
-104, 56, 20, 290, 21, 69, 1, 0, 1
-104, 57, 297, 263, 13, 38, 1, 0, 1
-104, 61, 442, 267, 37, 26, 1, 2, 1
-104, 82, 513, 251, 20, 15, 1, 2, 1
-104, 85, 770, 259, 14, 41, 1, 0, 1
-104, 97, 122, 295, 18, 46, 1, 0, 1
-104, 101, 735, 262, 13, 32, 1, 0, 1
-104, 108, 538, 300, 83, 26, 1, 2, 1
-104, 114, 207, 281, 18, 51, 1, 0, 1
-105, 1, 405, 304, 71, 56, 1, 2, 1
-105, 3, 521, 317, 123, 139, 1, 2, 1
-105, 4, 860, 311, 42, 106, 1, 0, 1
-105, 7, 43, 290, 27, 74, 1, 0, 1
-105, 8, 838, 276, 21, 52, 1, 0, 1
-105, 9, 72, 293, 27, 73, 1, 0, 1
-105, 18, 184, 284, 23, 65, 1, 0, 1
-105, 41, 153, 287, 25, 63, 1, 0, 1
-105, 48, 137, 289, 19, 59, 1, 0, 1
-105, 55, 335, 263, 14, 31, 1, 0, 1
-105, 56, 15, 288, 22, 69, 1, 0, 1
-105, 57, 294, 264, 14, 37, 1, 0, 1
-105, 61, 440, 267, 37, 25, 1, 2, 1
-105, 82, 511, 251, 20, 15, 1, 2, 1
-105, 85, 769, 259, 13, 40, 1, 0, 1
-105, 97, 119, 297, 17, 45, 1, 0, 1
-105, 101, 734, 264, 12, 30, 1, 0, 1
-105, 108, 536, 301, 84, 26, 1, 2, 1
-105, 114, 203, 281, 18, 51, 1, 0, 1
-105, 118, 324, 262, 12, 32, 1, 0, 1
-106, 1, 403, 304, 70, 55, 1, 2, 1
-106, 3, 519, 318, 123, 139, 1, 2, 1
-106, 4, 861, 311, 42, 108, 1, 0, 1
-106, 7, 38, 288, 28, 77, 1, 0, 1
-106, 8, 838, 276, 20, 52, 1, 0, 1
-106, 9, 67, 289, 29, 76, 1, 0, 1
-106, 18, 179, 283, 22, 66, 1, 0, 1
-106, 41, 147, 284, 27, 68, 1, 0, 1
-106, 48, 132, 293, 18, 55, 1, 0, 1
-106, 55, 333, 262, 13, 32, 1, 0, 1
-106, 56, 8, 287, 23, 69, 1, 0, 1
-106, 57, 292, 263, 14, 37, 1, 0, 1
-106, 61, 438, 266, 37, 26, 1, 2, 1
-106, 82, 510, 251, 19, 15, 1, 2, 1
-106, 85, 767, 259, 14, 40, 1, 0, 1
-106, 97, 115, 296, 17, 45, 1, 0, 1
-106, 101, 732, 264, 13, 31, 1, 0, 1
-106, 108, 533, 301, 83, 26, 1, 2, 1
-106, 114, 200, 281, 17, 50, 1, 0, 1
-106, 118, 322, 262, 12, 32, 1, 0, 1
-107, 1, 401, 303, 70, 56, 1, 2, 1
-107, 3, 517, 319, 124, 140, 1, 2, 1
-107, 4, 861, 310, 43, 110, 1, 0, 1
-107, 7, 33, 287, 29, 77, 1, 0, 1
-107, 8, 837, 275, 19, 51, 1, 0, 1
-107, 9, 62, 287, 30, 78, 1, 0, 1
-107, 18, 175, 284, 22, 66, 1, 0, 1
-107, 41, 144, 287, 26, 64, 1, 0, 1
-107, 48, 128, 294, 18, 55, 1, 0, 1
-107, 55, 331, 262, 13, 31, 1, 0, 1
-107, 56, 4, 287, 23, 71, 1, 0, 1
-107, 57, 290, 263, 14, 38, 1, 0, 1
-107, 61, 437, 266, 35, 25, 1, 2, 1
-107, 82, 507, 250, 21, 16, 1, 2, 1
-107, 85, 767, 258, 14, 40, 1, 0, 1
-107, 97, 110, 296, 17, 45, 1, 0, 1
-107, 101, 730, 265, 12, 28, 1, 0, 1
-107, 108, 527, 300, 88, 28, 1, 2, 1
-107, 114, 197, 281, 17, 50, 1, 0, 1
-107, 118, 319, 261, 12, 32, 1, 0, 1
-108, 1, 398, 303, 71, 56, 1, 2, 1
-108, 3, 514, 318, 126, 143, 1, 2, 1
-108, 4, 862, 311, 43, 111, 1, 0, 1
-108, 7, 28, 286, 29, 77, 1, 0, 1
-108, 8, 836, 275, 19, 51, 1, 0, 1
-108, 9, 59, 287, 29, 79, 1, 0, 1
-108, 18, 170, 282, 22, 68, 1, 0, 1
-108, 41, 138, 282, 28, 70, 1, 0, 1
-108, 48, 124, 286, 21, 63, 1, 0, 1
-108, 55, 329, 263, 13, 30, 1, 0, 1
-108, 56, 0, 287, 24, 71, 1, 0, 1
-108, 61, 435, 266, 35, 25, 1, 2, 1
-108, 82, 506, 249, 20, 16, 1, 2, 1
-108, 85, 765, 259, 13, 38, 1, 0, 1
-108, 97, 105, 294, 18, 48, 1, 0, 1
-108, 101, 729, 265, 12, 29, 1, 0, 1
-108, 108, 519, 300, 97, 32, 1, 2, 1
-108, 114, 193, 280, 18, 51, 1, 0, 1
-108, 118, 317, 261, 11, 31, 1, 0, 1
-109, 1, 396, 303, 71, 56, 1, 2, 1
-109, 3, 511, 319, 127, 143, 1, 2, 1
-109, 4, 863, 311, 44, 113, 1, 0, 1
-109, 7, 23, 286, 29, 77, 1, 0, 1
-109, 8, 834, 275, 20, 52, 1, 0, 1
-109, 9, 55, 288, 29, 79, 1, 0, 1
-109, 18, 166, 280, 23, 72, 1, 0, 1
-109, 41, 135, 287, 25, 64, 1, 0, 1
-109, 48, 119, 290, 20, 62, 1, 0, 1
-109, 55, 326, 262, 13, 31, 1, 0, 1
-109, 56, 0, 287, 21, 73, 1, 0, 1
-109, 57, 287, 261, 14, 39, 1, 0, 1
-109, 61, 432, 266, 37, 25, 1, 2, 1
-109, 82, 505, 251, 19, 14, 1, 2, 1
-109, 85, 763, 259, 13, 37, 1, 0, 1
-109, 97, 99, 294, 19, 51, 1, 0, 1
-109, 101, 727, 265, 12, 29, 1, 0, 1
-109, 108, 522, 301, 88, 28, 1, 2, 1
-109, 114, 190, 280, 17, 52, 1, 0, 1
-109, 118, 315, 262, 11, 30, 1, 0, 1
-110, 1, 394, 302, 70, 56, 1, 2, 1
-110, 3, 509, 320, 128, 145, 1, 2, 1
-110, 4, 864, 312, 45, 115, 1, 0, 1
-110, 7, 17, 284, 31, 80, 1, 0, 1
-110, 8, 834, 277, 19, 52, 1, 0, 1
-110, 9, 50, 289, 30, 78, 1, 0, 1
-110, 18, 162, 282, 23, 70, 1, 0, 1
-110, 41, 131, 287, 25, 65, 1, 0, 1
-110, 48, 114, 293, 19, 57, 1, 0, 1
-110, 55, 324, 262, 13, 31, 1, 0, 1
-110, 56, 0, 284, 19, 75, 1, 0, 1
-110, 57, 285, 261, 14, 39, 1, 0, 1
-110, 61, 430, 265, 37, 26, 1, 2, 1
-110, 82, 503, 251, 19, 14, 1, 2, 1
-110, 85, 762, 260, 13, 37, 1, 0, 1
-110, 97, 95, 295, 19, 50, 1, 0, 1
-110, 108, 521, 301, 87, 28, 1, 2, 1
-110, 114, 186, 279, 18, 53, 1, 0, 1
-110, 118, 313, 261, 11, 31, 1, 0, 1
-111, 1, 391, 302, 71, 55, 1, 2, 1
-111, 3, 506, 320, 130, 147, 1, 2, 1
-111, 4, 865, 312, 45, 116, 1, 0, 1
-111, 7, 11, 283, 32, 83, 1, 0, 1
-111, 8, 832, 277, 19, 52, 1, 0, 1
-111, 9, 46, 289, 29, 79, 1, 0, 1
-111, 18, 158, 282, 23, 71, 1, 0, 1
-111, 41, 127, 290, 24, 61, 1, 0, 1
-111, 48, 108, 293, 19, 58, 1, 0, 1
-111, 55, 321, 262, 13, 31, 1, 0, 1
-111, 56, 0, 284, 15, 75, 1, 0, 1
-111, 61, 429, 264, 35, 26, 1, 2, 1
-111, 82, 501, 250, 20, 15, 1, 2, 1
-111, 85, 760, 259, 13, 37, 1, 0, 1
-111, 97, 90, 295, 19, 50, 1, 0, 1
-111, 108, 517, 301, 87, 28, 1, 2, 1
-111, 114, 181, 277, 19, 57, 1, 0, 1
-111, 118, 313, 261, 11, 32, 1, 0, 1
-112, 1, 390, 303, 71, 56, 1, 2, 1
-112, 3, 502, 321, 131, 147, 1, 2, 1
-112, 4, 866, 314, 44, 115, 1, 0, 1
-112, 7, 6, 284, 32, 82, 1, 0, 1
-112, 8, 831, 277, 19, 52, 1, 0, 1
-112, 9, 42, 289, 30, 79, 1, 0, 1
-112, 18, 153, 284, 22, 69, 1, 0, 1
-112, 41, 122, 289, 24, 63, 1, 0, 1
-112, 48, 103, 294, 18, 57, 1, 0, 1
-112, 55, 318, 262, 13, 31, 1, 0, 1
-112, 61, 426, 264, 37, 26, 1, 2, 1
-112, 82, 499, 250, 21, 16, 1, 2, 1
-112, 85, 758, 261, 13, 35, 1, 0, 1
-112, 97, 85, 296, 18, 49, 1, 0, 1
-112, 108, 512, 302, 93, 30, 1, 2, 1
-112, 114, 178, 279, 19, 55, 1, 0, 1
-112, 118, 311, 261, 12, 32, 1, 0, 1
-113, 1, 387, 303, 71, 56, 1, 2, 1
-113, 3, 500, 321, 131, 148, 1, 2, 1
-113, 4, 867, 316, 44, 114, 1, 0, 1
-113, 7, 1, 283, 32, 83, 1, 0, 1
-113, 9, 36, 288, 29, 80, 1, 0, 1
-113, 18, 148, 285, 22, 68, 1, 0, 1
-113, 41, 116, 287, 26, 66, 1, 0, 1
-113, 48, 96, 296, 19, 55, 1, 0, 1
-113, 55, 316, 262, 13, 31, 1, 0, 1
-113, 57, 277, 260, 14, 37, 1, 0, 1
-113, 61, 424, 264, 37, 26, 1, 2, 1
-113, 82, 498, 252, 19, 14, 1, 2, 1
-113, 85, 756, 262, 13, 34, 1, 0, 1
-113, 97, 80, 296, 18, 52, 1, 0, 1
-113, 108, 498, 303, 115, 38, 1, 2, 1
-113, 114, 175, 280, 18, 54, 1, 0, 1
-113, 118, 306, 261, 12, 32, 1, 0, 1
-114, 1, 385, 304, 71, 55, 1, 2, 1
-114, 3, 497, 322, 133, 149, 1, 2, 1
-114, 4, 869, 317, 43, 114, 1, 0, 1
-114, 7, 0, 284, 30, 82, 1, 0, 1
-114, 9, 30, 286, 31, 82, 1, 0, 1
-114, 18, 144, 286, 21, 68, 1, 0, 1
-114, 41, 110, 287, 26, 68, 1, 0, 1
-114, 48, 92, 296, 18, 56, 1, 0, 1
-114, 55, 313, 262, 13, 31, 1, 0, 1
-114, 57, 275, 260, 13, 37, 1, 0, 1
-114, 61, 423, 265, 34, 25, 1, 2, 1
-114, 82, 496, 251, 19, 15, 1, 2, 1
-114, 85, 755, 263, 13, 33, 1, 0, 1
-114, 97, 74, 297, 19, 51, 1, 0, 1
-114, 108, 489, 302, 129, 45, 1, 2, 1
-114, 114, 170, 280, 18, 55, 1, 0, 1
-114, 118, 302, 262, 12, 31, 1, 0, 1
-115, 1, 382, 303, 71, 56, 1, 2, 1
-115, 3, 494, 321, 134, 152, 1, 2, 1
-115, 4, 869, 318, 45, 115, 1, 0, 1
-115, 7, 0, 283, 28, 85, 1, 0, 1
-115, 9, 25, 288, 30, 81, 1, 0, 1
-115, 18, 139, 288, 21, 67, 1, 0, 1
-115, 41, 105, 290, 26, 65, 1, 0, 1
-115, 55, 311, 262, 13, 31, 1, 0, 1
-115, 61, 420, 263, 36, 26, 1, 2, 1
-115, 82, 494, 252, 19, 14, 1, 2, 1
-115, 85, 754, 262, 12, 33, 1, 0, 1
-115, 97, 70, 297, 19, 51, 1, 0, 1
-115, 108, 501, 302, 102, 35, 1, 2, 1
-115, 114, 166, 282, 19, 54, 1, 0, 1
-115, 118, 300, 262, 12, 31, 1, 0, 1
-116, 1, 379, 303, 71, 55, 1, 2, 1
-116, 3, 491, 321, 136, 153, 1, 2, 1
-116, 4, 871, 319, 44, 115, 1, 0, 1
-116, 7, 0, 289, 23, 79, 1, 0, 1
-116, 9, 20, 285, 31, 86, 1, 0, 1
-116, 18, 133, 289, 21, 68, 1, 0, 1
-116, 41, 99, 291, 26, 65, 1, 0, 1
-116, 48, 88, 285, 22, 66, 1, 0, 1
-116, 55, 309, 262, 13, 31, 1, 0, 1
-116, 61, 419, 265, 34, 25, 1, 2, 1
-116, 82, 492, 252, 19, 14, 1, 2, 1
-116, 85, 752, 262, 13, 34, 1, 0, 1
-116, 97, 65, 299, 19, 52, 1, 0, 1
-116, 108, 495, 302, 106, 37, 1, 2, 1
-116, 114, 163, 282, 18, 53, 1, 0, 1
-117, 1, 376, 303, 72, 55, 1, 2, 1
-117, 3, 488, 322, 136, 153, 1, 2, 1
-117, 4, 872, 320, 45, 117, 1, 0, 1
-117, 7, 0, 290, 22, 80, 1, 0, 1
-117, 9, 15, 288, 31, 82, 1, 0, 1
-117, 18, 128, 289, 21, 68, 1, 0, 1
-117, 41, 94, 288, 27, 71, 1, 0, 1
-117, 48, 80, 292, 19, 61, 1, 0, 1
-117, 55, 304, 262, 14, 31, 1, 0, 1
-117, 61, 417, 266, 33, 23, 1, 2, 1
-117, 82, 490, 252, 20, 15, 1, 2, 1
-117, 85, 751, 262, 12, 34, 1, 0, 1
-117, 97, 60, 299, 18, 53, 1, 0, 1
-117, 108, 492, 303, 106, 37, 1, 2, 1
-117, 114, 157, 279, 20, 58, 1, 0, 1
-118, 1, 372, 302, 73, 56, 1, 2, 1
-118, 3, 485, 323, 136, 153, 1, 2, 1
-118, 4, 872, 320, 46, 119, 1, 0, 1
-118, 7, 0, 294, 19, 77, 1, 0, 1
-118, 9, 10, 287, 31, 84, 1, 0, 1
-118, 18, 123, 288, 21, 71, 1, 0, 1
-118, 41, 88, 290, 28, 70, 1, 0, 1
-118, 48, 73, 297, 18, 58, 1, 0, 1
-118, 55, 301, 261, 14, 33, 1, 0, 1
-118, 57, 264, 261, 13, 36, 1, 0, 1
-118, 61, 415, 265, 33, 24, 1, 2, 1
-118, 82, 488, 252, 20, 15, 1, 2, 1
-118, 85, 743, 261, 12, 32, 1, 0, 1
-118, 97, 54, 299, 19, 53, 1, 0, 1
-118, 108, 484, 302, 116, 43, 1, 2, 1
-118, 114, 154, 280, 19, 58, 1, 0, 1
-119, 1, 369, 302, 74, 57, 1, 2, 1
-119, 3, 482, 323, 137, 154, 1, 2, 1
-119, 4, 873, 321, 46, 119, 1, 0, 1
-119, 7, 0, 295, 15, 77, 1, 0, 1
-119, 9, 5, 287, 32, 86, 1, 0, 1
-119, 18, 118, 288, 22, 73, 1, 0, 1
-119, 41, 83, 291, 29, 74, 1, 0, 1
-119, 48, 65, 299, 19, 59, 1, 0, 1
-119, 55, 297, 261, 15, 33, 1, 0, 1
-119, 57, 262, 261, 13, 36, 1, 0, 1
-119, 61, 413, 265, 33, 24, 1, 2, 1
-119, 82, 487, 252, 18, 15, 1, 2, 1
-119, 85, 741, 261, 12, 31, 1, 0, 1
-119, 97, 50, 301, 18, 51, 1, 0, 1
-119, 108, 485, 302, 109, 40, 1, 2, 1
-119, 114, 150, 281, 19, 57, 1, 0, 1
-120, 1, 367, 302, 73, 57, 1, 2, 1
-120, 3, 478, 324, 138, 155, 1, 2, 1
-120, 4, 873, 322, 47, 119, 1, 0, 1
-120, 9, 0, 286, 32, 89, 1, 0, 1
-120, 18, 112, 289, 22, 74, 1, 0, 1
-120, 41, 77, 291, 29, 76, 1, 0, 1
-120, 48, 58, 299, 20, 62, 1, 0, 1
-120, 55, 295, 262, 15, 32, 1, 0, 1
-120, 57, 260, 262, 12, 33, 1, 0, 1
-120, 61, 411, 265, 33, 24, 1, 2, 1
-120, 82, 484, 252, 19, 14, 1, 2, 1
-120, 97, 43, 301, 20, 54, 1, 0, 1
-120, 108, 486, 302, 101, 38, 1, 2, 1
-120, 114, 145, 279, 21, 61, 1, 0, 1
-121, 1, 364, 301, 75, 58, 1, 2, 1
-121, 3, 475, 323, 139, 156, 1, 2, 1
-121, 4, 876, 324, 47, 120, 1, 0, 1
-121, 9, 0, 279, 29, 96, 1, 0, 1
-121, 18, 107, 288, 23, 77, 1, 0, 1
-121, 41, 73, 294, 27, 72, 1, 0, 1
-121, 48, 52, 300, 20, 63, 1, 0, 1
-121, 55, 292, 262, 14, 32, 1, 0, 1
-121, 57, 257, 262, 12, 33, 1, 0, 1
-121, 61, 408, 264, 34, 24, 1, 2, 1
-121, 82, 482, 252, 19, 14, 1, 2, 1
-121, 85, 738, 261, 13, 33, 1, 0, 1
-121, 97, 38, 301, 18, 54, 1, 0, 1
-121, 108, 487, 302, 95, 35, 1, 2, 1
-121, 114, 141, 279, 21, 61, 1, 0, 1
-122, 1, 360, 300, 77, 59, 1, 2, 1
-122, 3, 473, 322, 139, 157, 1, 2, 1
-122, 4, 877, 324, 48, 122, 1, 0, 1
-122, 9, 0, 279, 26, 97, 1, 0, 1
-122, 18, 102, 289, 23, 75, 1, 0, 1
-122, 41, 68, 295, 27, 71, 1, 0, 1
-122, 48, 47, 301, 20, 63, 1, 0, 1
-122, 55, 289, 262, 15, 32, 1, 0, 1
-122, 57, 254, 262, 12, 34, 1, 0, 1
-122, 61, 406, 264, 33, 23, 1, 2, 1
-122, 82, 481, 252, 18, 14, 1, 2, 1
-122, 85, 733, 260, 13, 32, 1, 0, 1
-122, 97, 32, 302, 19, 55, 1, 0, 1
-122, 108, 488, 301, 87, 33, 1, 2, 1
-122, 114, 136, 278, 22, 63, 1, 0, 1
-123, 1, 358, 300, 77, 60, 1, 2, 1
-123, 3, 471, 322, 139, 158, 1, 2, 1
-123, 4, 879, 323, 49, 127, 1, 0, 1
-123, 9, 0, 282, 23, 96, 1, 0, 1
-123, 18, 97, 288, 23, 78, 1, 0, 1
-123, 41, 63, 297, 27, 69, 1, 0, 1
-123, 48, 40, 302, 20, 63, 1, 0, 1
-123, 55, 286, 262, 15, 33, 1, 0, 1
-123, 57, 251, 262, 12, 33, 1, 0, 1
-123, 61, 404, 264, 33, 24, 1, 2, 1
-123, 82, 479, 252, 19, 13, 1, 2, 1
-123, 85, 730, 260, 12, 31, 1, 0, 1
-123, 97, 27, 303, 18, 55, 1, 0, 1
-123, 108, 488, 301, 85, 32, 1, 2, 1
-123, 114, 132, 277, 23, 66, 1, 0, 1
-124, 1, 357, 301, 75, 58, 1, 2, 1
-124, 3, 467, 322, 140, 159, 1, 2, 1
-124, 4, 881, 323, 50, 128, 1, 0, 1
-124, 9, 0, 290, 19, 88, 1, 0, 1
-124, 18, 92, 292, 23, 77, 1, 0, 1
-124, 41, 58, 298, 27, 70, 1, 0, 1
-124, 48, 35, 304, 19, 61, 1, 0, 1
-124, 55, 282, 261, 17, 35, 1, 0, 1
-124, 57, 248, 262, 11, 33, 1, 0, 1
-124, 61, 402, 264, 33, 23, 1, 2, 1
-124, 82, 477, 252, 19, 14, 1, 2, 1
-124, 85, 727, 260, 13, 31, 1, 0, 1
-124, 97, 21, 303, 19, 56, 1, 0, 1
-124, 108, 488, 300, 81, 30, 1, 2, 1
-124, 114, 128, 278, 22, 65, 1, 0, 1
-125, 1, 355, 300, 75, 59, 1, 2, 1
-125, 3, 464, 322, 141, 160, 1, 2, 1
-125, 4, 883, 323, 50, 130, 1, 0, 1
-125, 7, 0, 308, 13, 53, 1, 0, 1
-125, 9, 0, 291, 15, 88, 1, 0, 1
-125, 18, 87, 292, 23, 77, 1, 0, 1
-125, 41, 53, 302, 26, 69, 1, 0, 1
-125, 48, 29, 306, 20, 63, 1, 0, 1
-125, 55, 279, 261, 17, 35, 1, 0, 1
-125, 57, 246, 262, 11, 31, 1, 0, 1
-125, 61, 401, 264, 32, 23, 1, 2, 1
-125, 82, 475, 253, 19, 14, 1, 2, 1
-125, 85, 725, 260, 13, 32, 1, 0, 1
-125, 97, 16, 306, 18, 55, 1, 0, 1
-125, 108, 484, 301, 80, 29, 1, 2, 1
-125, 114, 124, 278, 22, 65, 1, 0, 1
-126, 1, 352, 301, 75, 58, 1, 2, 1
-126, 3, 460, 322, 143, 163, 1, 2, 1
-126, 4, 884, 325, 51, 130, 1, 0, 1
-126, 7, 0, 310, 11, 51, 1, 0, 1
-126, 18, 82, 292, 24, 78, 1, 0, 1
-126, 41, 48, 304, 26, 68, 1, 0, 1
-126, 48, 24, 306, 20, 65, 1, 0, 1
-126, 55, 277, 262, 16, 34, 1, 0, 1
-126, 57, 244, 263, 11, 31, 1, 0, 1
-126, 61, 399, 264, 32, 23, 1, 2, 1
-126, 82, 473, 253, 19, 14, 1, 2, 1
-126, 85, 723, 260, 13, 33, 1, 0, 1
-126, 97, 12, 307, 18, 56, 1, 0, 1
-126, 101, 703, 263, 13, 32, 1, 0, 1
-126, 108, 479, 301, 83, 30, 1, 2, 1
-126, 114, 119, 279, 23, 67, 1, 0, 1
-127, 1, 350, 301, 74, 57, 1, 2, 1
-127, 3, 457, 321, 144, 165, 1, 2, 1
-127, 4, 887, 325, 51, 131, 1, 0, 1
-127, 18, 76, 294, 24, 78, 1, 0, 1
-127, 41, 41, 304, 28, 71, 1, 0, 1
-127, 48, 17, 308, 20, 62, 1, 0, 1
-127, 55, 275, 262, 17, 35, 1, 0, 1
-127, 57, 240, 262, 12, 31, 1, 0, 1
-127, 61, 397, 264, 32, 23, 1, 2, 1
-127, 82, 471, 253, 19, 14, 1, 2, 1
-127, 85, 720, 260, 13, 33, 1, 0, 1
-127, 97, 3, 309, 18, 53, 1, 0, 1
-127, 101, 701, 262, 14, 33, 1, 0, 1
-127, 108, 472, 301, 92, 34, 1, 2, 1
-127, 114, 116, 279, 23, 68, 1, 0, 1
-128, 1, 347, 301, 75, 58, 1, 2, 1
-128, 3, 452, 319, 146, 168, 1, 2, 1
-128, 4, 890, 323, 53, 137, 1, 0, 1
-128, 18, 71, 295, 24, 78, 1, 0, 1
-128, 41, 36, 304, 27, 71, 1, 0, 1
-128, 48, 11, 308, 20, 64, 1, 0, 1
-128, 55, 272, 261, 17, 35, 1, 0, 1
-128, 57, 237, 264, 11, 29, 1, 0, 1
-128, 61, 395, 265, 32, 23, 1, 2, 1
-128, 82, 470, 253, 19, 14, 1, 2, 1
-128, 85, 718, 260, 13, 33, 1, 0, 1
-128, 97, 0, 309, 16, 53, 1, 0, 1
-128, 108, 468, 301, 95, 35, 1, 2, 1
-128, 114, 112, 279, 23, 69, 1, 0, 1
-129, 1, 345, 302, 74, 57, 1, 2, 1
-129, 3, 451, 319, 146, 169, 1, 2, 1
-129, 4, 892, 324, 54, 140, 1, 0, 1
-129, 18, 65, 297, 25, 78, 1, 0, 1
-129, 41, 29, 303, 30, 75, 1, 0, 1
-129, 48, 4, 309, 21, 63, 1, 0, 1
-129, 55, 270, 262, 17, 35, 1, 0, 1
-129, 57, 235, 264, 11, 30, 1, 0, 1
-129, 61, 393, 265, 31, 22, 1, 2, 1
-129, 82, 468, 252, 19, 15, 1, 2, 1
-129, 85, 716, 260, 13, 32, 1, 0, 1
-129, 97, 0, 310, 11, 53, 1, 0, 1
-129, 108, 459, 301, 105, 39, 1, 2, 1
-129, 114, 108, 278, 23, 71, 1, 0, 1
-130, 1, 343, 303, 73, 56, 1, 2, 1
-130, 3, 448, 320, 148, 171, 1, 2, 1
-130, 4, 894, 324, 56, 144, 1, 0, 1
-130, 18, 61, 299, 24, 77, 1, 0, 1
-130, 41, 23, 302, 30, 77, 1, 0, 1
-130, 48, 0, 308, 21, 67, 1, 0, 1
-130, 55, 267, 263, 17, 34, 1, 0, 1
-130, 57, 231, 264, 12, 31, 1, 0, 1
-130, 61, 390, 264, 33, 23, 1, 2, 1
-130, 82, 465, 252, 20, 16, 1, 2, 1
-130, 85, 714, 260, 13, 33, 1, 0, 1
-130, 108, 462, 301, 96, 37, 1, 2, 1
-130, 114, 104, 279, 22, 71, 1, 0, 1
-131, 1, 340, 303, 72, 55, 1, 2, 1
-131, 3, 446, 325, 145, 166, 1, 2, 1
-131, 4, 897, 326, 55, 143, 1, 0, 1
-131, 18, 54, 299, 25, 78, 1, 0, 1
-131, 41, 18, 301, 30, 77, 1, 0, 1
-131, 48, 0, 309, 15, 67, 1, 0, 1
-131, 55, 265, 262, 16, 35, 1, 0, 1
-131, 57, 229, 264, 11, 30, 1, 0, 1
-131, 61, 389, 265, 31, 22, 1, 2, 1
-131, 82, 463, 253, 20, 15, 1, 2, 1
-131, 85, 712, 260, 13, 34, 1, 0, 1
-131, 101, 695, 262, 14, 33, 1, 0, 1
-131, 108, 456, 301, 103, 40, 1, 2, 1
-131, 114, 99, 281, 22, 69, 1, 0, 1
-132, 1, 338, 303, 71, 54, 1, 2, 1
-132, 3, 443, 326, 145, 165, 1, 2, 1
-132, 4, 899, 329, 56, 143, 1, 0, 1
-132, 18, 47, 299, 25, 80, 1, 0, 1
-132, 41, 13, 306, 28, 72, 1, 0, 1
-132, 48, 0, 302, 16, 74, 1, 0, 1
-132, 55, 262, 262, 17, 35, 1, 0, 1
-132, 57, 226, 264, 11, 29, 1, 0, 1
-132, 61, 387, 264, 31, 23, 1, 2, 1
-132, 82, 461, 254, 18, 13, 1, 2, 1
-132, 85, 710, 260, 13, 34, 1, 0, 1
-132, 101, 693, 262, 14, 33, 1, 0, 1
-132, 108, 451, 300, 107, 42, 1, 2, 1
-132, 114, 95, 282, 22, 69, 1, 0, 1
-133, 1, 335, 302, 71, 55, 1, 2, 1
-133, 3, 441, 327, 145, 166, 1, 2, 1
-133, 4, 902, 330, 56, 147, 1, 0, 1
-133, 18, 40, 300, 25, 80, 1, 0, 1
-133, 41, 6, 305, 30, 75, 1, 0, 1
-133, 48, 0, 300, 16, 78, 1, 0, 1
-133, 55, 260, 262, 17, 36, 1, 0, 1
-133, 57, 224, 265, 11, 29, 1, 0, 1
-133, 61, 385, 263, 31, 23, 1, 2, 1
-133, 82, 459, 254, 19, 14, 1, 2, 1
-133, 85, 707, 261, 13, 33, 1, 0, 1
-133, 108, 449, 300, 106, 43, 1, 2, 1
-133, 114, 91, 283, 22, 67, 1, 0, 1
-134, 1, 333, 303, 71, 53, 1, 2, 1
-134, 3, 438, 329, 144, 165, 1, 2, 1
-134, 4, 903, 331, 56, 148, 1, 0, 1
-134, 18, 35, 303, 25, 79, 1, 0, 1
-134, 41, 0, 305, 30, 77, 1, 0, 1
-134, 48, 0, 300, 11, 79, 1, 0, 1
-134, 55, 258, 264, 16, 36, 1, 0, 1
-134, 57, 220, 266, 12, 30, 1, 0, 1
-134, 61, 384, 264, 31, 22, 1, 2, 1
-134, 82, 457, 253, 20, 15, 1, 2, 1
-134, 85, 706, 261, 13, 33, 1, 0, 1
-134, 108, 447, 302, 104, 42, 1, 2, 1
-134, 114, 86, 284, 21, 68, 1, 0, 1
-135, 1, 330, 303, 71, 53, 1, 2, 1
-135, 3, 433, 330, 145, 165, 1, 2, 1
-135, 4, 903, 332, 56, 151, 1, 0, 1
-135, 18, 27, 297, 27, 86, 1, 0, 1
-135, 41, 0, 308, 25, 76, 1, 0, 1
-135, 55, 255, 263, 17, 37, 1, 0, 1
-135, 57, 217, 266, 11, 29, 1, 0, 1
-135, 61, 382, 264, 31, 22, 1, 2, 1
-135, 82, 456, 254, 19, 14, 1, 2, 1
-135, 85, 703, 260, 14, 34, 1, 0, 1
-135, 108, 447, 302, 99, 40, 1, 2, 1
-135, 114, 82, 287, 21, 65, 1, 0, 1
-136, 1, 327, 303, 71, 53, 1, 2, 1
-136, 3, 430, 331, 145, 164, 1, 2, 1
-136, 4, 905, 333, 54, 154, 1, 0, 1
-136, 18, 19, 293, 29, 92, 1, 0, 1
-136, 41, 0, 311, 21, 75, 1, 0, 1
-136, 55, 253, 263, 16, 37, 1, 0, 1
-136, 57, 214, 266, 12, 29, 1, 0, 1
-136, 61, 379, 264, 31, 22, 1, 2, 1
-136, 82, 453, 252, 21, 16, 1, 2, 1
-136, 85, 701, 260, 14, 35, 1, 0, 1
-136, 108, 446, 301, 96, 40, 1, 2, 1
-136, 114, 77, 284, 22, 69, 1, 0, 1
-136, 166, 336, 243, 28, 27, 1, 2, 1
-137, 1, 324, 302, 73, 55, 1, 2, 1
-137, 3, 427, 330, 145, 166, 1, 2, 1
-137, 4, 906, 337, 53, 154, 1, 0, 1
-137, 18, 12, 289, 31, 98, 1, 0, 1
-137, 41, 0, 312, 19, 76, 1, 0, 1
-137, 55, 250, 263, 17, 37, 1, 0, 1
-137, 57, 211, 267, 12, 30, 1, 0, 1
-137, 61, 376, 262, 33, 24, 1, 2, 1
-137, 82, 451, 251, 22, 17, 1, 2, 1
-137, 85, 699, 260, 14, 35, 1, 0, 1
-137, 108, 445, 300, 94, 40, 1, 2, 1
-137, 114, 73, 282, 23, 72, 1, 0, 1
-137, 166, 333, 243, 28, 27, 1, 2, 1
-137, 168, 850, 275, 23, 59, 1, 0, 1
-138, 1, 321, 301, 74, 56, 1, 2, 1
-138, 3, 426, 335, 141, 160, 1, 2, 1
-138, 4, 910, 340, 49, 151, 1, 0, 1
-138, 18, 6, 290, 30, 99, 1, 0, 1
-138, 41, 0, 313, 14, 77, 1, 0, 1
-138, 55, 247, 263, 17, 37, 1, 0, 1
-138, 57, 208, 267, 13, 30, 1, 0, 1
-138, 61, 375, 262, 31, 23, 1, 2, 1
-138, 82, 450, 252, 21, 16, 1, 2, 1
-138, 85, 697, 260, 14, 35, 1, 0, 1
-138, 108, 441, 300, 95, 40, 1, 2, 1
-138, 114, 68, 281, 23, 75, 1, 0, 1
-138, 166, 331, 243, 29, 27, 1, 2, 1
-138, 168, 850, 275, 23, 59, 1, 0, 1
-139, 1, 319, 300, 74, 55, 1, 2, 1
-139, 3, 424, 336, 141, 159, 1, 2, 1
-139, 4, 911, 342, 48, 150, 1, 0, 1
-139, 18, 0, 289, 31, 101, 1, 0, 1
-139, 55, 246, 263, 16, 37, 1, 0, 1
-139, 57, 206, 266, 12, 29, 1, 0, 1
-139, 61, 373, 261, 32, 23, 1, 2, 1
-139, 82, 448, 252, 22, 17, 1, 2, 1
-139, 85, 695, 260, 14, 35, 1, 0, 1
-139, 108, 439, 299, 95, 40, 1, 2, 1
-139, 114, 63, 279, 24, 77, 1, 0, 1
-139, 168, 849, 275, 23, 58, 1, 0, 1
-140, 1, 317, 298, 73, 56, 1, 2, 1
-140, 3, 420, 334, 142, 160, 1, 2, 1
-140, 4, 914, 343, 45, 150, 1, 0, 1
-140, 8, 782, 276, 20, 56, 1, 0, 1
-140, 18, 0, 288, 26, 103, 1, 0, 1
-140, 55, 244, 263, 16, 37, 1, 0, 1
-140, 57, 203, 266, 12, 29, 1, 0, 1
-140, 61, 372, 261, 31, 23, 1, 2, 1
-140, 82, 447, 253, 20, 15, 1, 2, 1
-140, 85, 692, 259, 15, 35, 1, 0, 1
-140, 108, 438, 299, 92, 39, 1, 2, 1
-140, 114, 59, 278, 23, 77, 1, 0, 1
-140, 168, 849, 275, 22, 57, 1, 0, 1
-141, 1, 315, 298, 74, 56, 1, 2, 1
-141, 3, 416, 332, 145, 162, 1, 2, 1
-141, 4, 916, 345, 43, 149, 1, 0, 1
-141, 8, 780, 275, 20, 57, 1, 0, 1
-141, 18, 0, 288, 23, 105, 1, 0, 1
-141, 55, 242, 263, 15, 37, 1, 0, 1
-141, 57, 201, 266, 12, 30, 1, 0, 1
-141, 61, 370, 262, 32, 24, 1, 2, 1
-141, 82, 446, 253, 19, 15, 1, 2, 1
-141, 85, 691, 259, 14, 34, 1, 0, 1
-141, 108, 437, 299, 90, 38, 1, 2, 1
-141, 114, 54, 278, 24, 78, 1, 0, 1
-141, 168, 850, 276, 21, 55, 1, 0, 1
-142, 1, 313, 298, 74, 56, 1, 2, 1
-142, 3, 413, 330, 148, 167, 1, 2, 1
-142, 4, 920, 350, 39, 142, 1, 0, 1
-142, 8, 779, 275, 19, 56, 1, 0, 1
-142, 18, 0, 285, 21, 112, 1, 0, 1
-142, 55, 240, 263, 16, 36, 1, 0, 1
-142, 57, 199, 266, 13, 31, 1, 0, 1
-142, 61, 369, 262, 31, 23, 1, 2, 1
-142, 82, 445, 252, 20, 15, 1, 2, 1
-142, 85, 689, 259, 14, 34, 1, 0, 1
-142, 108, 436, 298, 88, 38, 1, 2, 1
-142, 168, 850, 277, 21, 54, 1, 0, 1
-143, 1, 311, 296, 75, 57, 1, 2, 1
-143, 3, 409, 329, 150, 167, 1, 2, 1
-143, 4, 922, 349, 37, 144, 1, 0, 1
-143, 8, 778, 274, 20, 57, 1, 0, 1
-143, 18, 0, 284, 16, 114, 1, 0, 1
-143, 55, 238, 262, 15, 36, 1, 0, 1
-143, 57, 195, 265, 13, 31, 1, 0, 1
-143, 61, 367, 261, 31, 23, 1, 2, 1
-143, 82, 444, 252, 19, 15, 1, 2, 1
-143, 85, 687, 259, 14, 33, 1, 0, 1
-143, 108, 431, 298, 93, 40, 1, 2, 1
-143, 168, 850, 281, 20, 51, 1, 0, 1
-144, 1, 309, 296, 74, 57, 1, 2, 1
-144, 3, 406, 333, 147, 163, 1, 2, 1
-144, 4, 925, 354, 34, 135, 1, 0, 1
-144, 8, 776, 275, 20, 56, 1, 0, 1
-144, 55, 236, 262, 15, 37, 1, 0, 1
-144, 57, 193, 265, 13, 31, 1, 0, 1
-144, 61, 366, 262, 30, 22, 1, 2, 1
-144, 82, 442, 252, 20, 15, 1, 2, 1
-144, 85, 685, 260, 14, 34, 1, 0, 1
-144, 108, 429, 298, 92, 40, 1, 2, 1
-144, 168, 849, 284, 20, 52, 1, 0, 1
-145, 1, 306, 296, 72, 55, 1, 2, 1
-145, 3, 402, 332, 148, 164, 1, 2, 1
-145, 4, 927, 356, 32, 134, 1, 0, 1
-145, 8, 773, 276, 20, 56, 1, 0, 1
-145, 55, 234, 263, 15, 37, 1, 0, 1
-145, 57, 191, 264, 13, 31, 1, 0, 1
-145, 61, 364, 261, 31, 23, 1, 2, 1
-145, 82, 440, 252, 20, 16, 1, 2, 1
-145, 85, 683, 260, 14, 34, 1, 0, 1
-145, 108, 427, 298, 88, 38, 1, 2, 1
-145, 168, 847, 286, 20, 51, 1, 0, 1
-146, 1, 304, 296, 71, 54, 1, 2, 1
-146, 3, 398, 329, 150, 167, 1, 2, 1
-146, 8, 772, 276, 19, 57, 1, 0, 1
-146, 55, 231, 262, 15, 37, 1, 0, 1
-146, 57, 188, 264, 14, 32, 1, 0, 1
-146, 61, 363, 260, 30, 23, 1, 2, 1
-146, 82, 438, 252, 21, 17, 1, 2, 1
-146, 108, 427, 299, 84, 37, 1, 2, 1
-146, 168, 846, 287, 20, 49, 1, 0, 1
-147, 1, 303, 297, 71, 54, 1, 2, 1
-147, 3, 395, 329, 152, 169, 1, 2, 1
-147, 8, 770, 277, 19, 57, 1, 0, 1
-147, 55, 229, 263, 15, 36, 1, 0, 1
-147, 57, 186, 265, 14, 32, 1, 0, 1
-147, 61, 362, 261, 29, 22, 1, 2, 1
-147, 82, 437, 254, 19, 15, 1, 2, 1
-147, 108, 426, 300, 81, 36, 1, 2, 1
-147, 168, 844, 287, 20, 51, 1, 0, 1
-148, 1, 301, 296, 71, 55, 1, 2, 1
-148, 3, 393, 329, 151, 169, 1, 2, 1
-148, 8, 767, 277, 20, 58, 1, 0, 1
-148, 55, 226, 263, 15, 37, 1, 0, 1
-148, 57, 183, 266, 13, 30, 1, 0, 1
-148, 61, 359, 261, 31, 24, 1, 2, 1
-148, 82, 435, 253, 19, 15, 1, 2, 1
-148, 85, 677, 261, 14, 34, 1, 0, 1
-148, 108, 423, 300, 83, 36, 1, 2, 1
-148, 168, 843, 288, 20, 49, 1, 0, 1
-149, 1, 298, 296, 72, 55, 1, 2, 1
-149, 3, 389, 327, 153, 170, 1, 2, 1
-149, 8, 764, 278, 21, 57, 1, 0, 1
-149, 55, 223, 264, 15, 37, 1, 0, 1
-149, 57, 180, 266, 14, 32, 1, 0, 1
-149, 61, 358, 262, 29, 23, 1, 2, 1
-149, 82, 433, 254, 19, 15, 1, 2, 1
-149, 85, 674, 261, 15, 35, 1, 0, 1
-149, 108, 424, 302, 77, 33, 1, 2, 1
-149, 168, 842, 289, 20, 48, 1, 0, 1
-150, 1, 296, 296, 71, 54, 1, 2, 1
-150, 3, 385, 326, 154, 171, 1, 2, 1
-150, 8, 761, 277, 22, 57, 1, 0, 1
-150, 55, 221, 264, 15, 37, 1, 0, 1
-150, 57, 177, 266, 14, 32, 1, 0, 1
-150, 61, 356, 261, 30, 23, 1, 2, 1
-150, 82, 432, 254, 19, 15, 1, 2, 1
-150, 85, 672, 261, 14, 34, 1, 0, 1
-150, 108, 421, 301, 77, 33, 1, 2, 1
-150, 114, 16, 297, 21, 66, 1, 0, 1
-150, 168, 841, 288, 20, 48, 1, 0, 1
-151, 1, 295, 297, 69, 53, 1, 2, 1
-151, 3, 382, 326, 153, 171, 1, 2, 1
-151, 8, 758, 278, 22, 57, 1, 0, 1
-151, 55, 217, 264, 16, 37, 1, 0, 1
-151, 57, 174, 267, 14, 32, 1, 0, 1
-151, 61, 354, 262, 29, 22, 1, 2, 1
-151, 82, 429, 254, 21, 16, 1, 2, 1
-151, 85, 668, 262, 15, 33, 1, 0, 1
-151, 108, 418, 301, 79, 33, 1, 2, 1
-151, 114, 12, 296, 21, 68, 1, 0, 1
-151, 168, 838, 284, 22, 53, 1, 0, 1
-152, 1, 293, 296, 69, 53, 1, 2, 1
-152, 3, 378, 326, 152, 171, 1, 2, 1
-152, 8, 755, 278, 23, 57, 1, 0, 1
-152, 55, 214, 265, 15, 37, 1, 0, 1
-152, 57, 171, 267, 14, 32, 1, 0, 1
-152, 61, 352, 262, 29, 22, 1, 2, 1
-152, 82, 427, 254, 21, 16, 1, 2, 1
-152, 85, 666, 262, 14, 33, 1, 0, 1
-152, 108, 414, 301, 79, 33, 1, 2, 1
-152, 114, 7, 298, 21, 67, 1, 0, 1
-152, 166, 303, 243, 29, 27, 1, 2, 1
-152, 168, 837, 284, 21, 52, 1, 0, 1
-153, 1, 290, 296, 69, 53, 1, 2, 1
-153, 3, 374, 326, 152, 171, 1, 2, 1
-153, 8, 753, 277, 23, 58, 1, 0, 1
-153, 55, 211, 265, 15, 38, 1, 0, 1
-153, 57, 167, 267, 15, 33, 1, 0, 1
-153, 61, 350, 262, 28, 22, 1, 2, 1
-153, 82, 426, 255, 18, 15, 1, 2, 1
-153, 85, 663, 260, 15, 35, 1, 0, 1
-153, 108, 410, 301, 80, 33, 1, 2, 1
-153, 114, 3, 299, 21, 67, 1, 0, 1
-153, 166, 302, 244, 27, 26, 1, 2, 1
-153, 168, 837, 285, 19, 47, 1, 0, 1
-154, 1, 286, 296, 68, 52, 1, 2, 1
-154, 3, 371, 326, 152, 171, 1, 2, 1
-154, 8, 750, 277, 23, 57, 1, 0, 1
-154, 55, 208, 266, 15, 37, 1, 0, 1
-154, 57, 164, 267, 15, 34, 1, 0, 1
-154, 61, 347, 262, 28, 21, 1, 2, 1
-154, 82, 423, 255, 19, 15, 1, 2, 1
-154, 85, 660, 260, 16, 35, 1, 0, 1
-154, 108, 406, 301, 80, 34, 1, 2, 1
-154, 166, 298, 244, 29, 27, 1, 2, 1
-154, 168, 834, 284, 20, 51, 1, 0, 1
-155, 1, 283, 296, 68, 52, 1, 2, 1
-155, 3, 369, 328, 149, 167, 1, 2, 1
-155, 8, 747, 277, 24, 57, 1, 0, 1
-155, 55, 205, 265, 15, 39, 1, 0, 1
-155, 57, 161, 267, 15, 35, 1, 0, 1
-155, 61, 345, 262, 27, 21, 1, 2, 1
-155, 82, 421, 255, 20, 15, 1, 2, 1
-155, 108, 403, 301, 81, 34, 1, 2, 1
-155, 166, 295, 243, 29, 27, 1, 2, 1
-155, 168, 834, 285, 19, 49, 1, 0, 1
-156, 1, 280, 296, 69, 53, 1, 2, 1
-156, 3, 364, 327, 148, 167, 1, 2, 1
-156, 8, 743, 275, 23, 59, 1, 0, 1
-156, 55, 202, 266, 16, 39, 1, 0, 1
-156, 57, 157, 267, 16, 35, 1, 0, 1
-156, 61, 343, 262, 27, 21, 1, 2, 1
-156, 82, 419, 255, 21, 16, 1, 2, 1
-156, 85, 653, 259, 16, 35, 1, 0, 1
-156, 108, 399, 301, 82, 34, 1, 2, 1
-156, 166, 294, 244, 27, 26, 1, 2, 1
-156, 168, 834, 286, 18, 46, 1, 0, 1
-157, 1, 278, 296, 69, 52, 1, 2, 1
-157, 3, 361, 327, 149, 168, 1, 2, 1
-157, 8, 740, 275, 23, 57, 1, 0, 1
-157, 55, 199, 266, 15, 39, 1, 0, 1
-157, 57, 154, 269, 14, 34, 1, 0, 1
-157, 61, 341, 262, 27, 21, 1, 2, 1
-157, 82, 417, 256, 20, 15, 1, 2, 1
-157, 85, 650, 259, 16, 35, 1, 0, 1
-157, 108, 393, 300, 85, 36, 1, 2, 1
-157, 166, 290, 243, 29, 27, 1, 2, 1
-157, 168, 833, 287, 18, 44, 1, 0, 1
-158, 1, 275, 296, 70, 53, 1, 2, 1
-158, 3, 357, 328, 148, 167, 1, 2, 1
-158, 8, 738, 275, 22, 55, 1, 0, 1
-158, 55, 196, 267, 15, 38, 1, 0, 1
-158, 57, 151, 270, 15, 34, 1, 0, 1
-158, 61, 338, 263, 27, 21, 1, 2, 1
-158, 82, 415, 256, 18, 15, 1, 2, 1
-158, 85, 648, 259, 16, 36, 1, 0, 1
-158, 108, 390, 299, 86, 37, 1, 2, 1
-158, 166, 288, 243, 29, 27, 1, 2, 1
-159, 1, 273, 296, 69, 53, 1, 2, 1
-159, 3, 355, 332, 146, 164, 1, 2, 1
-159, 8, 735, 272, 23, 58, 1, 0, 1
-159, 55, 193, 268, 15, 38, 1, 0, 1
-159, 57, 148, 271, 15, 34, 1, 0, 1
-159, 61, 336, 263, 28, 21, 1, 2, 1
-159, 82, 414, 257, 18, 13, 1, 2, 1
-159, 85, 646, 259, 16, 36, 1, 0, 1
-159, 108, 385, 299, 90, 39, 1, 2, 1
-160, 1, 271, 296, 68, 52, 1, 2, 1
-160, 3, 353, 334, 144, 161, 1, 2, 1
-160, 8, 732, 273, 22, 58, 1, 0, 1
-160, 55, 190, 270, 15, 37, 1, 0, 1
-160, 57, 144, 271, 15, 35, 1, 0, 1
-160, 61, 335, 263, 27, 21, 1, 2, 1
-160, 82, 411, 257, 19, 14, 1, 2, 1
-160, 108, 382, 299, 89, 38, 1, 2, 1
-161, 1, 270, 296, 67, 51, 1, 2, 1
-161, 3, 349, 331, 148, 164, 1, 2, 1
-161, 8, 730, 273, 22, 57, 1, 0, 1
-161, 55, 187, 270, 15, 37, 1, 0, 1
-161, 57, 142, 273, 14, 33, 1, 0, 1
-161, 61, 332, 263, 27, 21, 1, 2, 1
-161, 82, 409, 257, 20, 15, 1, 2, 1
-161, 85, 640, 259, 17, 36, 1, 0, 1
-161, 108, 381, 300, 89, 38, 1, 2, 1
-162, 1, 268, 296, 66, 51, 1, 2, 1
-162, 3, 346, 330, 149, 165, 1, 2, 1
-162, 8, 729, 274, 21, 55, 1, 0, 1
-162, 55, 185, 270, 15, 37, 1, 0, 1
-162, 57, 139, 273, 15, 34, 1, 0, 1
-162, 61, 330, 263, 27, 21, 1, 2, 1
-162, 82, 407, 257, 21, 16, 1, 2, 1
-162, 85, 638, 258, 17, 37, 1, 0, 1
-162, 108, 380, 301, 86, 37, 1, 2, 1
-163, 1, 266, 296, 67, 51, 1, 2, 1
-163, 3, 342, 329, 148, 165, 1, 2, 1
-163, 8, 726, 275, 21, 55, 1, 0, 1
-163, 55, 182, 271, 15, 37, 1, 0, 1
-163, 57, 136, 273, 15, 35, 1, 0, 1
-163, 61, 329, 263, 27, 21, 1, 2, 1
-163, 82, 405, 257, 21, 16, 1, 2, 1
-163, 85, 635, 258, 17, 37, 1, 0, 1
-163, 108, 375, 300, 89, 39, 1, 2, 1
-164, 1, 261, 295, 69, 52, 1, 2, 1
-164, 3, 338, 328, 149, 165, 1, 2, 1
-164, 8, 723, 273, 22, 58, 1, 0, 1
-164, 55, 179, 270, 15, 38, 1, 0, 1
-164, 57, 133, 272, 15, 36, 1, 0, 1
-164, 61, 328, 263, 26, 20, 1, 2, 1
-164, 82, 404, 257, 21, 16, 1, 2, 1
-164, 108, 372, 300, 89, 39, 1, 2, 1
-165, 1, 259, 296, 68, 52, 1, 2, 1
-165, 3, 334, 328, 148, 165, 1, 2, 1
-165, 8, 720, 273, 23, 58, 1, 0, 1
-165, 55, 177, 271, 15, 38, 1, 0, 1
-165, 57, 130, 273, 15, 35, 1, 0, 1
-165, 61, 325, 263, 27, 20, 1, 2, 1
-165, 82, 401, 257, 21, 16, 1, 2, 1
-165, 85, 626, 255, 18, 39, 1, 0, 1
-165, 108, 370, 300, 87, 38, 1, 2, 1
-166, 1, 258, 296, 68, 51, 1, 2, 1
-166, 3, 331, 329, 147, 163, 1, 2, 1
-166, 8, 718, 272, 22, 58, 1, 0, 1
-166, 55, 175, 272, 15, 38, 1, 0, 1
-166, 57, 127, 273, 15, 37, 1, 0, 1
-166, 61, 323, 264, 27, 19, 1, 2, 1
-166, 82, 400, 257, 20, 15, 1, 2, 1
-166, 85, 623, 255, 19, 39, 1, 0, 1
-166, 108, 367, 299, 89, 40, 1, 2, 1
-167, 1, 257, 296, 66, 51, 1, 2, 1
-167, 3, 328, 330, 146, 161, 1, 2, 1
-167, 8, 716, 272, 22, 57, 1, 0, 1
-167, 55, 172, 272, 15, 37, 1, 0, 1
-167, 57, 125, 273, 15, 37, 1, 0, 1
-167, 61, 323, 264, 25, 19, 1, 2, 1
-167, 82, 399, 257, 20, 16, 1, 2, 1
-167, 85, 620, 256, 19, 39, 1, 0, 1
-167, 108, 361, 297, 95, 44, 1, 2, 1
-168, 1, 256, 296, 66, 50, 1, 2, 1
-168, 3, 324, 330, 145, 160, 1, 2, 1
-168, 8, 714, 271, 21, 57, 1, 0, 1
-168, 55, 169, 272, 15, 37, 1, 0, 1
-168, 57, 122, 273, 15, 36, 1, 0, 1
-168, 61, 321, 263, 26, 19, 1, 2, 1
-168, 82, 398, 257, 20, 16, 1, 2, 1
-168, 85, 618, 256, 19, 39, 1, 0, 1
-168, 108, 357, 296, 100, 47, 1, 2, 1
-169, 1, 254, 295, 66, 50, 1, 2, 1
-169, 3, 320, 329, 144, 160, 1, 2, 1
-169, 8, 711, 270, 22, 59, 1, 0, 1
-169, 55, 167, 271, 15, 39, 1, 0, 1
-169, 57, 119, 272, 15, 37, 1, 0, 1
-169, 61, 319, 263, 27, 19, 1, 2, 1
-169, 82, 397, 257, 21, 16, 1, 2, 1
-169, 85, 615, 256, 19, 39, 1, 0, 1
-169, 108, 354, 296, 99, 47, 1, 2, 1
-170, 1, 253, 294, 65, 50, 1, 2, 1
-170, 3, 318, 328, 143, 159, 1, 2, 1
-170, 8, 709, 270, 22, 61, 1, 0, 1
-170, 55, 164, 271, 15, 38, 1, 0, 1
-170, 57, 116, 271, 15, 38, 1, 0, 1
-170, 61, 317, 262, 27, 19, 1, 2, 1
-170, 82, 395, 256, 21, 16, 1, 2, 1
-170, 108, 353, 296, 98, 48, 1, 2, 1
-171, 1, 252, 293, 65, 49, 1, 2, 1
-171, 3, 315, 328, 144, 160, 1, 2, 1
-171, 8, 707, 270, 22, 60, 1, 0, 1
-171, 55, 162, 271, 16, 38, 1, 0, 1
-171, 57, 114, 272, 15, 38, 1, 0, 1
-171, 61, 316, 261, 26, 19, 1, 2, 1
-171, 82, 394, 256, 20, 15, 1, 2, 1
-171, 108, 350, 296, 99, 49, 1, 2, 1
-172, 1, 250, 293, 65, 49, 1, 2, 1
-172, 3, 313, 329, 142, 158, 1, 2, 1
-172, 8, 704, 268, 23, 61, 1, 0, 1
-172, 55, 160, 270, 15, 39, 1, 0, 1
-172, 57, 112, 271, 15, 38, 1, 0, 1
-172, 61, 315, 261, 25, 19, 1, 2, 1
-172, 82, 393, 257, 20, 15, 1, 2, 1
-172, 108, 347, 296, 101, 51, 1, 2, 1
-173, 1, 249, 293, 64, 48, 1, 2, 1
-173, 3, 309, 327, 143, 160, 1, 2, 1
-173, 8, 703, 268, 22, 61, 1, 0, 1
-173, 55, 157, 270, 16, 40, 1, 0, 1
-173, 57, 110, 271, 15, 39, 1, 0, 1
-173, 61, 314, 261, 25, 19, 1, 2, 1
-173, 82, 392, 257, 21, 15, 1, 2, 1
-173, 108, 345, 296, 101, 52, 1, 2, 1
-174, 1, 248, 293, 64, 48, 1, 2, 1
-174, 3, 306, 327, 143, 159, 1, 2, 1
-174, 8, 701, 268, 23, 61, 1, 0, 1
-174, 55, 155, 271, 16, 39, 1, 0, 1
-174, 57, 107, 271, 15, 39, 1, 0, 1
-174, 61, 314, 262, 24, 18, 1, 2, 1
-174, 82, 391, 257, 21, 15, 1, 2, 1
-174, 108, 345, 295, 96, 51, 1, 2, 1
-175, 1, 246, 291, 65, 49, 1, 2, 1
-175, 3, 305, 328, 142, 157, 1, 2, 1
-175, 8, 699, 269, 23, 62, 1, 0, 1
-175, 55, 152, 271, 17, 40, 1, 0, 1
-175, 57, 105, 271, 15, 39, 1, 0, 1
-175, 61, 312, 262, 24, 18, 1, 2, 1
-175, 82, 389, 257, 21, 15, 1, 2, 1
-175, 108, 343, 295, 96, 51, 1, 2, 1
-176, 1, 245, 291, 65, 49, 1, 2, 1
-176, 3, 303, 328, 141, 155, 1, 2, 1
-176, 8, 696, 268, 24, 64, 1, 0, 1
-176, 55, 150, 270, 16, 40, 1, 0, 1
-176, 57, 103, 271, 15, 39, 1, 0, 1
-176, 61, 311, 262, 24, 17, 1, 2, 1
-176, 82, 388, 257, 21, 16, 1, 2, 1
-176, 108, 340, 295, 100, 55, 1, 2, 1
-177, 1, 243, 290, 65, 49, 1, 2, 1
-177, 3, 300, 328, 140, 154, 1, 2, 1
-177, 8, 693, 268, 25, 64, 1, 0, 1
-177, 55, 149, 269, 16, 40, 1, 0, 1
-177, 57, 100, 271, 15, 38, 1, 0, 1
-177, 61, 310, 261, 24, 18, 1, 2, 1
-177, 82, 388, 257, 21, 15, 1, 2, 1
-177, 108, 337, 295, 103, 58, 1, 2, 1
-178, 1, 241, 290, 65, 49, 1, 2, 1
-178, 3, 297, 328, 139, 153, 1, 2, 1
-178, 8, 691, 267, 26, 65, 1, 0, 1
-178, 55, 146, 270, 17, 40, 1, 0, 1
-178, 57, 98, 272, 15, 38, 1, 0, 1
-178, 61, 308, 261, 24, 18, 1, 2, 1
-178, 82, 387, 257, 21, 16, 1, 2, 1
-178, 108, 335, 295, 104, 60, 1, 2, 1
-179, 1, 241, 291, 63, 47, 1, 2, 1
-179, 3, 295, 328, 138, 151, 1, 2, 1
-179, 8, 691, 269, 25, 64, 1, 0, 1
-179, 55, 144, 270, 17, 40, 1, 0, 1
-179, 57, 96, 270, 15, 40, 1, 0, 1
-179, 61, 308, 261, 24, 18, 1, 2, 1
-179, 82, 385, 258, 22, 15, 1, 2, 1
-179, 108, 336, 295, 98, 57, 1, 2, 1
-179, 168, 801, 272, 23, 63, 1, 0, 1
-180, 1, 240, 290, 63, 47, 1, 2, 1
-180, 3, 293, 329, 137, 149, 1, 2, 1
-180, 8, 690, 269, 25, 63, 1, 0, 1
-180, 55, 142, 271, 16, 39, 1, 0, 1
-180, 57, 94, 271, 15, 39, 1, 0, 1
-180, 61, 307, 261, 23, 17, 1, 2, 1
-180, 82, 383, 257, 23, 17, 1, 2, 1
-180, 108, 338, 295, 92, 55, 1, 2, 1
-180, 168, 802, 272, 22, 64, 1, 0, 1
-181, 1, 239, 290, 63, 47, 1, 2, 1
-181, 3, 289, 329, 135, 148, 1, 2, 1
-181, 8, 690, 269, 24, 63, 1, 0, 1
-181, 55, 139, 271, 17, 40, 1, 0, 1
-181, 57, 92, 272, 15, 39, 1, 0, 1
-181, 61, 306, 262, 23, 16, 1, 2, 1
-181, 82, 382, 257, 23, 17, 1, 2, 1
-181, 108, 336, 296, 92, 55, 1, 2, 1
-181, 168, 803, 278, 20, 58, 1, 0, 1
-182, 1, 237, 291, 63, 46, 1, 2, 1
-182, 3, 287, 329, 134, 147, 1, 2, 1
-182, 8, 688, 270, 25, 62, 1, 0, 1
-182, 55, 138, 272, 16, 40, 1, 0, 1
-182, 57, 89, 272, 15, 39, 1, 0, 1
-182, 61, 305, 262, 22, 16, 1, 2, 1
-182, 82, 381, 257, 23, 17, 1, 2, 1
-182, 108, 335, 296, 91, 55, 1, 2, 1
-182, 168, 801, 278, 21, 59, 1, 0, 1
-183, 1, 235, 290, 63, 47, 1, 2, 1
-183, 3, 284, 329, 136, 147, 1, 2, 1
-183, 8, 686, 269, 24, 63, 1, 0, 1
-183, 55, 136, 272, 17, 41, 1, 0, 1
-183, 57, 86, 270, 16, 43, 1, 0, 1
-183, 61, 304, 262, 22, 16, 1, 2, 1
-183, 82, 380, 257, 24, 18, 1, 2, 1
-183, 108, 335, 296, 91, 55, 1, 2, 1
-183, 168, 804, 280, 19, 57, 1, 0, 1
-184, 1, 234, 290, 63, 48, 1, 2, 1
-184, 3, 281, 329, 135, 146, 1, 2, 1
-184, 8, 685, 268, 24, 64, 1, 0, 1
-184, 55, 133, 272, 17, 41, 1, 0, 1
-184, 57, 83, 272, 15, 42, 1, 0, 1
-184, 61, 302, 262, 23, 17, 1, 2, 1
-184, 82, 379, 257, 24, 18, 1, 2, 1
-184, 108, 335, 296, 83, 51, 1, 2, 1
-184, 168, 804, 278, 20, 58, 1, 0, 1
-185, 1, 233, 291, 62, 47, 1, 2, 1
-185, 3, 276, 328, 137, 147, 1, 2, 1
-185, 8, 684, 267, 24, 65, 1, 0, 1
-185, 55, 130, 274, 17, 41, 1, 0, 1
-185, 57, 81, 273, 15, 42, 1, 0, 1
-185, 61, 301, 262, 24, 17, 1, 2, 1
-185, 82, 378, 258, 24, 18, 1, 2, 1
-185, 108, 331, 296, 88, 55, 1, 2, 1
-185, 168, 803, 281, 20, 55, 1, 0, 1
-186, 1, 232, 291, 62, 46, 1, 2, 1
-186, 3, 273, 327, 137, 148, 1, 2, 1
-186, 8, 683, 267, 23, 65, 1, 0, 1
-186, 55, 129, 274, 17, 42, 1, 0, 1
-186, 57, 79, 275, 15, 40, 1, 0, 1
-186, 61, 300, 262, 23, 17, 1, 2, 1
-186, 82, 377, 258, 23, 18, 1, 2, 1
-186, 108, 328, 296, 90, 57, 1, 2, 1
-186, 168, 803, 282, 19, 55, 1, 0, 1
-187, 1, 230, 291, 62, 46, 1, 2, 1
-187, 3, 271, 327, 136, 146, 1, 2, 1
-187, 8, 681, 267, 24, 65, 1, 0, 1
-187, 55, 127, 275, 17, 42, 1, 0, 1
-187, 57, 78, 280, 13, 35, 1, 0, 1
-187, 61, 299, 262, 24, 17, 1, 2, 1
-187, 82, 376, 259, 23, 17, 1, 2, 1
-187, 108, 327, 295, 88, 58, 1, 2, 1
-187, 168, 802, 283, 20, 53, 1, 0, 1
-188, 1, 229, 291, 62, 46, 1, 2, 1
-188, 3, 267, 325, 137, 148, 1, 2, 1
-188, 8, 680, 267, 24, 66, 1, 0, 1
-188, 55, 125, 275, 17, 41, 1, 0, 1
-188, 57, 76, 281, 13, 35, 1, 0, 1
-188, 61, 299, 262, 23, 17, 1, 2, 1
-188, 82, 375, 260, 23, 17, 1, 2, 1
-188, 108, 326, 296, 88, 57, 1, 2, 1
-188, 168, 802, 283, 20, 53, 1, 0, 1
-189, 1, 228, 292, 62, 46, 1, 2, 1
-189, 3, 265, 326, 135, 147, 1, 2, 1
-189, 8, 680, 268, 23, 64, 1, 0, 1
-189, 55, 124, 276, 16, 41, 1, 0, 1
-189, 57, 74, 282, 12, 34, 1, 0, 1
-189, 61, 298, 262, 23, 17, 1, 2, 1
-189, 82, 374, 260, 22, 17, 1, 2, 1
-189, 108, 324, 296, 91, 60, 1, 2, 1
-189, 168, 802, 282, 21, 55, 1, 0, 1
-190, 1, 227, 292, 62, 46, 1, 2, 1
-190, 3, 263, 325, 136, 147, 1, 2, 1
-190, 8, 679, 270, 23, 62, 1, 0, 1
-190, 55, 121, 275, 17, 43, 1, 0, 1
-190, 57, 70, 281, 14, 36, 1, 0, 1
-190, 61, 297, 262, 23, 17, 1, 2, 1
-190, 82, 374, 261, 21, 16, 1, 2, 1
-190, 108, 324, 295, 92, 63, 1, 2, 1
-190, 168, 802, 283, 21, 54, 1, 0, 1
-191, 1, 226, 293, 61, 45, 1, 2, 1
-191, 3, 260, 325, 136, 147, 1, 2, 1
-191, 8, 677, 272, 23, 62, 1, 0, 1
-191, 55, 119, 276, 17, 43, 1, 0, 1
-191, 57, 67, 283, 14, 35, 1, 0, 1
-191, 61, 296, 262, 23, 17, 1, 2, 1
-191, 82, 373, 262, 21, 15, 1, 2, 1
-191, 108, 324, 295, 91, 63, 1, 2, 1
-191, 168, 802, 283, 22, 55, 1, 0, 1
-192, 1, 225, 293, 61, 45, 1, 2, 1
-192, 3, 257, 325, 136, 147, 1, 2, 1
-192, 8, 676, 273, 22, 61, 1, 0, 1
-192, 55, 117, 276, 17, 44, 1, 0, 1
-192, 57, 64, 284, 14, 35, 1, 0, 1
-192, 61, 294, 262, 25, 18, 1, 2, 1
-192, 82, 372, 262, 21, 15, 1, 2, 1
-192, 108, 324, 296, 90, 62, 1, 2, 1
-192, 168, 804, 282, 21, 55, 1, 0, 1
-193, 1, 224, 294, 60, 44, 1, 2, 1
-193, 3, 255, 325, 136, 146, 1, 2, 1
-193, 8, 675, 273, 23, 62, 1, 0, 1
-193, 55, 114, 277, 17, 43, 1, 0, 1
-193, 57, 62, 283, 15, 37, 1, 0, 1
-193, 61, 293, 262, 25, 18, 1, 2, 1
-193, 82, 372, 262, 21, 16, 1, 2, 1
-193, 108, 323, 296, 90, 63, 1, 2, 1
-193, 168, 805, 281, 23, 57, 1, 0, 1
-194, 1, 224, 295, 59, 43, 1, 2, 1
-194, 3, 253, 325, 134, 145, 1, 2, 1
-194, 8, 674, 274, 23, 61, 1, 0, 1
-194, 55, 113, 279, 17, 42, 1, 0, 1
-194, 57, 60, 284, 14, 37, 1, 0, 1
-194, 61, 292, 262, 25, 19, 1, 2, 1
-194, 82, 370, 262, 23, 17, 1, 2, 1
-194, 108, 323, 295, 90, 64, 1, 2, 1
-194, 168, 807, 283, 22, 55, 1, 0, 1
-195, 1, 223, 295, 59, 43, 1, 2, 1
-195, 3, 252, 324, 133, 144, 1, 2, 1
-195, 8, 673, 273, 22, 62, 1, 0, 1
-195, 55, 111, 279, 17, 42, 1, 0, 1
-195, 57, 58, 285, 14, 37, 1, 0, 1
-195, 61, 291, 261, 25, 19, 1, 2, 1
-195, 82, 369, 262, 23, 18, 1, 2, 1
-195, 108, 323, 295, 89, 62, 1, 2, 1
-195, 168, 808, 283, 22, 55, 1, 0, 1
-196, 1, 223, 296, 57, 41, 1, 2, 1
-196, 3, 249, 324, 133, 143, 1, 2, 1
-196, 8, 671, 273, 23, 62, 1, 0, 1
-196, 55, 108, 280, 17, 41, 1, 0, 1
-196, 57, 57, 285, 14, 37, 1, 0, 1
-196, 61, 290, 261, 25, 19, 1, 2, 1
-196, 82, 368, 261, 23, 19, 1, 2, 1
-196, 108, 323, 294, 89, 63, 1, 2, 1
-196, 168, 809, 283, 21, 55, 1, 0, 1
-197, 1, 221, 295, 59, 43, 1, 2, 1
-197, 3, 245, 323, 134, 144, 1, 2, 1
-197, 8, 671, 272, 22, 62, 1, 0, 1
-197, 55, 106, 281, 17, 41, 1, 0, 1
-197, 57, 54, 282, 15, 41, 1, 0, 1
-197, 61, 289, 261, 26, 20, 1, 2, 1
-197, 82, 367, 261, 24, 19, 1, 2, 1
-197, 108, 323, 294, 89, 63, 1, 2, 1
-197, 168, 809, 284, 21, 54, 1, 0, 1
-198, 1, 220, 296, 59, 42, 1, 2, 1
-198, 3, 242, 322, 134, 146, 1, 2, 1
-198, 8, 671, 272, 22, 60, 1, 0, 1
-198, 55, 103, 281, 17, 41, 1, 0, 1
-198, 57, 51, 281, 16, 42, 1, 0, 1
-198, 61, 288, 261, 25, 19, 1, 2, 1
-198, 82, 366, 261, 25, 20, 1, 2, 1
-198, 108, 323, 294, 89, 63, 1, 2, 1
-198, 168, 810, 284, 21, 53, 1, 0, 1
-199, 1, 218, 296, 59, 41, 1, 2, 1
-199, 3, 240, 323, 133, 143, 1, 2, 1
-199, 8, 671, 271, 22, 60, 1, 0, 1
-199, 55, 102, 282, 17, 41, 1, 0, 1
-199, 57, 48, 282, 17, 42, 1, 0, 1
-199, 61, 288, 262, 25, 19, 1, 2, 1
-199, 82, 366, 262, 23, 20, 1, 2, 1
-199, 108, 323, 294, 88, 63, 1, 2, 1
-199, 168, 811, 283, 21, 53, 1, 0, 1
-200, 1, 217, 296, 59, 42, 1, 2, 1
-200, 3, 238, 323, 132, 144, 1, 2, 1
-200, 8, 671, 271, 21, 61, 1, 0, 1
-200, 55, 100, 282, 18, 42, 1, 0, 1
-200, 57, 45, 282, 17, 43, 1, 0, 1
-200, 61, 287, 262, 24, 19, 1, 2, 1
-200, 82, 366, 263, 23, 19, 1, 2, 1
-200, 108, 323, 294, 88, 63, 1, 2, 1
-200, 168, 810, 282, 22, 54, 1, 0, 1
-201, 1, 216, 296, 58, 41, 1, 2, 1
-201, 3, 236, 323, 131, 143, 1, 2, 1
-201, 8, 670, 271, 22, 61, 1, 0, 1
-201, 55, 98, 282, 18, 43, 1, 0, 1
-201, 57, 42, 282, 17, 43, 1, 0, 1
-201, 61, 287, 262, 24, 19, 1, 2, 1
-201, 82, 364, 263, 23, 19, 1, 2, 1
-201, 108, 323, 294, 89, 63, 1, 2, 1
-201, 168, 811, 281, 22, 56, 1, 0, 1
-202, 1, 215, 296, 59, 42, 1, 2, 1
-202, 3, 234, 324, 131, 141, 1, 2, 1
-202, 8, 670, 271, 22, 62, 1, 0, 1
-202, 55, 96, 283, 19, 43, 1, 0, 1
-202, 57, 40, 283, 17, 42, 1, 0, 1
-202, 61, 287, 262, 24, 19, 1, 2, 1
-202, 82, 364, 263, 22, 19, 1, 2, 1
-202, 108, 323, 293, 90, 65, 1, 2, 1
-202, 168, 811, 279, 24, 59, 1, 0, 1
-203, 1, 214, 297, 59, 41, 1, 2, 1
-203, 3, 232, 323, 129, 141, 1, 2, 1
-203, 8, 669, 271, 22, 63, 1, 0, 1
-203, 55, 94, 284, 18, 43, 1, 0, 1
-203, 57, 38, 283, 17, 42, 1, 0, 1
-203, 61, 287, 263, 23, 18, 1, 2, 1
-203, 82, 363, 264, 22, 19, 1, 2, 1
-203, 108, 322, 293, 92, 66, 1, 2, 1
-203, 168, 812, 279, 24, 59, 1, 0, 1
-204, 1, 213, 297, 60, 41, 1, 2, 1
-204, 3, 230, 324, 128, 139, 1, 2, 1
-204, 8, 668, 271, 23, 64, 1, 0, 1
-204, 55, 92, 285, 17, 43, 1, 0, 1
-204, 57, 36, 283, 17, 43, 1, 0, 1
-204, 61, 286, 262, 24, 18, 1, 2, 1
-204, 82, 363, 264, 22, 20, 1, 2, 1
-204, 108, 322, 293, 92, 65, 1, 2, 1
-204, 168, 814, 278, 24, 59, 1, 0, 1
-205, 1, 213, 297, 59, 42, 1, 2, 1
-205, 3, 229, 324, 127, 138, 1, 2, 1
-205, 8, 667, 271, 23, 64, 1, 0, 1
-205, 55, 89, 285, 19, 44, 1, 0, 1
-205, 57, 33, 283, 18, 43, 1, 0, 1
-205, 61, 285, 261, 25, 19, 1, 2, 1
-205, 82, 362, 264, 23, 20, 1, 2, 1
-205, 108, 323, 293, 92, 65, 1, 2, 1
-205, 168, 816, 277, 24, 61, 1, 0, 1
-206, 1, 212, 296, 59, 42, 1, 2, 1
-206, 3, 228, 323, 126, 138, 1, 2, 1
-206, 8, 667, 272, 23, 64, 1, 0, 1
-206, 55, 88, 284, 18, 44, 1, 0, 1
-206, 57, 33, 285, 16, 41, 1, 0, 1
-206, 61, 285, 262, 24, 18, 1, 2, 1
-206, 82, 361, 264, 23, 21, 1, 2, 1
-206, 108, 323, 292, 92, 66, 1, 2, 1
-206, 168, 818, 279, 23, 59, 1, 0, 1
-207, 1, 212, 296, 58, 41, 1, 2, 1
-207, 3, 224, 323, 129, 139, 1, 2, 1
-207, 8, 666, 271, 23, 65, 1, 0, 1
-207, 55, 86, 285, 19, 44, 1, 0, 1
-207, 57, 31, 285, 16, 42, 1, 0, 1
-207, 61, 284, 262, 24, 18, 1, 2, 1
-207, 108, 324, 293, 92, 65, 1, 2, 1
-207, 168, 820, 281, 22, 58, 1, 0, 1
-208, 1, 212, 297, 57, 40, 1, 2, 1
-208, 3, 222, 323, 129, 139, 1, 2, 1
-208, 8, 666, 273, 23, 64, 1, 0, 1
-208, 55, 84, 286, 19, 44, 1, 0, 1
-208, 57, 26, 286, 17, 43, 1, 0, 1
-208, 61, 283, 262, 25, 19, 1, 2, 1
-208, 108, 325, 293, 92, 66, 1, 2, 1
-208, 168, 820, 281, 23, 58, 1, 0, 1
-209, 1, 210, 296, 59, 41, 1, 2, 1
-209, 3, 221, 324, 127, 136, 1, 2, 1
-209, 8, 665, 273, 23, 64, 1, 0, 1
-209, 55, 83, 285, 19, 45, 1, 0, 1
-209, 57, 22, 286, 18, 43, 1, 0, 1
-209, 61, 282, 262, 25, 19, 1, 2, 1
-209, 108, 325, 293, 94, 66, 1, 2, 1
-209, 168, 822, 280, 23, 60, 1, 0, 1
-210, 1, 210, 297, 57, 40, 1, 2, 1
-210, 3, 219, 325, 127, 136, 1, 2, 1
-210, 8, 665, 272, 24, 66, 1, 0, 1
-210, 55, 81, 286, 19, 45, 1, 0, 1
-210, 57, 19, 285, 19, 45, 1, 0, 1
-210, 61, 282, 263, 23, 18, 1, 2, 1
-210, 108, 326, 294, 94, 66, 1, 2, 1
-210, 168, 824, 278, 23, 62, 1, 0, 1
-211, 1, 209, 297, 59, 41, 1, 2, 1
-211, 3, 217, 327, 126, 134, 1, 2, 1
-211, 8, 665, 272, 23, 66, 1, 0, 1
-211, 55, 80, 286, 19, 45, 1, 0, 1
-211, 57, 19, 286, 18, 45, 1, 0, 1
-211, 61, 282, 264, 23, 18, 1, 2, 1
-211, 108, 327, 295, 94, 66, 1, 2, 1
-211, 168, 825, 281, 23, 59, 1, 0, 1
-212, 1, 208, 297, 60, 41, 1, 2, 1
-212, 3, 215, 327, 126, 134, 1, 2, 1
-212, 8, 664, 272, 24, 67, 1, 0, 1
-212, 55, 78, 287, 19, 45, 1, 0, 1
-212, 57, 23, 286, 18, 45, 1, 0, 1
-212, 61, 282, 264, 22, 17, 1, 2, 1
-212, 108, 328, 295, 94, 67, 1, 2, 1
-212, 168, 827, 284, 22, 56, 1, 0, 1
-213, 1, 208, 297, 60, 41, 1, 2, 1
-213, 3, 213, 327, 125, 133, 1, 2, 1
-213, 8, 664, 273, 24, 66, 1, 0, 1
-213, 55, 77, 288, 19, 44, 1, 0, 1
-213, 57, 15, 288, 18, 43, 1, 0, 1
-213, 61, 282, 264, 23, 18, 1, 2, 1
-213, 108, 331, 296, 92, 64, 1, 2, 1
-213, 168, 827, 283, 25, 60, 1, 0, 1
-214, 1, 208, 297, 60, 42, 1, 2, 1
-214, 3, 211, 327, 126, 133, 1, 2, 1
-214, 8, 664, 273, 24, 67, 1, 0, 1
-214, 55, 75, 288, 19, 45, 1, 0, 1
-214, 57, 8, 289, 17, 41, 1, 0, 1
-214, 61, 281, 264, 24, 18, 1, 2, 1
-214, 108, 332, 296, 93, 64, 1, 2, 1
-214, 168, 831, 283, 24, 59, 1, 0, 1
-215, 1, 209, 297, 57, 40, 1, 2, 1
-215, 3, 210, 328, 125, 131, 1, 2, 1
-215, 8, 664, 274, 24, 66, 1, 0, 1
-215, 55, 74, 287, 20, 46, 1, 0, 1
-215, 57, 4, 288, 16, 40, 1, 0, 1
-215, 61, 281, 264, 24, 18, 1, 2, 1
-215, 108, 335, 296, 93, 63, 1, 2, 1
-215, 168, 833, 282, 25, 62, 1, 0, 1
-216, 1, 209, 297, 57, 40, 1, 2, 1
-216, 3, 209, 329, 124, 129, 1, 2, 1
-216, 8, 665, 275, 24, 65, 1, 0, 1
-216, 55, 73, 288, 19, 45, 1, 0, 1
-216, 57, 1, 290, 16, 38, 1, 0, 1
-216, 61, 282, 264, 24, 18, 1, 2, 1
-216, 108, 338, 296, 92, 63, 1, 2, 1
-216, 168, 834, 280, 26, 64, 1, 0, 1
-217, 1, 209, 297, 57, 40, 1, 2, 1
-217, 3, 209, 328, 123, 129, 1, 2, 1
-217, 8, 666, 276, 24, 65, 1, 0, 1
-217, 55, 72, 288, 19, 44, 1, 0, 1
-217, 57, 0, 290, 14, 39, 1, 0, 1
-217, 61, 282, 264, 23, 18, 1, 2, 1
-217, 108, 340, 297, 93, 61, 1, 2, 1
-217, 168, 838, 282, 25, 61, 1, 0, 1
-218, 1, 209, 296, 57, 40, 1, 2, 1
-218, 3, 209, 329, 123, 128, 1, 2, 1
-218, 8, 667, 277, 24, 64, 1, 0, 1
-218, 55, 70, 287, 19, 46, 1, 0, 1
-218, 57, 0, 290, 12, 39, 1, 0, 1
-218, 61, 282, 264, 23, 18, 1, 2, 1
-218, 108, 342, 296, 94, 62, 1, 2, 1
-218, 168, 840, 281, 26, 61, 1, 0, 1
-219, 1, 209, 294, 57, 41, 1, 2, 1
-219, 3, 207, 328, 126, 129, 1, 2, 1
-219, 8, 668, 278, 24, 64, 1, 0, 1
-219, 55, 68, 287, 20, 47, 1, 0, 1
-219, 57, 0, 291, 11, 39, 1, 0, 1
-219, 61, 283, 263, 22, 18, 1, 2, 1
-219, 108, 343, 295, 96, 62, 1, 2, 1
-219, 168, 843, 282, 26, 61, 1, 0, 1
-220, 1, 210, 295, 56, 40, 1, 2, 1
-220, 3, 205, 326, 126, 130, 1, 2, 1
-220, 8, 669, 276, 24, 66, 1, 0, 1
-220, 55, 67, 287, 20, 48, 1, 0, 1
-220, 57, 0, 293, 11, 39, 1, 0, 1
-220, 61, 283, 263, 22, 17, 1, 2, 1
-220, 108, 345, 295, 96, 62, 1, 2, 1
-220, 168, 846, 280, 27, 63, 1, 0, 1
-221, 1, 209, 294, 58, 41, 1, 2, 1
-221, 3, 204, 324, 128, 132, 1, 2, 1
-221, 8, 670, 276, 24, 66, 1, 0, 1
-221, 55, 65, 287, 20, 48, 1, 0, 1
-221, 57, 0, 293, 13, 40, 1, 0, 1
-221, 61, 284, 263, 22, 17, 1, 2, 1
-221, 108, 348, 294, 97, 62, 1, 2, 1
-221, 168, 850, 282, 26, 61, 1, 0, 1
-222, 1, 209, 293, 59, 42, 1, 2, 1
-222, 3, 204, 324, 129, 133, 1, 2, 1
-222, 8, 671, 274, 24, 68, 1, 0, 1
-222, 55, 65, 287, 20, 47, 1, 0, 1
-222, 57, 0, 293, 11, 40, 1, 0, 1
-222, 61, 284, 263, 23, 17, 1, 2, 1
-222, 108, 351, 293, 98, 62, 1, 2, 1
-222, 168, 853, 282, 26, 61, 1, 0, 1
-223, 1, 210, 292, 58, 43, 1, 2, 1
-223, 3, 204, 322, 131, 135, 1, 2, 1
-223, 8, 672, 273, 24, 69, 1, 0, 1
-223, 55, 64, 288, 20, 47, 1, 0, 1
-223, 57, 3, 292, 16, 42, 1, 0, 1
-223, 61, 284, 263, 22, 17, 1, 2, 1
-223, 108, 353, 292, 99, 63, 1, 2, 1
-223, 168, 856, 281, 27, 62, 1, 0, 1
-224, 1, 210, 293, 58, 42, 1, 2, 1
-224, 3, 203, 322, 132, 135, 1, 2, 1
-224, 8, 673, 273, 25, 69, 1, 0, 1
-224, 55, 63, 289, 20, 48, 1, 0, 1
-224, 57, 2, 291, 18, 45, 1, 0, 1
-224, 61, 285, 263, 21, 17, 1, 2, 1
-224, 108, 355, 292, 100, 64, 1, 2, 1
-224, 168, 860, 283, 26, 60, 1, 0, 1
-224, 212, 480, 260, 19, 35, 1, 0, 1
-225, 1, 211, 293, 57, 42, 1, 2, 1
-225, 3, 201, 322, 132, 135, 1, 2, 1
-225, 8, 674, 273, 24, 69, 1, 0, 1
-225, 55, 62, 289, 20, 47, 1, 0, 1
-225, 57, 1, 292, 17, 45, 1, 0, 1
-225, 61, 286, 263, 21, 17, 1, 2, 1
-225, 82, 346, 258, 17, 15, 1, 2, 1
-225, 108, 358, 291, 102, 65, 1, 2, 1
-225, 168, 864, 280, 27, 62, 1, 0, 1
-225, 212, 481, 260, 19, 36, 1, 0, 1
-226, 1, 211, 293, 57, 42, 1, 2, 1
-226, 3, 200, 323, 130, 134, 1, 2, 1
-226, 8, 675, 273, 25, 69, 1, 0, 1
-226, 55, 60, 290, 21, 49, 1, 0, 1
-226, 57, 1, 294, 17, 45, 1, 0, 1
-226, 61, 286, 263, 21, 16, 1, 2, 1
-226, 82, 345, 259, 18, 15, 1, 2, 1
-226, 108, 364, 291, 103, 65, 1, 2, 1
-226, 168, 867, 282, 26, 60, 1, 0, 1
-226, 212, 481, 261, 19, 37, 1, 0, 1
-227, 1, 212, 292, 55, 42, 1, 2, 1
-227, 3, 198, 322, 131, 135, 1, 2, 1
-227, 8, 676, 273, 25, 69, 1, 0, 1
-227, 55, 60, 290, 20, 50, 1, 0, 1
-227, 57, 0, 295, 17, 45, 1, 0, 1
-227, 82, 345, 261, 18, 14, 1, 2, 1
-227, 108, 369, 292, 104, 64, 1, 2, 1
-227, 168, 869, 282, 27, 61, 1, 0, 1
-227, 212, 481, 261, 20, 38, 1, 0, 1
-228, 1, 212, 293, 55, 41, 1, 2, 1
-228, 3, 199, 323, 131, 135, 1, 2, 1
-228, 8, 677, 274, 25, 69, 1, 0, 1
-228, 55, 59, 291, 20, 49, 1, 0, 1
-228, 57, 0, 296, 17, 46, 1, 0, 1
-228, 61, 287, 264, 22, 17, 1, 2, 1
-228, 82, 346, 261, 18, 15, 1, 2, 1
-228, 108, 373, 291, 107, 65, 1, 2, 1
-228, 168, 874, 282, 26, 60, 1, 0, 1
-228, 212, 482, 261, 20, 38, 1, 0, 1
-229, 1, 211, 291, 58, 44, 1, 2, 1
-229, 3, 200, 323, 130, 135, 1, 2, 1
-229, 8, 678, 273, 25, 71, 1, 0, 1
-229, 55, 58, 291, 21, 49, 1, 0, 1
-229, 57, 0, 295, 16, 47, 1, 0, 1
-229, 61, 288, 264, 21, 17, 1, 2, 1
-229, 82, 346, 260, 19, 15, 1, 2, 1
-229, 108, 377, 291, 108, 65, 1, 2, 1
-229, 168, 878, 283, 26, 59, 1, 0, 1
-229, 212, 482, 261, 20, 38, 1, 0, 1
-230, 1, 212, 290, 58, 44, 1, 2, 1
-230, 3, 199, 323, 130, 134, 1, 2, 1
-230, 8, 679, 274, 25, 70, 1, 0, 1
-230, 55, 57, 292, 20, 49, 1, 0, 1
-230, 57, 0, 295, 15, 47, 1, 0, 1
-230, 61, 288, 264, 21, 17, 1, 2, 1
-230, 82, 347, 261, 18, 14, 1, 2, 1
-230, 108, 380, 291, 109, 65, 1, 2, 1
-230, 168, 882, 277, 27, 63, 1, 0, 1
-230, 212, 484, 261, 18, 37, 1, 0, 1
-231, 1, 213, 290, 57, 42, 1, 2, 1
-231, 3, 199, 322, 130, 133, 1, 2, 1
-231, 8, 680, 276, 24, 69, 1, 0, 1
-231, 55, 56, 292, 20, 49, 1, 0, 1
-231, 57, 0, 295, 14, 48, 1, 0, 1
-231, 61, 288, 264, 22, 17, 1, 2, 1
-231, 82, 347, 261, 19, 15, 1, 2, 1
-231, 108, 385, 290, 109, 64, 1, 2, 1
-231, 168, 887, 280, 27, 61, 1, 0, 1
-231, 212, 484, 261, 19, 37, 1, 0, 1
-232, 1, 215, 290, 54, 41, 1, 2, 1
-232, 3, 198, 321, 128, 133, 1, 2, 1
-232, 8, 681, 276, 24, 69, 1, 0, 1
-232, 55, 56, 293, 20, 48, 1, 0, 1
-232, 57, 0, 295, 14, 48, 1, 0, 1
-232, 61, 290, 264, 21, 17, 1, 2, 1
-232, 82, 348, 261, 19, 15, 1, 2, 1
-232, 108, 392, 291, 107, 62, 1, 2, 1
-232, 168, 891, 278, 28, 63, 1, 0, 1
-232, 212, 485, 263, 17, 34, 1, 0, 1
-233, 1, 217, 290, 52, 40, 1, 2, 1
-233, 3, 198, 320, 129, 132, 1, 2, 1
-233, 8, 683, 278, 24, 68, 1, 0, 1
-233, 55, 55, 292, 20, 50, 1, 0, 1
-233, 57, 0, 297, 13, 45, 1, 0, 1
-233, 61, 290, 264, 21, 16, 1, 2, 1
-233, 82, 348, 261, 19, 14, 1, 2, 1
-233, 108, 397, 292, 107, 61, 1, 2, 1
-233, 168, 895, 277, 28, 65, 1, 0, 1
-233, 212, 485, 262, 17, 34, 1, 0, 1
-234, 1, 218, 290, 51, 39, 1, 2, 1
-234, 3, 197, 319, 130, 134, 1, 2, 1
-234, 8, 684, 277, 24, 69, 1, 0, 1
-234, 55, 54, 292, 21, 50, 1, 0, 1
-234, 57, 0, 299, 12, 43, 1, 0, 1
-234, 61, 291, 263, 21, 17, 1, 2, 1
-234, 82, 349, 261, 19, 14, 1, 2, 1
-234, 108, 401, 291, 110, 61, 1, 2, 1
-234, 168, 900, 278, 28, 65, 1, 0, 1
-234, 212, 486, 261, 17, 34, 1, 0, 1
-235, 1, 221, 289, 48, 36, 1, 2, 1
-235, 3, 197, 318, 130, 134, 1, 2, 1
-235, 8, 686, 276, 24, 69, 1, 0, 1
-235, 55, 53, 291, 21, 50, 1, 0, 1
-235, 57, 0, 299, 11, 42, 1, 0, 1
-235, 61, 291, 263, 21, 17, 1, 2, 1
-235, 82, 350, 260, 20, 14, 1, 2, 1
-235, 108, 405, 289, 113, 62, 1, 2, 1
-235, 168, 905, 276, 29, 66, 1, 0, 1
-235, 212, 486, 260, 17, 36, 1, 0, 1
-236, 1, 222, 289, 47, 35, 1, 2, 1
-236, 3, 198, 318, 129, 132, 1, 2, 1
-236, 8, 688, 274, 24, 70, 1, 0, 1
-236, 55, 53, 291, 20, 50, 1, 0, 1
-236, 57, 0, 299, 11, 42, 1, 0, 1
-236, 61, 292, 263, 20, 17, 1, 2, 1
-236, 82, 351, 259, 21, 15, 1, 2, 1
-236, 108, 410, 288, 115, 63, 1, 2, 1
-236, 168, 910, 275, 29, 66, 1, 0, 1
-236, 212, 486, 259, 18, 37, 1, 0, 1
-237, 1, 223, 289, 47, 34, 1, 2, 1
-237, 3, 199, 316, 130, 133, 1, 2, 1
-237, 8, 689, 273, 25, 71, 1, 0, 1
-237, 55, 53, 291, 20, 50, 1, 0, 1
-237, 61, 293, 263, 20, 16, 1, 2, 1
-237, 82, 351, 259, 21, 15, 1, 2, 1
-237, 108, 414, 287, 119, 65, 1, 2, 1
-237, 168, 915, 274, 30, 67, 1, 0, 1
-238, 1, 224, 288, 47, 35, 1, 2, 1
-238, 3, 199, 315, 131, 133, 1, 2, 1
-238, 8, 691, 274, 25, 71, 1, 0, 1
-238, 55, 52, 291, 21, 50, 1, 0, 1
-238, 82, 352, 258, 21, 16, 1, 2, 1
-238, 108, 419, 286, 121, 66, 1, 2, 1
-238, 168, 920, 273, 30, 68, 1, 0, 1
-239, 1, 224, 287, 49, 35, 1, 2, 1
-239, 3, 200, 314, 131, 133, 1, 2, 1
-239, 8, 693, 274, 25, 71, 1, 0, 1
-239, 55, 52, 290, 21, 50, 1, 0, 1
-239, 61, 297, 261, 20, 16, 1, 2, 1
-239, 82, 353, 258, 21, 16, 1, 2, 1
-239, 108, 425, 286, 120, 65, 1, 2, 1
-239, 168, 924, 272, 30, 68, 1, 0, 1
-240, 1, 225, 286, 49, 36, 1, 2, 1
-240, 3, 202, 314, 130, 131, 1, 2, 1
-240, 8, 694, 273, 25, 72, 1, 0, 1
-240, 55, 53, 290, 20, 51, 1, 0, 1
-240, 61, 298, 261, 20, 16, 1, 2, 1
-240, 82, 353, 257, 22, 17, 1, 2, 1
-240, 108, 432, 285, 121, 65, 1, 2, 1
-240, 168, 929, 270, 30, 70, 1, 0, 1
-241, 1, 227, 286, 48, 35, 1, 2, 1
-241, 3, 204, 314, 128, 129, 1, 2, 1
-241, 8, 696, 273, 25, 73, 1, 0, 1
-241, 55, 52, 290, 21, 51, 1, 0, 1
-241, 82, 354, 257, 22, 17, 1, 2, 1
-241, 108, 439, 286, 122, 64, 1, 2, 1
-241, 168, 934, 269, 25, 71, 1, 0, 1
-242, 1, 228, 286, 49, 35, 1, 2, 1
-242, 3, 205, 314, 128, 129, 1, 2, 1
-242, 8, 698, 273, 25, 73, 1, 0, 1
-242, 55, 52, 290, 21, 51, 1, 0, 1
-242, 82, 356, 257, 22, 17, 1, 2, 1
-242, 108, 445, 286, 121, 64, 1, 2, 1
-242, 168, 939, 277, 20, 58, 1, 0, 1
-243, 1, 230, 285, 49, 36, 1, 2, 1
-243, 3, 206, 312, 129, 129, 1, 2, 1
-243, 8, 701, 274, 24, 71, 1, 0, 1
-243, 55, 52, 290, 21, 51, 1, 0, 1
-243, 82, 357, 256, 23, 18, 1, 2, 1
-243, 108, 450, 286, 120, 62, 1, 2, 1
-243, 168, 942, 280, 17, 53, 1, 0, 1
-244, 1, 232, 285, 50, 36, 1, 2, 1
-244, 3, 207, 312, 129, 128, 1, 2, 1
-244, 8, 704, 274, 24, 70, 1, 0, 1
-244, 55, 52, 290, 21, 51, 1, 0, 1
-244, 82, 359, 256, 22, 17, 1, 2, 1
-244, 108, 456, 285, 119, 63, 1, 2, 1
-244, 168, 947, 281, 12, 52, 1, 0, 1
-244, 229, 391, 274, 29, 22, 1, 2, 1
-245, 1, 234, 285, 49, 36, 1, 2, 1
-245, 3, 208, 312, 130, 129, 1, 2, 1
-245, 8, 706, 277, 24, 69, 1, 0, 1
-245, 55, 52, 289, 22, 53, 1, 0, 1
-245, 82, 361, 257, 20, 15, 1, 2, 1
-245, 108, 463, 286, 118, 61, 1, 2, 1
-245, 229, 394, 274, 29, 23, 1, 2, 1
-246, 1, 235, 284, 49, 36, 1, 2, 1
-246, 3, 209, 311, 131, 129, 1, 2, 1
-246, 8, 709, 277, 24, 69, 1, 0, 1
-246, 55, 52, 289, 22, 53, 1, 0, 1
-246, 82, 364, 256, 20, 16, 1, 2, 1
-246, 108, 470, 285, 120, 62, 1, 2, 1
-246, 229, 396, 275, 28, 22, 1, 2, 1
-247, 1, 236, 284, 49, 36, 1, 2, 1
-247, 3, 212, 310, 132, 130, 1, 2, 1
-247, 8, 712, 275, 24, 70, 1, 0, 1
-247, 55, 52, 289, 22, 54, 1, 0, 1
-247, 82, 365, 256, 21, 16, 1, 2, 1
-247, 108, 484, 284, 122, 63, 1, 2, 1
-247, 229, 396, 275, 31, 24, 1, 2, 1
-248, 1, 238, 284, 49, 35, 1, 2, 1
-248, 3, 213, 310, 134, 130, 1, 2, 1
-248, 8, 716, 277, 24, 70, 1, 0, 1
-248, 55, 52, 290, 22, 53, 1, 0, 1
-248, 82, 366, 257, 21, 16, 1, 2, 1
-248, 108, 493, 284, 122, 62, 1, 2, 1
-248, 229, 398, 272, 34, 27, 1, 2, 1
-249, 1, 242, 285, 48, 34, 1, 2, 1
-249, 3, 216, 311, 134, 130, 1, 2, 1
-249, 8, 718, 277, 24, 72, 1, 0, 1
-249, 55, 53, 291, 21, 52, 1, 0, 1
-249, 82, 367, 257, 22, 17, 1, 2, 1
-249, 108, 499, 284, 125, 63, 1, 2, 1
-249, 229, 398, 268, 38, 30, 1, 2, 1
-250, 1, 244, 286, 48, 34, 1, 2, 1
-250, 3, 218, 311, 135, 129, 1, 2, 1
-250, 8, 722, 276, 25, 72, 1, 0, 1
-250, 55, 53, 292, 21, 53, 1, 0, 1
-250, 61, 315, 259, 19, 15, 1, 2, 1
-250, 82, 368, 257, 23, 18, 1, 2, 1
-250, 108, 506, 283, 126, 63, 1, 2, 1
-250, 229, 401, 270, 35, 29, 1, 2, 1
-250, 234, 671, 286, 23, 68, 1, 0, 1
-251, 1, 247, 285, 48, 35, 1, 2, 1
-251, 3, 223, 312, 134, 128, 1, 2, 1
-251, 8, 725, 275, 25, 74, 1, 0, 1
-251, 55, 53, 293, 22, 52, 1, 0, 1
-251, 61, 314, 258, 21, 16, 1, 2, 1
-251, 82, 370, 256, 23, 19, 1, 2, 1
-251, 108, 510, 283, 126, 63, 1, 2, 1
-251, 229, 405, 275, 32, 26, 1, 2, 1
-251, 234, 676, 288, 22, 69, 1, 0, 1
-252, 1, 249, 285, 48, 35, 1, 2, 1
-252, 3, 226, 312, 135, 128, 1, 2, 1
-252, 8, 728, 274, 25, 74, 1, 0, 1
-252, 55, 54, 294, 21, 51, 1, 0, 1
-252, 61, 316, 258, 20, 16, 1, 2, 1
-252, 82, 373, 257, 22, 17, 1, 2, 1
-252, 108, 515, 283, 124, 63, 1, 2, 1
-252, 229, 407, 275, 32, 26, 1, 2, 1
-252, 234, 679, 291, 22, 66, 1, 0, 1
-253, 1, 251, 285, 48, 35, 1, 2, 1
-253, 3, 230, 313, 134, 127, 1, 2, 1
-253, 8, 731, 272, 25, 76, 1, 0, 1
-253, 55, 55, 295, 21, 52, 1, 0, 1
-253, 61, 318, 258, 20, 16, 1, 2, 1
-253, 82, 375, 257, 22, 18, 1, 2, 1
-253, 108, 527, 283, 126, 63, 1, 2, 1
-253, 229, 408, 274, 34, 27, 1, 2, 1
-253, 234, 685, 293, 21, 61, 1, 0, 1
-254, 1, 255, 285, 48, 35, 1, 2, 1
-254, 3, 232, 312, 137, 128, 1, 2, 1
-254, 8, 734, 271, 25, 76, 1, 0, 1
-254, 55, 57, 295, 21, 53, 1, 0, 1
-254, 82, 377, 257, 23, 19, 1, 2, 1
-254, 108, 536, 281, 128, 64, 1, 2, 1
-254, 229, 411, 272, 36, 29, 1, 2, 1
-254, 234, 690, 294, 20, 60, 1, 0, 1
-255, 1, 257, 286, 48, 35, 1, 2, 1
-255, 3, 235, 313, 138, 128, 1, 2, 1
-255, 8, 738, 270, 25, 77, 1, 0, 1
-255, 55, 59, 296, 22, 54, 1, 0, 1
-255, 82, 379, 258, 22, 18, 1, 2, 1
-255, 108, 543, 280, 129, 65, 1, 2, 1
-255, 229, 413, 272, 36, 29, 1, 2, 1
-255, 234, 697, 295, 19, 57, 1, 0, 1
-256, 1, 259, 286, 49, 35, 1, 2, 1
-256, 3, 238, 313, 139, 129, 1, 2, 1
-256, 8, 742, 271, 25, 76, 1, 0, 1
-256, 55, 61, 297, 22, 54, 1, 0, 1
-256, 82, 382, 259, 22, 17, 1, 2, 1
-256, 108, 555, 280, 130, 66, 1, 2, 1
-256, 229, 417, 275, 33, 27, 1, 2, 1
-256, 234, 702, 296, 20, 59, 1, 0, 1
-257, 1, 261, 285, 49, 36, 1, 2, 1
-257, 3, 242, 312, 140, 129, 1, 2, 1
-257, 8, 746, 270, 25, 76, 1, 0, 1
-257, 55, 61, 297, 23, 55, 1, 0, 1
-257, 82, 385, 258, 22, 17, 1, 2, 1
-257, 108, 561, 278, 133, 68, 1, 2, 1
-257, 229, 419, 275, 35, 28, 1, 2, 1
-257, 234, 707, 297, 19, 58, 1, 0, 1
-258, 1, 265, 285, 48, 35, 1, 2, 1
-258, 3, 247, 313, 140, 128, 1, 2, 1
-258, 8, 750, 271, 25, 76, 1, 0, 1
-258, 55, 64, 298, 22, 54, 1, 0, 1
-258, 82, 387, 257, 22, 19, 1, 2, 1
-258, 108, 571, 277, 133, 69, 1, 2, 1
-258, 229, 423, 275, 34, 28, 1, 2, 1
-259, 1, 269, 286, 46, 33, 1, 2, 1
-259, 3, 252, 313, 141, 128, 1, 2, 1
-259, 8, 755, 273, 24, 75, 1, 0, 1
-259, 55, 65, 298, 22, 54, 1, 0, 1
-259, 82, 389, 257, 22, 19, 1, 2, 1
-259, 108, 589, 278, 133, 68, 1, 2, 1
-259, 229, 426, 275, 35, 28, 1, 2, 1
-260, 1, 272, 286, 46, 33, 1, 2, 1
-260, 3, 255, 313, 141, 127, 1, 2, 1
-260, 8, 757, 273, 26, 75, 1, 0, 1
-260, 55, 65, 298, 23, 54, 1, 0, 1
-260, 82, 392, 258, 22, 18, 1, 2, 1
-260, 108, 594, 280, 131, 66, 1, 2, 1
-260, 212, 479, 261, 17, 35, 1, 0, 1
-260, 229, 429, 274, 35, 28, 1, 2, 1
-261, 1, 275, 285, 45, 33, 1, 2, 1
-261, 3, 259, 313, 143, 127, 1, 2, 1
-261, 8, 761, 273, 27, 75, 1, 0, 1
-261, 55, 66, 298, 23, 55, 1, 0, 1
-261, 82, 395, 259, 21, 17, 1, 2, 1
-261, 108, 607, 279, 134, 67, 1, 2, 1
-261, 212, 480, 259, 17, 37, 1, 0, 1
-261, 229, 432, 274, 35, 28, 1, 2, 1
-262, 1, 277, 284, 46, 35, 1, 2, 1
-262, 3, 265, 313, 142, 126, 1, 2, 1
-262, 8, 765, 274, 29, 76, 1, 0, 1
-262, 55, 67, 299, 23, 54, 1, 0, 1
-262, 82, 398, 259, 20, 17, 1, 2, 1
-262, 108, 620, 278, 135, 67, 1, 2, 1
-262, 212, 485, 259, 16, 38, 1, 0, 1
-262, 229, 436, 275, 34, 27, 1, 2, 1
-262, 249, 571, 266, 21, 53, 1, 0, 1
-263, 1, 281, 284, 45, 34, 1, 2, 1
-263, 3, 269, 313, 142, 125, 1, 2, 1
-263, 8, 769, 274, 28, 76, 1, 0, 1
-263, 55, 69, 299, 22, 54, 1, 0, 1
-263, 82, 401, 259, 20, 16, 1, 2, 1
-263, 108, 633, 278, 143, 70, 1, 2, 1
-263, 212, 487, 260, 16, 37, 1, 0, 1
-263, 229, 439, 275, 35, 28, 1, 2, 1
-263, 249, 577, 265, 21, 54, 1, 0, 1
-264, 1, 284, 284, 45, 33, 1, 2, 1
-264, 3, 274, 312, 145, 127, 1, 2, 1
-264, 55, 71, 299, 23, 55, 1, 0, 1
-264, 82, 403, 258, 21, 17, 1, 2, 1
-264, 108, 644, 277, 145, 72, 1, 2, 1
-264, 212, 491, 260, 15, 37, 1, 0, 1
-264, 229, 441, 275, 37, 29, 1, 2, 1
-264, 249, 580, 264, 22, 55, 1, 0, 1
-265, 1, 286, 284, 45, 33, 1, 2, 1
-265, 3, 277, 312, 148, 128, 1, 2, 1
-265, 8, 780, 281, 28, 72, 1, 0, 1
-265, 55, 72, 299, 23, 55, 1, 0, 1
-265, 82, 404, 258, 23, 18, 1, 2, 1
-265, 108, 648, 278, 142, 71, 1, 2, 1
-265, 212, 491, 260, 16, 37, 1, 0, 1
-265, 229, 443, 274, 39, 30, 1, 2, 1
-266, 1, 289, 284, 45, 33, 1, 2, 1
-266, 3, 283, 311, 149, 129, 1, 2, 1
-266, 8, 786, 280, 29, 73, 1, 0, 1
-266, 55, 75, 299, 23, 55, 1, 0, 1
-266, 82, 407, 258, 22, 18, 1, 2, 1
-266, 108, 660, 277, 146, 73, 1, 2, 1
-266, 212, 497, 258, 16, 41, 1, 0, 1
-266, 229, 445, 274, 41, 32, 1, 2, 1
-267, 1, 292, 284, 44, 33, 1, 2, 1
-267, 3, 286, 311, 151, 129, 1, 2, 1
-267, 8, 790, 281, 29, 73, 1, 0, 1
-267, 55, 76, 300, 23, 54, 1, 0, 1
-267, 82, 409, 258, 22, 19, 1, 2, 1
-267, 108, 675, 276, 151, 76, 1, 2, 1
-267, 212, 500, 257, 17, 42, 1, 0, 1
-267, 229, 449, 275, 41, 32, 1, 2, 1
-268, 1, 296, 284, 44, 32, 1, 2, 1
-268, 3, 292, 312, 150, 128, 1, 2, 1
-268, 55, 78, 300, 23, 54, 1, 0, 1
-268, 82, 412, 259, 22, 19, 1, 2, 1
-268, 108, 695, 278, 142, 71, 1, 2, 1
-268, 212, 503, 258, 16, 40, 1, 0, 1
-268, 229, 452, 274, 43, 34, 1, 2, 1
-268, 261, 524, 252, 20, 51, 1, 0, 1
-269, 1, 299, 284, 43, 31, 1, 2, 1
-269, 3, 298, 312, 151, 129, 1, 2, 1
-269, 55, 78, 300, 24, 54, 1, 0, 1
-269, 61, 353, 258, 19, 15, 1, 2, 1
-269, 82, 414, 259, 23, 19, 1, 2, 1
-269, 108, 707, 278, 139, 68, 1, 2, 1
-269, 212, 505, 258, 16, 39, 1, 0, 1
-269, 229, 455, 274, 43, 34, 1, 2, 1
-269, 234, 783, 288, 36, 99, 1, 0, 1
-269, 261, 527, 252, 19, 51, 1, 0, 1
-270, 1, 302, 283, 43, 31, 1, 2, 1
-270, 3, 304, 312, 151, 127, 1, 2, 1
-270, 55, 79, 298, 24, 56, 1, 0, 1
-270, 61, 356, 257, 19, 15, 1, 2, 1
-270, 82, 417, 259, 22, 18, 1, 2, 1
-270, 108, 723, 278, 138, 66, 1, 2, 1
-270, 212, 508, 257, 15, 39, 1, 0, 1
-270, 229, 457, 273, 45, 35, 1, 2, 1
-270, 234, 787, 289, 36, 100, 1, 0, 1
-270, 261, 530, 250, 20, 52, 1, 0, 1
-271, 1, 307, 282, 42, 31, 1, 2, 1
-271, 3, 310, 312, 150, 125, 1, 2, 1
-271, 55, 81, 297, 23, 56, 1, 0, 1
-271, 61, 359, 257, 18, 15, 1, 2, 1
-271, 82, 421, 258, 22, 18, 1, 2, 1
-271, 108, 738, 279, 137, 64, 1, 2, 1
-271, 212, 509, 255, 16, 40, 1, 0, 1
-271, 229, 462, 273, 44, 35, 1, 2, 1
-271, 234, 790, 292, 35, 99, 1, 0, 1
-271, 261, 535, 257, 17, 45, 1, 0, 1
-272, 1, 310, 282, 42, 31, 1, 2, 1
-272, 3, 316, 311, 151, 125, 1, 2, 1
-272, 55, 82, 296, 23, 56, 1, 0, 1
-272, 61, 361, 257, 19, 15, 1, 2, 1
-272, 82, 424, 258, 21, 18, 1, 2, 1
-272, 108, 752, 278, 141, 66, 1, 2, 1
-272, 212, 512, 257, 15, 38, 1, 0, 1
-272, 229, 467, 274, 42, 34, 1, 2, 1
-272, 234, 796, 292, 36, 101, 1, 0, 1
-272, 261, 537, 256, 18, 46, 1, 0, 1
-273, 1, 311, 282, 44, 31, 1, 2, 1
-273, 3, 324, 310, 152, 125, 1, 2, 1
-273, 55, 83, 297, 24, 55, 1, 0, 1
-273, 61, 363, 257, 19, 15, 1, 2, 1
-273, 82, 426, 258, 23, 19, 1, 2, 1
-273, 108, 759, 279, 140, 65, 1, 2, 1
-273, 212, 516, 256, 15, 39, 1, 0, 1
-273, 229, 471, 275, 41, 32, 1, 2, 1
-273, 234, 803, 292, 36, 103, 1, 0, 1
-273, 261, 541, 257, 18, 45, 1, 0, 1
-274, 1, 314, 281, 42, 30, 1, 2, 1
-274, 3, 329, 309, 153, 125, 1, 2, 1
-274, 55, 83, 295, 24, 57, 1, 0, 1
-274, 61, 366, 255, 19, 16, 1, 2, 1
-274, 82, 428, 257, 23, 20, 1, 2, 1
-274, 108, 770, 277, 150, 69, 1, 2, 1
-274, 212, 519, 257, 15, 39, 1, 0, 1
-274, 229, 475, 275, 41, 33, 1, 2, 1
-274, 234, 811, 293, 37, 106, 1, 0, 1
-274, 261, 544, 259, 17, 43, 1, 0, 1
-275, 1, 318, 280, 40, 30, 1, 2, 1
-275, 3, 333, 308, 157, 126, 1, 2, 1
-275, 55, 84, 295, 25, 57, 1, 0, 1
-275, 61, 368, 255, 19, 16, 1, 2, 1
-275, 82, 431, 256, 23, 20, 1, 2, 1
-275, 108, 787, 279, 141, 63, 1, 2, 1
-275, 212, 522, 257, 15, 38, 1, 0, 1
-275, 229, 477, 275, 43, 33, 1, 2, 1
-275, 234, 818, 291, 39, 111, 1, 0, 1
-275, 261, 548, 258, 17, 43, 1, 0, 1
-276, 1, 321, 281, 39, 28, 1, 2, 1
-276, 3, 340, 308, 157, 126, 1, 2, 1
-276, 55, 86, 295, 24, 57, 1, 0, 1
-276, 82, 434, 256, 23, 19, 1, 2, 1
-276, 108, 797, 280, 137, 62, 1, 2, 1
-276, 212, 525, 257, 15, 37, 1, 0, 1
-276, 229, 480, 275, 44, 34, 1, 2, 1
-276, 234, 827, 292, 39, 114, 1, 0, 1
-276, 261, 550, 258, 17, 43, 1, 0, 1
-277, 1, 324, 279, 40, 29, 1, 2, 1
-277, 3, 348, 307, 159, 127, 1, 2, 1
-277, 55, 87, 295, 25, 57, 1, 0, 1
-277, 82, 437, 256, 24, 19, 1, 2, 1
-277, 108, 808, 279, 141, 63, 1, 2, 1
-277, 212, 528, 256, 15, 38, 1, 0, 1
-277, 229, 484, 275, 44, 34, 1, 2, 1
-277, 234, 835, 295, 40, 113, 1, 0, 1
-277, 261, 553, 260, 16, 40, 1, 0, 1
-277, 275, 796, 282, 59, 59, 1, 2, 1
-278, 1, 327, 278, 40, 29, 1, 2, 1
-278, 3, 354, 308, 160, 126, 1, 2, 1
-278, 55, 88, 295, 24, 58, 1, 0, 1
-278, 82, 439, 256, 24, 19, 1, 2, 1
-278, 108, 821, 276, 138, 63, 1, 2, 1
-278, 212, 531, 257, 15, 37, 1, 0, 1
-278, 229, 487, 274, 46, 35, 1, 2, 1
-278, 234, 843, 297, 41, 113, 1, 0, 1
-278, 261, 553, 261, 16, 39, 1, 0, 1
-278, 275, 801, 282, 59, 60, 1, 2, 1
-279, 1, 330, 278, 40, 29, 1, 2, 1
-279, 3, 362, 308, 162, 126, 1, 2, 1
-279, 55, 88, 296, 25, 58, 1, 0, 1
-279, 61, 376, 252, 21, 17, 1, 2, 1
-279, 82, 441, 256, 24, 19, 1, 2, 1
-279, 108, 830, 277, 129, 63, 1, 2, 1
-279, 212, 533, 257, 15, 36, 1, 0, 1
-279, 229, 492, 276, 45, 33, 1, 2, 1
-279, 234, 850, 299, 41, 114, 1, 0, 1
-279, 261, 553, 261, 16, 39, 1, 0, 1
-280, 1, 333, 279, 39, 28, 1, 2, 1
-280, 3, 368, 309, 163, 126, 1, 2, 1
-280, 55, 89, 296, 24, 59, 1, 0, 1
-280, 61, 379, 253, 18, 16, 1, 2, 1
-280, 82, 444, 256, 24, 20, 1, 2, 1
-280, 108, 842, 277, 117, 63, 1, 2, 1
-280, 212, 537, 257, 14, 37, 1, 0, 1
-280, 229, 495, 277, 45, 32, 1, 2, 1
-280, 234, 858, 299, 42, 118, 1, 0, 1
-280, 249, 609, 268, 25, 64, 1, 0, 1
-280, 261, 559, 261, 17, 40, 1, 0, 1
-280, 280, 591, 261, 16, 46, 1, 0, 1
-281, 1, 336, 279, 39, 28, 1, 2, 1
-281, 3, 376, 310, 163, 125, 1, 2, 1
-281, 8, 859, 274, 35, 91, 1, 0, 1
-281, 55, 90, 299, 24, 57, 1, 0, 1
-281, 61, 381, 253, 18, 16, 1, 2, 1
-281, 82, 446, 256, 25, 21, 1, 2, 1
-281, 212, 541, 254, 14, 39, 1, 0, 1
-281, 229, 499, 277, 46, 33, 1, 2, 1
-281, 234, 867, 300, 44, 119, 1, 0, 1
-281, 249, 615, 271, 23, 62, 1, 0, 1
-281, 261, 561, 257, 18, 44, 1, 0, 1
-281, 280, 595, 261, 17, 47, 1, 0, 1
-282, 1, 340, 280, 37, 27, 1, 2, 1
-282, 3, 382, 310, 164, 125, 1, 2, 1
-282, 8, 864, 273, 33, 90, 1, 0, 1
-282, 55, 91, 299, 24, 57, 1, 0, 1
-282, 82, 449, 257, 25, 20, 1, 2, 1
-282, 212, 543, 254, 15, 38, 1, 0, 1
-282, 229, 503, 277, 48, 33, 1, 2, 1
-282, 234, 876, 304, 45, 118, 1, 0, 1
-282, 249, 617, 276, 23, 57, 1, 0, 1
-282, 261, 563, 258, 18, 43, 1, 0, 1
-282, 280, 598, 260, 16, 46, 1, 0, 1
-283, 1, 342, 279, 40, 28, 1, 2, 1
-283, 3, 390, 309, 166, 125, 1, 2, 1
-283, 8, 869, 273, 33, 91, 1, 0, 1
-283, 55, 94, 299, 24, 58, 1, 0, 1
-283, 82, 451, 256, 25, 21, 1, 2, 1
-283, 229, 507, 278, 48, 34, 1, 2, 1
-283, 234, 890, 305, 45, 118, 1, 0, 1
-283, 249, 620, 274, 22, 58, 1, 0, 1
-283, 261, 566, 258, 18, 43, 1, 0, 1
-283, 280, 601, 260, 16, 46, 1, 0, 1
-283, 285, 891, 284, 68, 54, 1, 2, 1
-284, 1, 345, 279, 39, 27, 1, 2, 1
-284, 3, 398, 311, 167, 124, 1, 2, 1
-284, 8, 875, 273, 33, 95, 1, 0, 1
-284, 55, 96, 299, 24, 59, 1, 0, 1
-284, 82, 454, 256, 25, 21, 1, 2, 1
-284, 229, 510, 279, 50, 33, 1, 2, 1
-284, 234, 901, 305, 46, 120, 1, 0, 1
-284, 249, 622, 273, 22, 58, 1, 0, 1
-284, 261, 571, 257, 18, 44, 1, 0, 1
-284, 285, 906, 289, 53, 42, 1, 2, 1
-285, 1, 349, 279, 38, 27, 1, 2, 1
-285, 3, 405, 310, 169, 125, 1, 2, 1
-285, 8, 881, 274, 32, 94, 1, 0, 1
-285, 55, 97, 300, 25, 60, 1, 0, 1
-285, 82, 457, 256, 25, 21, 1, 2, 1
-285, 229, 514, 279, 50, 33, 1, 2, 1
-285, 234, 910, 305, 48, 123, 1, 0, 1
-285, 249, 626, 272, 23, 59, 1, 0, 1
-285, 261, 574, 260, 17, 41, 1, 0, 1
-285, 285, 919, 289, 40, 38, 1, 2, 1
-285, 288, 652, 266, 18, 61, 1, 0, 1
-286, 1, 352, 279, 37, 26, 1, 2, 1
-286, 3, 412, 310, 170, 125, 1, 2, 1
-286, 8, 889, 273, 32, 95, 1, 0, 1
-286, 55, 98, 301, 25, 59, 1, 0, 1
-286, 82, 460, 257, 24, 20, 1, 2, 1
-286, 229, 518, 278, 52, 35, 1, 2, 1
-286, 234, 918, 304, 41, 126, 1, 0, 1
-286, 249, 629, 273, 23, 59, 1, 0, 1
-286, 261, 575, 258, 18, 42, 1, 0, 1
-286, 285, 929, 291, 30, 32, 1, 2, 1
-286, 288, 657, 267, 18, 59, 1, 0, 1
-287, 1, 355, 279, 37, 26, 1, 2, 1
-287, 3, 422, 310, 172, 125, 1, 2, 1
-287, 8, 895, 273, 33, 95, 1, 0, 1
-287, 55, 99, 302, 24, 59, 1, 0, 1
-287, 82, 462, 257, 24, 20, 1, 2, 1
-287, 229, 522, 278, 54, 35, 1, 2, 1
-287, 234, 926, 306, 33, 121, 1, 0, 1
-287, 249, 630, 273, 23, 59, 1, 0, 1
-287, 261, 578, 258, 17, 42, 1, 0, 1
-287, 288, 660, 266, 19, 61, 1, 0, 1
-288, 1, 358, 279, 37, 26, 1, 2, 1
-288, 3, 430, 310, 173, 124, 1, 2, 1
-288, 8, 903, 272, 34, 98, 1, 0, 1
-288, 55, 100, 302, 25, 60, 1, 0, 1
-288, 82, 465, 257, 24, 21, 1, 2, 1
-288, 229, 527, 277, 56, 36, 1, 2, 1
-288, 234, 935, 319, 24, 110, 1, 0, 1
-288, 249, 633, 276, 21, 57, 1, 0, 1
-288, 288, 666, 267, 18, 59, 1, 0, 1
-288, 293, 598, 263, 13, 37, 1, 0, 1
-289, 1, 360, 278, 39, 27, 1, 2, 1
-289, 3, 436, 309, 176, 125, 1, 2, 1
-289, 8, 910, 273, 35, 98, 1, 0, 1
-289, 55, 101, 302, 25, 60, 1, 0, 1
-289, 82, 467, 256, 25, 22, 1, 2, 1
-289, 229, 531, 277, 55, 35, 1, 2, 1
-289, 234, 943, 321, 16, 110, 1, 0, 1
-289, 249, 637, 276, 22, 56, 1, 0, 1
-289, 288, 667, 266, 19, 61, 1, 0, 1
-289, 293, 600, 263, 12, 37, 1, 0, 1
-290, 1, 363, 278, 39, 26, 1, 2, 1
-290, 3, 445, 308, 178, 125, 1, 2, 1
-290, 8, 916, 272, 36, 100, 1, 0, 1
-290, 55, 102, 302, 25, 60, 1, 0, 1
-290, 82, 469, 256, 26, 22, 1, 2, 1
-290, 229, 535, 277, 55, 35, 1, 2, 1
-290, 249, 639, 275, 23, 57, 1, 0, 1
-290, 288, 670, 266, 19, 61, 1, 0, 1
-290, 293, 600, 263, 13, 37, 1, 0, 1
-291, 1, 366, 278, 38, 26, 1, 2, 1
-291, 3, 453, 306, 183, 128, 1, 2, 1
-291, 8, 922, 272, 36, 101, 1, 0, 1
-291, 55, 102, 304, 24, 58, 1, 0, 1
-291, 82, 473, 256, 25, 21, 1, 2, 1
-291, 229, 538, 277, 55, 34, 1, 2, 1
-291, 249, 641, 275, 24, 60, 1, 0, 1
-291, 288, 671, 268, 19, 61, 1, 0, 1
-291, 293, 607, 263, 13, 37, 1, 0, 1
-292, 1, 369, 278, 37, 25, 1, 2, 1
-292, 3, 463, 306, 184, 128, 1, 2, 1
-292, 8, 926, 270, 33, 103, 1, 0, 1
-292, 55, 104, 305, 23, 58, 1, 0, 1
-292, 82, 475, 256, 25, 21, 1, 2, 1
-292, 229, 542, 277, 55, 33, 1, 2, 1
-292, 249, 645, 276, 23, 60, 1, 0, 1
-292, 288, 672, 268, 19, 61, 1, 0, 1
-292, 293, 610, 263, 13, 37, 1, 0, 1
-293, 1, 371, 277, 39, 27, 1, 2, 1
-293, 3, 471, 307, 186, 128, 1, 2, 1
-293, 8, 932, 270, 27, 104, 1, 0, 1
-293, 55, 106, 305, 24, 61, 1, 0, 1
-293, 82, 477, 256, 26, 21, 1, 2, 1
-293, 229, 548, 278, 55, 31, 1, 2, 1
-293, 249, 647, 277, 24, 59, 1, 0, 1
-293, 288, 678, 268, 20, 61, 1, 0, 1
-293, 293, 612, 263, 13, 37, 1, 0, 1
-294, 1, 374, 277, 38, 26, 1, 2, 1
-294, 3, 479, 307, 188, 128, 1, 2, 1
-294, 8, 937, 269, 22, 105, 1, 0, 1
-294, 55, 106, 304, 25, 63, 1, 0, 1
-294, 82, 479, 256, 26, 21, 1, 2, 1
-294, 229, 555, 280, 51, 29, 1, 2, 1
-294, 249, 653, 270, 25, 64, 1, 0, 1
-294, 288, 682, 268, 20, 62, 1, 0, 1
-295, 1, 377, 277, 37, 26, 1, 2, 1
-295, 3, 488, 306, 190, 129, 1, 2, 1
-295, 55, 106, 305, 26, 63, 1, 0, 1
-295, 82, 481, 256, 27, 22, 1, 2, 1
-295, 229, 557, 280, 53, 29, 1, 2, 1
-295, 249, 655, 268, 26, 67, 1, 0, 1
-295, 288, 684, 270, 19, 62, 1, 0, 1
-296, 1, 379, 278, 37, 26, 1, 2, 1
-296, 3, 498, 307, 191, 129, 1, 2, 1
-296, 55, 107, 305, 25, 62, 1, 0, 1
-296, 82, 484, 257, 26, 21, 1, 2, 1
-296, 229, 557, 279, 59, 32, 1, 2, 1
-296, 249, 657, 275, 24, 62, 1, 0, 1
-296, 288, 688, 276, 18, 56, 1, 0, 1
-297, 1, 383, 277, 36, 26, 1, 2, 1
-297, 3, 506, 307, 194, 129, 1, 2, 1
-297, 55, 108, 305, 25, 63, 1, 0, 1
-297, 82, 486, 257, 27, 21, 1, 2, 1
-297, 229, 561, 279, 61, 33, 1, 2, 1
-297, 249, 658, 274, 26, 66, 1, 0, 1
-297, 288, 692, 278, 17, 54, 1, 0, 1
-297, 293, 623, 263, 14, 39, 1, 0, 1
-298, 1, 385, 277, 37, 25, 1, 2, 1
-298, 3, 516, 307, 195, 129, 1, 2, 1
-298, 55, 109, 305, 25, 64, 1, 0, 1
-298, 82, 488, 257, 27, 22, 1, 2, 1
-298, 229, 563, 279, 63, 34, 1, 2, 1
-298, 249, 671, 271, 24, 65, 1, 0, 1
-298, 288, 695, 277, 18, 56, 1, 0, 1
-298, 293, 626, 263, 14, 39, 1, 0, 1
-299, 1, 388, 277, 36, 25, 1, 2, 1
-299, 3, 525, 307, 197, 129, 1, 2, 1
-299, 55, 109, 305, 26, 63, 1, 0, 1
-299, 82, 490, 257, 27, 21, 1, 2, 1
-299, 229, 567, 279, 65, 35, 1, 2, 1
-299, 249, 671, 270, 21, 57, 1, 0, 1
-299, 288, 698, 279, 19, 54, 1, 0, 1
-299, 293, 631, 263, 15, 41, 1, 0, 1
-300, 1, 390, 277, 36, 25, 1, 2, 1
-300, 3, 535, 307, 200, 130, 1, 2, 1
-300, 55, 109, 305, 26, 64, 1, 0, 1
-300, 82, 493, 257, 27, 22, 1, 2, 1
-300, 229, 570, 280, 67, 35, 1, 2, 1
-300, 249, 679, 270, 19, 51, 1, 0, 1
-300, 288, 701, 277, 21, 59, 1, 0, 1
-300, 293, 635, 263, 15, 42, 1, 0, 1
-301, 1, 391, 276, 37, 26, 1, 2, 1
-301, 3, 545, 308, 203, 131, 1, 2, 1
-301, 55, 111, 306, 26, 63, 1, 0, 1
-301, 82, 495, 258, 27, 22, 1, 2, 1
-301, 229, 573, 281, 69, 36, 1, 2, 1
-301, 249, 681, 268, 19, 48, 1, 0, 1
-301, 288, 704, 281, 20, 58, 1, 0, 1
-301, 293, 638, 264, 15, 41, 1, 0, 1
-302, 1, 394, 275, 36, 26, 1, 2, 1
-302, 3, 556, 308, 204, 132, 1, 2, 1
-302, 55, 112, 307, 25, 63, 1, 0, 1
-302, 82, 496, 257, 28, 23, 1, 2, 1
-302, 229, 577, 281, 72, 38, 1, 2, 1
-302, 249, 682, 267, 18, 46, 1, 0, 1
-302, 288, 707, 282, 21, 58, 1, 0, 1
-302, 293, 644, 263, 16, 43, 1, 0, 1
-302, 314, 793, 261, 18, 51, 1, 0, 1
-303, 1, 397, 276, 35, 25, 1, 2, 1
-303, 3, 566, 309, 206, 132, 1, 2, 1
-303, 55, 113, 310, 24, 61, 1, 0, 1
-303, 82, 498, 258, 29, 23, 1, 2, 1
-303, 229, 579, 282, 76, 39, 1, 2, 1
-303, 249, 686, 266, 17, 45, 1, 0, 1
-303, 293, 648, 263, 17, 45, 1, 0, 1
-303, 314, 794, 261, 18, 51, 1, 0, 1
-304, 1, 400, 277, 35, 24, 1, 2, 1
-304, 3, 577, 311, 207, 133, 1, 2, 1
-304, 55, 113, 310, 25, 63, 1, 0, 1
-304, 82, 501, 259, 29, 23, 1, 2, 1
-304, 229, 583, 284, 77, 39, 1, 2, 1
-304, 293, 650, 266, 16, 40, 1, 0, 1
-304, 314, 803, 265, 19, 52, 1, 0, 1
-305, 1, 402, 278, 36, 25, 1, 2, 1
-305, 3, 588, 312, 207, 131, 1, 2, 1
-305, 55, 113, 312, 25, 62, 1, 0, 1
-305, 82, 503, 260, 29, 24, 1, 2, 1
-305, 229, 585, 284, 80, 42, 1, 2, 1
-305, 293, 653, 266, 16, 41, 1, 0, 1
-305, 314, 806, 265, 19, 52, 1, 0, 1
-306, 1, 404, 279, 36, 26, 1, 2, 1
-306, 3, 598, 313, 211, 133, 1, 2, 1
-306, 55, 113, 312, 25, 63, 1, 0, 1
-306, 82, 505, 262, 28, 22, 1, 2, 1
-306, 229, 589, 286, 81, 43, 1, 2, 1
-306, 293, 655, 268, 14, 36, 1, 0, 1
-306, 314, 810, 268, 19, 53, 1, 0, 1
-306, 319, 709, 277, 15, 39, 1, 0, 1
-307, 1, 406, 279, 37, 26, 1, 2, 1
-307, 3, 610, 313, 212, 133, 1, 2, 1
-307, 55, 113, 312, 25, 64, 1, 0, 1
-307, 82, 507, 262, 28, 23, 1, 2, 1
-307, 229, 593, 287, 81, 42, 1, 2, 1
-307, 293, 658, 269, 14, 35, 1, 0, 1
-307, 314, 814, 268, 20, 55, 1, 0, 1
-307, 319, 710, 278, 15, 37, 1, 0, 1
-307, 321, 23, 315, 29, 63, 1, 0, 1
-308, 1, 409, 279, 35, 25, 1, 2, 1
-308, 3, 621, 314, 214, 133, 1, 2, 1
-308, 55, 113, 313, 25, 64, 1, 0, 1
-308, 82, 509, 263, 27, 22, 1, 2, 1
-308, 229, 596, 287, 81, 43, 1, 2, 1
-308, 288, 734, 282, 13, 35, 1, 0, 1
-308, 314, 817, 268, 19, 54, 1, 0, 1
-308, 319, 716, 280, 14, 36, 1, 0, 1
-308, 321, 23, 319, 28, 61, 1, 0, 1
-309, 1, 412, 279, 35, 26, 1, 2, 1
-309, 3, 632, 313, 217, 135, 1, 2, 1
-309, 55, 113, 313, 26, 65, 1, 0, 1
-309, 82, 511, 263, 29, 23, 1, 2, 1
-309, 229, 599, 287, 81, 43, 1, 2, 1
-309, 288, 730, 284, 14, 33, 1, 0, 1
-309, 293, 662, 269, 12, 30, 1, 0, 1
-309, 314, 822, 269, 19, 55, 1, 0, 1
-309, 319, 718, 280, 15, 37, 1, 0, 1
-309, 321, 21, 320, 29, 61, 1, 0, 1
-310, 1, 414, 280, 35, 25, 1, 2, 1
-310, 3, 644, 313, 219, 135, 1, 2, 1
-310, 55, 113, 314, 26, 65, 1, 0, 1
-310, 82, 513, 264, 29, 23, 1, 2, 1
-310, 229, 601, 288, 82, 43, 1, 2, 1
-310, 249, 704, 278, 16, 40, 1, 0, 1
-310, 288, 730, 286, 13, 31, 1, 0, 1
-310, 293, 665, 269, 11, 30, 1, 0, 1
-310, 314, 826, 269, 19, 55, 1, 0, 1
-310, 319, 721, 281, 14, 37, 1, 0, 1
-310, 321, 21, 321, 29, 61, 1, 0, 1
-311, 1, 416, 279, 34, 26, 1, 2, 1
-311, 3, 655, 313, 220, 135, 1, 2, 1
-311, 55, 113, 315, 26, 65, 1, 0, 1
-311, 82, 515, 264, 29, 23, 1, 2, 1
-311, 229, 604, 288, 82, 45, 1, 2, 1
-311, 249, 706, 279, 16, 39, 1, 0, 1
-311, 288, 732, 286, 13, 30, 1, 0, 1
-311, 314, 829, 270, 19, 54, 1, 0, 1
-311, 319, 721, 281, 15, 37, 1, 0, 1
-311, 321, 20, 320, 29, 63, 1, 0, 1
-312, 1, 418, 279, 35, 25, 1, 2, 1
-312, 3, 667, 312, 223, 137, 1, 2, 1
-312, 55, 113, 315, 26, 66, 1, 0, 1
-312, 82, 517, 265, 30, 23, 1, 2, 1
-312, 229, 606, 288, 82, 45, 1, 2, 1
-312, 314, 834, 270, 19, 55, 1, 0, 1
-312, 319, 721, 279, 16, 40, 1, 0, 1
-312, 321, 20, 321, 29, 62, 1, 0, 1
-313, 1, 420, 279, 34, 25, 1, 2, 1
-313, 3, 677, 311, 229, 139, 1, 2, 1
-313, 55, 112, 317, 26, 66, 1, 0, 1
-313, 82, 519, 265, 30, 24, 1, 2, 1
-313, 229, 608, 288, 84, 47, 1, 2, 1
-313, 288, 740, 286, 16, 33, 1, 0, 1
-313, 314, 838, 271, 19, 55, 1, 0, 1
-313, 319, 726, 281, 16, 38, 1, 0, 1
-313, 321, 20, 322, 29, 63, 1, 0, 1
-314, 1, 422, 280, 33, 24, 1, 2, 1
-314, 3, 692, 312, 229, 139, 1, 2, 1
-314, 55, 111, 317, 26, 67, 1, 0, 1
-314, 82, 521, 265, 29, 23, 1, 2, 1
-314, 229, 613, 290, 82, 45, 1, 2, 1
-314, 288, 748, 289, 15, 31, 1, 0, 1
-314, 314, 842, 271, 18, 52, 1, 0, 1
-314, 319, 728, 281, 17, 40, 1, 0, 1
-314, 321, 19, 323, 29, 63, 1, 0, 1
-315, 1, 424, 279, 34, 24, 1, 2, 1
-315, 3, 704, 312, 231, 139, 1, 2, 1
-315, 55, 111, 318, 26, 67, 1, 0, 1
-315, 82, 523, 265, 30, 24, 1, 2, 1
-315, 229, 617, 290, 80, 46, 1, 2, 1
-315, 288, 751, 289, 16, 34, 1, 0, 1
-315, 314, 847, 273, 17, 48, 1, 0, 1
-315, 319, 731, 279, 18, 45, 1, 0, 1
-315, 321, 19, 323, 29, 64, 1, 0, 1
-316, 1, 426, 279, 33, 24, 1, 2, 1
-316, 3, 717, 312, 233, 139, 1, 2, 1
-316, 55, 111, 318, 26, 67, 1, 0, 1
-316, 82, 525, 265, 30, 24, 1, 2, 1
-316, 229, 620, 291, 80, 46, 1, 2, 1
-316, 288, 755, 290, 16, 33, 1, 0, 1
-316, 314, 851, 273, 17, 46, 1, 0, 1
-316, 319, 733, 279, 19, 46, 1, 0, 1
-316, 321, 18, 323, 29, 64, 1, 0, 1
-317, 1, 428, 278, 33, 25, 1, 2, 1
-317, 3, 726, 311, 233, 140, 1, 2, 1
-317, 55, 112, 319, 26, 67, 1, 0, 1
-317, 82, 526, 265, 30, 23, 1, 2, 1
-317, 229, 622, 290, 81, 48, 1, 2, 1
-317, 314, 855, 273, 16, 46, 1, 0, 1
-317, 321, 17, 323, 29, 64, 1, 0, 1
-318, 1, 430, 278, 33, 25, 1, 2, 1
-318, 3, 734, 313, 225, 139, 1, 2, 1
-318, 55, 113, 318, 26, 69, 1, 0, 1
-318, 82, 528, 265, 30, 23, 1, 2, 1
-318, 229, 624, 290, 80, 47, 1, 2, 1
-318, 314, 858, 273, 17, 44, 1, 0, 1
-318, 321, 16, 323, 29, 65, 1, 0, 1
-319, 1, 433, 279, 33, 24, 1, 2, 1
-319, 3, 743, 313, 216, 139, 1, 2, 1
-319, 55, 113, 319, 27, 69, 1, 0, 1
-319, 82, 530, 266, 29, 23, 1, 2, 1
-319, 229, 624, 290, 81, 49, 1, 2, 1
-319, 314, 863, 272, 17, 45, 1, 0, 1
-319, 321, 14, 323, 29, 66, 1, 0, 1
-320, 1, 434, 279, 33, 24, 1, 2, 1
-320, 3, 749, 312, 210, 139, 1, 2, 1
-320, 55, 113, 319, 27, 69, 1, 0, 1
-320, 82, 531, 265, 31, 24, 1, 2, 1
-320, 229, 629, 290, 78, 49, 1, 2, 1
-320, 314, 867, 272, 16, 45, 1, 0, 1
-320, 321, 13, 323, 30, 67, 1, 0, 1
-321, 1, 436, 278, 32, 24, 1, 2, 1
-321, 3, 758, 312, 201, 140, 1, 2, 1
-321, 55, 113, 319, 27, 69, 1, 0, 1
-321, 82, 533, 266, 31, 23, 1, 2, 1
-321, 229, 631, 291, 75, 48, 1, 2, 1
-321, 314, 870, 272, 17, 45, 1, 0, 1
-321, 321, 13, 323, 29, 68, 1, 0, 1
-321, 338, 760, 288, 29, 75, 1, 0, 1
-322, 1, 437, 277, 32, 23, 1, 2, 1
-322, 3, 766, 312, 193, 140, 1, 2, 1
-322, 55, 113, 320, 27, 69, 1, 0, 1
-322, 82, 536, 266, 29, 23, 1, 2, 1
-322, 229, 634, 291, 74, 48, 1, 2, 1
-322, 314, 874, 272, 17, 45, 1, 0, 1
-322, 321, 12, 323, 30, 69, 1, 0, 1
-322, 338, 765, 289, 27, 73, 1, 0, 1
-323, 1, 439, 277, 31, 23, 1, 2, 1
-323, 3, 779, 312, 180, 138, 1, 2, 1
-323, 55, 112, 319, 28, 71, 1, 0, 1
-323, 82, 537, 266, 31, 23, 1, 2, 1
-323, 229, 638, 290, 71, 48, 1, 2, 1
-323, 280, 705, 296, 29, 78, 1, 0, 1
-323, 314, 877, 270, 18, 47, 1, 0, 1
-323, 321, 11, 324, 31, 69, 1, 0, 1
-323, 338, 768, 290, 28, 73, 1, 0, 1
-324, 1, 441, 277, 31, 22, 1, 2, 1
-324, 3, 790, 313, 169, 135, 1, 2, 1
-324, 55, 111, 317, 28, 73, 1, 0, 1
-324, 82, 538, 265, 33, 24, 1, 2, 1
-324, 229, 642, 291, 69, 47, 1, 2, 1
-324, 280, 706, 297, 31, 78, 1, 0, 1
-324, 293, 705, 265, 15, 35, 1, 0, 1
-324, 314, 879, 269, 19, 50, 1, 0, 1
-324, 321, 11, 323, 30, 70, 1, 0, 1
-324, 338, 770, 290, 28, 73, 1, 0, 1
-325, 1, 443, 276, 31, 22, 1, 2, 1
-325, 3, 801, 312, 158, 135, 1, 2, 1
-325, 55, 111, 317, 28, 73, 1, 0, 1
-325, 82, 540, 264, 33, 25, 1, 2, 1
-325, 229, 645, 292, 66, 46, 1, 2, 1
-325, 280, 710, 300, 31, 75, 1, 0, 1
-325, 293, 708, 265, 15, 35, 1, 0, 1
-325, 314, 883, 269, 20, 52, 1, 0, 1
-325, 321, 10, 323, 30, 69, 1, 0, 1
-325, 338, 773, 291, 28, 73, 1, 0, 1
-326, 1, 445, 275, 31, 23, 1, 2, 1
-326, 3, 817, 314, 142, 128, 1, 2, 1
-326, 55, 111, 317, 28, 73, 1, 0, 1
-326, 82, 540, 264, 34, 25, 1, 2, 1
-326, 229, 647, 292, 66, 46, 1, 2, 1
-326, 280, 710, 302, 31, 74, 1, 0, 1
-326, 314, 885, 268, 22, 54, 1, 0, 1
-326, 321, 7, 325, 29, 68, 1, 0, 1
-326, 338, 775, 292, 28, 74, 1, 0, 1
-327, 1, 446, 275, 31, 22, 1, 2, 1
-327, 3, 828, 315, 131, 129, 1, 2, 1
-327, 55, 110, 318, 28, 73, 1, 0, 1
-327, 82, 541, 263, 35, 26, 1, 2, 1
-327, 229, 651, 292, 65, 46, 1, 2, 1
-327, 280, 711, 302, 30, 74, 1, 0, 1
-327, 314, 889, 267, 22, 58, 1, 0, 1
-327, 321, 8, 324, 29, 68, 1, 0, 1
-327, 338, 776, 293, 28, 74, 1, 0, 1
-328, 1, 448, 274, 30, 22, 1, 2, 1
-328, 3, 841, 316, 118, 125, 1, 2, 1
-328, 55, 103, 319, 28, 73, 1, 0, 1
-328, 82, 541, 263, 36, 26, 1, 2, 1
-328, 229, 652, 293, 64, 46, 1, 2, 1
-328, 280, 711, 301, 32, 75, 1, 0, 1
-328, 314, 891, 266, 24, 62, 1, 0, 1
-328, 321, 5, 325, 29, 67, 1, 0, 1
-328, 338, 776, 291, 30, 78, 1, 0, 1
-329, 1, 449, 273, 31, 22, 1, 2, 1
-329, 3, 858, 320, 101, 116, 1, 2, 1
-329, 55, 103, 317, 28, 74, 1, 0, 1
-329, 82, 543, 262, 35, 27, 1, 2, 1
-329, 229, 655, 291, 63, 46, 1, 2, 1
-329, 280, 712, 299, 32, 77, 1, 0, 1
-329, 314, 895, 266, 23, 64, 1, 0, 1
-329, 321, 4, 324, 29, 68, 1, 0, 1
-329, 338, 779, 289, 30, 79, 1, 0, 1
-329, 348, 0, 324, 18, 67, 1, 0, 1
-330, 1, 450, 272, 31, 22, 1, 2, 1
-330, 3, 871, 322, 88, 113, 1, 2, 1
-330, 55, 102, 315, 29, 76, 1, 0, 1
-330, 82, 544, 261, 36, 27, 1, 2, 1
-330, 229, 656, 290, 64, 48, 1, 2, 1
-330, 280, 712, 300, 32, 76, 1, 0, 1
-330, 293, 714, 262, 18, 43, 1, 0, 1
-330, 314, 898, 267, 24, 65, 1, 0, 1
-330, 321, 3, 324, 28, 68, 1, 0, 1
-330, 338, 781, 290, 30, 79, 1, 0, 1
-330, 348, 0, 325, 17, 65, 1, 0, 1
-331, 1, 451, 270, 32, 23, 1, 2, 1
-331, 3, 881, 323, 78, 110, 1, 2, 1
-331, 55, 99, 316, 30, 76, 1, 0, 1
-331, 82, 544, 260, 37, 28, 1, 2, 1
-331, 229, 656, 289, 61, 47, 1, 2, 1
-331, 280, 713, 299, 31, 76, 1, 0, 1
-331, 293, 714, 262, 19, 42, 1, 0, 1
-331, 314, 901, 266, 24, 66, 1, 0, 1
-331, 321, 1, 323, 28, 69, 1, 0, 1
-331, 338, 782, 288, 30, 82, 1, 0, 1
-331, 348, 0, 325, 16, 65, 1, 0, 1
-332, 1, 451, 268, 33, 24, 1, 2, 1
-332, 55, 98, 316, 29, 75, 1, 0, 1
-332, 82, 546, 260, 36, 26, 1, 2, 1
-332, 229, 661, 287, 67, 51, 1, 2, 1
-332, 280, 714, 298, 30, 76, 1, 0, 1
-332, 293, 717, 261, 18, 43, 1, 0, 1
-332, 314, 903, 263, 25, 67, 1, 0, 1
-332, 321, 0, 321, 27, 70, 1, 0, 1
-332, 338, 783, 286, 32, 84, 1, 0, 1
-332, 350, 687, 289, 27, 74, 1, 0, 1
-333, 1, 451, 266, 34, 25, 1, 2, 1
-333, 55, 98, 315, 29, 75, 1, 0, 1
-333, 82, 547, 259, 35, 26, 1, 2, 1
-333, 229, 660, 285, 64, 51, 1, 2, 1
-333, 280, 714, 297, 31, 78, 1, 0, 1
-333, 314, 906, 263, 25, 66, 1, 0, 1
-333, 321, 0, 322, 24, 69, 1, 0, 1
-333, 338, 786, 286, 31, 83, 1, 0, 1
-333, 350, 686, 286, 28, 77, 1, 0, 1
-334, 1, 452, 265, 32, 24, 1, 2, 1
-334, 55, 98, 314, 29, 76, 1, 0, 1
-334, 82, 548, 258, 34, 25, 1, 2, 1
-334, 229, 663, 285, 63, 51, 1, 2, 1
-334, 280, 714, 296, 32, 80, 1, 0, 1
-334, 314, 909, 260, 26, 67, 1, 0, 1
-334, 321, 0, 323, 22, 67, 1, 0, 1
-334, 338, 786, 285, 32, 86, 1, 0, 1
-334, 350, 685, 286, 29, 77, 1, 0, 1
-335, 1, 453, 264, 31, 23, 1, 2, 1
-335, 55, 89, 316, 29, 74, 1, 0, 1
-335, 82, 549, 257, 35, 25, 1, 2, 1
-335, 229, 664, 284, 65, 52, 1, 2, 1
-335, 280, 714, 293, 33, 83, 1, 0, 1
-335, 314, 912, 258, 26, 68, 1, 0, 1
-335, 321, 0, 323, 21, 67, 1, 0, 1
-335, 338, 790, 290, 31, 82, 1, 0, 1
-335, 350, 684, 280, 30, 82, 1, 0, 1
-336, 1, 454, 262, 31, 24, 1, 2, 1
-336, 55, 87, 316, 28, 75, 1, 0, 1
-336, 82, 550, 256, 35, 25, 1, 2, 1
-336, 280, 715, 293, 33, 83, 1, 0, 1
-336, 314, 915, 256, 26, 69, 1, 0, 1
-336, 321, 0, 324, 18, 65, 1, 0, 1
-336, 338, 791, 284, 32, 87, 1, 0, 1
-336, 350, 682, 275, 33, 87, 1, 0, 1
-337, 1, 455, 262, 30, 23, 1, 2, 1
-337, 55, 88, 315, 29, 77, 1, 0, 1
-337, 82, 551, 256, 35, 26, 1, 2, 1
-337, 280, 716, 295, 34, 83, 1, 0, 1
-337, 314, 917, 256, 26, 69, 1, 0, 1
-337, 321, 0, 325, 17, 65, 1, 0, 1
-337, 338, 785, 271, 37, 101, 1, 0, 1
-337, 350, 682, 274, 34, 90, 1, 0, 1
-338, 1, 456, 263, 29, 22, 1, 2, 1
-338, 55, 88, 317, 30, 79, 1, 0, 1
-338, 82, 552, 256, 36, 26, 1, 2, 1
-338, 280, 717, 295, 34, 85, 1, 0, 1
-338, 314, 920, 256, 26, 68, 1, 0, 1
-338, 321, 0, 331, 15, 61, 1, 0, 1
-338, 338, 785, 269, 39, 106, 1, 0, 1
-338, 350, 681, 274, 35, 90, 1, 0, 1
-339, 1, 457, 263, 29, 22, 1, 2, 1
-339, 55, 86, 318, 31, 79, 1, 0, 1
-339, 82, 552, 257, 37, 26, 1, 2, 1
-339, 280, 717, 295, 35, 88, 1, 0, 1
-339, 314, 922, 256, 26, 70, 1, 0, 1
-339, 321, 0, 332, 13, 61, 1, 0, 1
-339, 338, 786, 273, 37, 104, 1, 0, 1
-339, 350, 680, 278, 34, 87, 1, 0, 1
-339, 358, 718, 283, 58, 53, 1, 2, 1
-340, 1, 458, 262, 29, 23, 1, 2, 1
-340, 55, 81, 319, 30, 79, 1, 0, 1
-340, 82, 552, 256, 38, 27, 1, 2, 1
-340, 280, 719, 295, 36, 88, 1, 0, 1
-340, 314, 924, 256, 26, 69, 1, 0, 1
-340, 338, 788, 273, 38, 107, 1, 0, 1
-340, 350, 680, 278, 34, 88, 1, 0, 1
-340, 358, 718, 284, 58, 53, 1, 2, 1
-341, 1, 459, 262, 29, 23, 1, 2, 1
-341, 55, 78, 321, 29, 78, 1, 0, 1
-341, 82, 553, 257, 38, 27, 1, 2, 1
-341, 280, 718, 297, 38, 88, 1, 0, 1
-341, 314, 927, 258, 26, 69, 1, 0, 1
-341, 338, 787, 270, 40, 111, 1, 0, 1
-341, 350, 680, 283, 32, 84, 1, 0, 1
-342, 1, 459, 263, 30, 23, 1, 2, 1
-342, 55, 76, 322, 30, 80, 1, 0, 1
-342, 82, 554, 258, 38, 27, 1, 2, 1
-342, 280, 717, 299, 39, 88, 1, 0, 1
-342, 314, 930, 260, 26, 69, 1, 0, 1
-342, 338, 788, 272, 40, 111, 1, 0, 1
-342, 350, 678, 280, 35, 89, 1, 0, 1
-343, 1, 459, 265, 30, 22, 1, 2, 1
-343, 55, 74, 325, 29, 79, 1, 0, 1
-343, 82, 553, 260, 40, 27, 1, 2, 1
-343, 280, 717, 300, 40, 90, 1, 0, 1
-343, 314, 933, 262, 25, 67, 1, 0, 1
-343, 338, 788, 273, 40, 110, 1, 0, 1
-343, 350, 676, 274, 38, 99, 1, 0, 1
-343, 361, 712, 286, 74, 52, 1, 2, 1
-344, 1, 460, 266, 30, 23, 1, 2, 1
-344, 55, 73, 327, 29, 79, 1, 0, 1
-344, 82, 553, 261, 40, 28, 1, 2, 1
-344, 280, 719, 303, 39, 90, 1, 0, 1
-344, 314, 936, 266, 23, 65, 1, 0, 1
-344, 338, 788, 280, 40, 106, 1, 0, 1
-344, 350, 673, 268, 41, 107, 1, 0, 1
-344, 361, 710, 289, 74, 52, 1, 2, 1
-345, 1, 460, 268, 31, 24, 1, 2, 1
-345, 55, 68, 330, 30, 81, 1, 0, 1
-345, 82, 555, 264, 39, 28, 1, 2, 1
-345, 280, 717, 306, 39, 92, 1, 0, 1
-345, 314, 937, 269, 22, 65, 1, 0, 1
-345, 338, 788, 283, 40, 108, 1, 0, 1
-345, 350, 675, 279, 36, 96, 1, 0, 1
-345, 361, 708, 292, 78, 54, 1, 2, 1
-346, 1, 462, 270, 29, 23, 1, 2, 1
-346, 55, 66, 332, 30, 83, 1, 0, 1
-346, 82, 556, 267, 39, 27, 1, 2, 1
-346, 280, 718, 311, 39, 90, 1, 0, 1
-346, 314, 939, 270, 20, 66, 1, 0, 1
-346, 338, 789, 290, 40, 106, 1, 0, 1
-346, 350, 676, 285, 34, 93, 1, 0, 1
-346, 361, 709, 293, 79, 55, 1, 2, 1
-347, 1, 463, 272, 28, 21, 1, 2, 1
-347, 55, 63, 334, 31, 84, 1, 0, 1
-347, 82, 555, 268, 40, 28, 1, 2, 1
-347, 280, 719, 315, 37, 90, 1, 0, 1
-347, 314, 942, 271, 17, 66, 1, 0, 1
-347, 338, 790, 297, 40, 102, 1, 0, 1
-347, 350, 677, 289, 33, 91, 1, 0, 1
-347, 361, 711, 296, 79, 55, 1, 2, 1
-347, 369, 724, 269, 24, 27, 1, 0, 1
-348, 1, 463, 272, 27, 21, 1, 2, 1
-348, 55, 61, 334, 30, 84, 1, 0, 1
-348, 82, 558, 270, 38, 27, 1, 2, 1
-348, 280, 720, 317, 37, 90, 1, 0, 1
-348, 338, 788, 302, 37, 98, 1, 0, 1
-348, 350, 677, 289, 34, 94, 1, 0, 1
-348, 361, 711, 297, 80, 55, 1, 2, 1
-348, 369, 724, 270, 23, 26, 1, 0, 1
-349, 1, 463, 272, 27, 21, 1, 2, 1
-349, 55, 55, 337, 31, 84, 1, 0, 1
-349, 82, 559, 271, 38, 27, 1, 2, 1
-349, 280, 719, 320, 38, 91, 1, 0, 1
-349, 338, 788, 304, 37, 98, 1, 0, 1
-349, 350, 683, 292, 35, 97, 1, 0, 1
-349, 361, 711, 298, 80, 55, 1, 2, 1
-349, 369, 725, 270, 23, 28, 1, 0, 1
-350, 1, 464, 272, 27, 21, 1, 2, 1
-350, 55, 51, 338, 30, 83, 1, 0, 1
-350, 82, 560, 272, 38, 27, 1, 2, 1
-350, 280, 719, 320, 38, 94, 1, 0, 1
-350, 338, 789, 299, 40, 105, 1, 0, 1
-350, 350, 684, 294, 36, 98, 1, 0, 1
-350, 361, 708, 299, 82, 56, 1, 2, 1
-350, 369, 725, 270, 25, 29, 1, 0, 1
-351, 1, 464, 272, 28, 21, 1, 2, 1
-351, 55, 48, 337, 31, 86, 1, 0, 1
-351, 82, 560, 273, 39, 27, 1, 2, 1
-351, 280, 719, 321, 39, 95, 1, 0, 1
-351, 338, 790, 299, 40, 106, 1, 0, 1
-351, 350, 687, 295, 35, 98, 1, 0, 1
-351, 361, 708, 300, 84, 56, 1, 2, 1
-351, 369, 726, 270, 25, 30, 1, 0, 1
-352, 1, 465, 272, 28, 22, 1, 2, 1
-352, 55, 48, 338, 30, 85, 1, 0, 1
-352, 82, 561, 274, 38, 27, 1, 2, 1
-352, 280, 719, 322, 40, 97, 1, 0, 1
-352, 338, 791, 301, 40, 106, 1, 0, 1
-352, 350, 692, 297, 36, 99, 1, 0, 1
-352, 361, 706, 300, 87, 58, 1, 2, 1
-352, 369, 727, 270, 25, 31, 1, 0, 1
-352, 383, 550, 268, 29, 21, 1, 2, 1
-353, 1, 465, 273, 28, 22, 1, 2, 1
-353, 55, 44, 340, 30, 85, 1, 0, 1
-353, 82, 561, 274, 39, 27, 1, 2, 1
-353, 280, 720, 325, 40, 96, 1, 0, 1
-353, 338, 790, 302, 40, 105, 1, 0, 1
-353, 350, 696, 301, 33, 95, 1, 0, 1
-353, 361, 706, 300, 89, 59, 1, 2, 1
-353, 369, 729, 272, 24, 29, 1, 0, 1
-353, 383, 550, 268, 30, 22, 1, 2, 1
-354, 1, 465, 273, 29, 22, 1, 2, 1
-354, 55, 41, 340, 30, 85, 1, 0, 1
-354, 82, 562, 275, 39, 28, 1, 2, 1
-354, 280, 722, 330, 40, 93, 1, 0, 1
-354, 338, 790, 301, 40, 109, 1, 0, 1
-354, 350, 696, 301, 33, 96, 1, 0, 1
-354, 361, 705, 301, 90, 59, 1, 2, 1
-354, 369, 729, 272, 25, 30, 1, 0, 1
-354, 383, 552, 269, 27, 21, 1, 2, 1
-355, 1, 466, 273, 28, 22, 1, 2, 1
-355, 55, 38, 341, 32, 85, 1, 0, 1
-355, 82, 563, 276, 39, 28, 1, 2, 1
-355, 280, 723, 333, 39, 93, 1, 0, 1
-355, 338, 790, 304, 40, 108, 1, 0, 1
-355, 350, 694, 300, 34, 97, 1, 0, 1
-355, 361, 706, 303, 89, 59, 1, 2, 1
-355, 383, 552, 270, 27, 20, 1, 2, 1
-356, 1, 467, 273, 27, 22, 1, 2, 1
-356, 55, 36, 340, 31, 88, 1, 0, 1
-356, 82, 563, 276, 40, 28, 1, 2, 1
-356, 280, 722, 334, 41, 94, 1, 0, 1
-356, 338, 790, 310, 39, 103, 1, 0, 1
-356, 350, 691, 298, 35, 101, 1, 0, 1
-356, 361, 703, 303, 94, 61, 1, 2, 1
-356, 369, 738, 273, 26, 31, 1, 0, 1
-356, 383, 552, 270, 27, 20, 1, 2, 1
-357, 1, 467, 273, 27, 21, 1, 2, 1
-357, 55, 34, 340, 32, 88, 1, 0, 1
-357, 82, 564, 277, 41, 29, 1, 2, 1
-357, 280, 722, 334, 43, 98, 1, 0, 1
-357, 338, 789, 313, 40, 104, 1, 0, 1
-357, 350, 691, 301, 35, 100, 1, 0, 1
-357, 361, 701, 306, 95, 60, 1, 2, 1
-357, 369, 739, 276, 23, 28, 1, 0, 1
-357, 383, 551, 270, 27, 20, 1, 2, 1
-357, 392, 767, 274, 17, 37, 1, 0, 1
-358, 1, 467, 273, 27, 21, 1, 2, 1
-358, 55, 29, 342, 32, 88, 1, 0, 1
-358, 82, 565, 278, 40, 28, 1, 2, 1
-358, 280, 723, 335, 42, 98, 1, 0, 1
-358, 338, 790, 317, 39, 102, 1, 0, 1
-358, 350, 690, 301, 36, 102, 1, 0, 1
-358, 361, 702, 306, 96, 61, 1, 2, 1
-358, 369, 740, 277, 23, 28, 1, 0, 1
-358, 383, 551, 270, 27, 20, 1, 2, 1
-358, 392, 768, 276, 15, 33, 1, 0, 1
-359, 1, 468, 274, 26, 20, 1, 2, 1
-359, 55, 27, 343, 32, 89, 1, 0, 1
-359, 82, 566, 278, 39, 29, 1, 2, 1
-359, 280, 723, 336, 42, 98, 1, 0, 1
-359, 338, 789, 320, 41, 102, 1, 0, 1
-359, 350, 692, 307, 34, 98, 1, 0, 1
-359, 361, 704, 308, 95, 59, 1, 2, 1
-359, 383, 552, 270, 27, 21, 1, 2, 1
-360, 1, 468, 275, 26, 21, 1, 2, 1
-360, 55, 20, 343, 33, 91, 1, 0, 1
-360, 82, 567, 280, 39, 27, 1, 2, 1
-360, 280, 724, 339, 41, 97, 1, 0, 1
-360, 338, 790, 323, 41, 101, 1, 0, 1
-360, 350, 692, 312, 34, 96, 1, 0, 1
-360, 361, 705, 310, 94, 59, 1, 2, 1
-360, 383, 552, 272, 26, 20, 1, 2, 1
-361, 1, 468, 275, 26, 21, 1, 2, 1
-361, 55, 15, 345, 32, 90, 1, 0, 1
-361, 82, 567, 280, 39, 28, 1, 2, 1
-361, 280, 724, 339, 41, 101, 1, 0, 1
-361, 338, 791, 325, 41, 101, 1, 0, 1
-361, 350, 690, 314, 35, 96, 1, 0, 1
-361, 361, 703, 311, 96, 60, 1, 2, 1
-361, 383, 552, 273, 25, 19, 1, 2, 1
-362, 1, 468, 275, 26, 21, 1, 2, 1
-362, 55, 13, 348, 32, 91, 1, 0, 1
-362, 82, 568, 282, 38, 27, 1, 2, 1
-362, 280, 725, 341, 41, 102, 1, 0, 1
-362, 338, 792, 328, 41, 102, 1, 0, 1
-362, 350, 686, 314, 35, 98, 1, 0, 1
-362, 361, 703, 312, 96, 60, 1, 2, 1
-362, 369, 745, 282, 23, 30, 1, 0, 1
-362, 383, 553, 276, 23, 18, 1, 2, 1
-363, 1, 469, 277, 25, 20, 1, 2, 1
-363, 55, 12, 349, 31, 93, 1, 0, 1
-363, 82, 568, 283, 38, 27, 1, 2, 1
-363, 280, 725, 342, 42, 105, 1, 0, 1
-363, 338, 790, 329, 42, 102, 1, 0, 1
-363, 350, 684, 313, 35, 100, 1, 0, 1
-363, 361, 704, 312, 97, 60, 1, 2, 1
-363, 369, 745, 281, 24, 31, 1, 0, 1
-363, 383, 553, 277, 23, 18, 1, 2, 1
-364, 1, 468, 277, 27, 21, 1, 2, 1
-364, 55, 9, 348, 32, 93, 1, 0, 1
-364, 82, 567, 284, 39, 28, 1, 2, 1
-364, 280, 724, 343, 43, 108, 1, 0, 1
-364, 338, 789, 329, 44, 107, 1, 0, 1
-364, 350, 683, 314, 38, 104, 1, 0, 1
-364, 361, 703, 313, 99, 62, 1, 2, 1
-364, 369, 744, 283, 23, 30, 1, 0, 1
-364, 383, 552, 277, 25, 20, 1, 2, 1
-365, 1, 468, 278, 27, 21, 1, 2, 1
-365, 55, 4, 351, 31, 93, 1, 0, 1
-365, 82, 567, 285, 41, 29, 1, 2, 1
-365, 280, 724, 346, 43, 109, 1, 0, 1
-365, 319, 843, 296, 27, 67, 1, 0, 1
-365, 338, 787, 330, 44, 109, 1, 0, 1
-365, 350, 681, 315, 39, 106, 1, 0, 1
-365, 361, 703, 314, 100, 63, 1, 2, 1
-365, 369, 746, 285, 23, 30, 1, 0, 1
-365, 383, 552, 277, 27, 22, 1, 2, 1
-365, 414, 668, 311, 27, 98, 1, 0, 1
-366, 1, 469, 278, 27, 21, 1, 2, 1
-366, 55, 2, 352, 31, 93, 1, 0, 1
-366, 82, 566, 285, 43, 31, 1, 2, 1
-366, 280, 725, 350, 43, 108, 1, 0, 1
-366, 319, 845, 296, 27, 68, 1, 0, 1
-366, 338, 787, 331, 44, 112, 1, 0, 1
-366, 350, 679, 317, 40, 107, 1, 0, 1
-366, 361, 703, 314, 101, 65, 1, 2, 1
-366, 369, 747, 286, 23, 31, 1, 0, 1
-366, 383, 552, 277, 28, 23, 1, 2, 1
-366, 414, 668, 315, 28, 100, 1, 0, 1
-367, 1, 469, 279, 27, 21, 1, 2, 1
-367, 55, 0, 353, 29, 95, 1, 0, 1
-367, 82, 566, 287, 43, 31, 1, 2, 1
-367, 280, 726, 352, 44, 110, 1, 0, 1
-367, 338, 786, 333, 44, 113, 1, 0, 1
-367, 350, 680, 319, 39, 106, 1, 0, 1
-367, 361, 704, 316, 101, 65, 1, 2, 1
-367, 369, 749, 286, 23, 31, 1, 0, 1
-367, 383, 552, 279, 27, 21, 1, 2, 1
-367, 414, 668, 319, 28, 100, 1, 0, 1
-368, 1, 470, 280, 27, 21, 1, 2, 1
-368, 55, 0, 356, 26, 94, 1, 0, 1
-368, 82, 567, 288, 43, 31, 1, 2, 1
-368, 280, 727, 354, 45, 112, 1, 0, 1
-368, 338, 785, 334, 45, 115, 1, 0, 1
-368, 350, 676, 321, 40, 106, 1, 0, 1
-368, 361, 704, 318, 99, 64, 1, 2, 1
-368, 369, 748, 287, 24, 32, 1, 0, 1
-368, 383, 553, 280, 26, 22, 1, 2, 1
-368, 414, 668, 322, 28, 100, 1, 0, 1
-369, 1, 470, 282, 26, 20, 1, 2, 1
-369, 55, 0, 358, 23, 95, 1, 0, 1
-369, 82, 568, 290, 42, 30, 1, 2, 1
-369, 280, 728, 354, 46, 115, 1, 0, 1
-369, 338, 785, 334, 45, 117, 1, 0, 1
-369, 350, 675, 322, 41, 106, 1, 0, 1
-369, 361, 705, 320, 98, 63, 1, 2, 1
-369, 369, 749, 288, 23, 32, 1, 0, 1
-369, 383, 553, 282, 25, 21, 1, 2, 1
-370, 1, 470, 283, 25, 20, 1, 2, 1
-370, 55, 0, 359, 21, 93, 1, 0, 1
-370, 82, 569, 292, 41, 29, 1, 2, 1
-370, 280, 728, 356, 47, 117, 1, 0, 1
-370, 338, 783, 335, 46, 118, 1, 0, 1
-370, 350, 678, 322, 41, 107, 1, 0, 1
-370, 361, 707, 322, 95, 62, 1, 2, 1
-370, 369, 749, 289, 23, 33, 1, 0, 1
-370, 383, 553, 283, 26, 21, 1, 2, 1
-370, 414, 662, 325, 28, 97, 1, 0, 1
-371, 1, 470, 284, 25, 20, 1, 2, 1
-371, 55, 0, 358, 28, 94, 1, 0, 1
-371, 82, 570, 293, 41, 29, 1, 2, 1
-371, 280, 729, 357, 47, 118, 1, 0, 1
-371, 338, 782, 335, 48, 119, 1, 0, 1
-371, 350, 678, 323, 41, 108, 1, 0, 1
-371, 361, 707, 323, 94, 60, 1, 2, 1
-371, 369, 749, 289, 23, 34, 1, 0, 1
-371, 383, 553, 283, 27, 22, 1, 2, 1
-371, 414, 661, 325, 28, 98, 1, 0, 1
-372, 1, 470, 283, 25, 20, 1, 2, 1
-372, 55, 0, 359, 27, 92, 1, 0, 1
-372, 82, 569, 293, 43, 30, 1, 2, 1
-372, 280, 728, 359, 48, 119, 1, 0, 1
-372, 338, 782, 336, 49, 119, 1, 0, 1
-372, 350, 678, 325, 39, 108, 1, 0, 1
-372, 361, 708, 323, 95, 62, 1, 2, 1
-372, 369, 749, 290, 23, 34, 1, 0, 1
-372, 383, 553, 282, 27, 23, 1, 2, 1
-372, 414, 660, 326, 27, 96, 1, 0, 1
-373, 1, 470, 284, 25, 19, 1, 2, 1
-373, 55, 0, 362, 26, 92, 1, 0, 1
-373, 82, 568, 293, 44, 31, 1, 2, 1
-373, 280, 728, 360, 48, 120, 1, 0, 1
-373, 338, 783, 340, 49, 116, 1, 0, 1
-373, 350, 677, 329, 38, 105, 1, 0, 1
-373, 361, 710, 323, 96, 62, 1, 2, 1
-373, 369, 750, 289, 23, 34, 1, 0, 1
-373, 383, 553, 282, 27, 25, 1, 2, 1
-373, 414, 658, 326, 26, 94, 1, 0, 1
-374, 1, 471, 284, 24, 19, 1, 2, 1
-374, 55, 0, 364, 24, 90, 1, 0, 1
-374, 82, 567, 293, 45, 32, 1, 2, 1
-374, 280, 728, 361, 47, 120, 1, 0, 1
-374, 338, 783, 342, 49, 116, 1, 0, 1
-374, 350, 676, 329, 38, 105, 1, 0, 1
-374, 361, 712, 323, 99, 63, 1, 2, 1
-374, 369, 750, 289, 23, 34, 1, 0, 1
-374, 383, 553, 282, 28, 25, 1, 2, 1
-374, 414, 656, 325, 27, 95, 1, 0, 1
-375, 1, 470, 284, 25, 20, 1, 2, 1
-375, 55, 0, 365, 22, 92, 1, 0, 1
-375, 82, 568, 293, 45, 31, 1, 2, 1
-375, 280, 727, 361, 47, 121, 1, 0, 1
-375, 338, 783, 345, 49, 114, 1, 0, 1
-375, 350, 675, 328, 38, 108, 1, 0, 1
-375, 361, 712, 324, 101, 62, 1, 2, 1
-375, 369, 751, 290, 23, 34, 1, 0, 1
-375, 383, 552, 283, 28, 25, 1, 2, 1
-375, 414, 655, 323, 28, 98, 1, 0, 1
-376, 1, 470, 283, 25, 20, 1, 2, 1
-376, 55, 0, 366, 19, 93, 1, 0, 1
-376, 82, 568, 292, 44, 32, 1, 2, 1
-376, 280, 727, 362, 46, 120, 1, 0, 1
-376, 338, 781, 346, 50, 113, 1, 0, 1
-376, 350, 673, 328, 39, 108, 1, 0, 1
-376, 361, 708, 323, 103, 64, 1, 2, 1
-376, 383, 551, 282, 29, 26, 1, 2, 1
-376, 414, 654, 324, 28, 98, 1, 0, 1
-376, 441, 800, 338, 48, 49, 1, 2, 1
-377, 1, 470, 281, 24, 20, 1, 2, 1
-377, 55, 0, 367, 18, 93, 1, 0, 1
-377, 82, 567, 291, 46, 33, 1, 2, 1
-377, 280, 727, 361, 46, 123, 1, 0, 1
-377, 338, 778, 345, 51, 115, 1, 0, 1
-377, 350, 672, 328, 38, 109, 1, 0, 1
-377, 361, 706, 322, 106, 65, 1, 2, 1
-377, 369, 751, 286, 23, 34, 1, 0, 1
-377, 383, 551, 281, 28, 26, 1, 2, 1
-377, 441, 801, 339, 47, 47, 1, 2, 1
-378, 1, 469, 280, 24, 19, 1, 2, 1
-378, 82, 566, 290, 47, 34, 1, 2, 1
-378, 280, 726, 361, 46, 124, 1, 0, 1
-378, 338, 775, 343, 52, 120, 1, 0, 1
-378, 350, 670, 329, 35, 99, 1, 0, 1
-378, 361, 705, 320, 105, 65, 1, 2, 1
-378, 369, 751, 285, 23, 34, 1, 0, 1
-378, 383, 551, 280, 27, 26, 1, 2, 1
-378, 441, 802, 341, 45, 45, 1, 2, 1
-379, 1, 469, 279, 24, 19, 1, 2, 1
-379, 82, 566, 290, 47, 33, 1, 2, 1
-379, 280, 725, 362, 47, 126, 1, 0, 1
-379, 338, 771, 343, 52, 121, 1, 0, 1
-379, 350, 667, 326, 34, 95, 1, 0, 1
-379, 361, 703, 319, 105, 65, 1, 2, 1
-379, 369, 752, 284, 23, 34, 1, 0, 1
-379, 383, 550, 280, 28, 26, 1, 2, 1
-379, 441, 803, 341, 45, 45, 1, 2, 1
-380, 1, 468, 278, 23, 19, 1, 2, 1
-380, 82, 565, 289, 47, 34, 1, 2, 1
-380, 280, 724, 362, 48, 129, 1, 0, 1
-380, 319, 864, 301, 29, 72, 1, 0, 1
-380, 338, 769, 343, 52, 121, 1, 0, 1
-380, 350, 665, 325, 32, 93, 1, 0, 1
-380, 361, 703, 319, 105, 64, 1, 2, 1
-380, 369, 751, 283, 23, 34, 1, 0, 1
-380, 383, 549, 280, 29, 26, 1, 2, 1
-380, 441, 804, 342, 44, 43, 1, 2, 1
-381, 1, 468, 278, 23, 18, 1, 2, 1
-381, 82, 564, 288, 48, 35, 1, 2, 1
-381, 280, 724, 364, 49, 133, 1, 0, 1
-381, 319, 858, 300, 27, 72, 1, 0, 1
-381, 338, 764, 344, 52, 123, 1, 0, 1
-381, 350, 662, 325, 32, 93, 1, 0, 1
-381, 361, 705, 318, 107, 64, 1, 2, 1
-381, 369, 751, 282, 24, 35, 1, 0, 1
-381, 383, 548, 278, 28, 26, 1, 2, 1
-382, 1, 467, 276, 22, 18, 1, 2, 1
-382, 82, 564, 287, 48, 35, 1, 2, 1
-382, 280, 723, 364, 49, 136, 1, 0, 1
-382, 319, 856, 299, 28, 73, 1, 0, 1
-382, 338, 762, 346, 50, 121, 1, 0, 1
-382, 350, 660, 325, 32, 94, 1, 0, 1
-382, 361, 706, 318, 110, 65, 1, 2, 1
-382, 383, 547, 278, 28, 26, 1, 2, 1
-382, 459, 782, 338, 66, 49, 1, 2, 1
-383, 1, 465, 275, 23, 18, 1, 2, 1
-383, 82, 563, 286, 48, 36, 1, 2, 1
-383, 280, 722, 366, 50, 137, 1, 0, 1
-383, 319, 856, 298, 28, 73, 1, 0, 1
-383, 338, 759, 349, 49, 120, 1, 0, 1
-383, 350, 658, 324, 32, 95, 1, 0, 1
-383, 361, 705, 317, 113, 66, 1, 2, 1
-383, 383, 546, 278, 27, 25, 1, 2, 1
-383, 459, 780, 336, 67, 51, 1, 2, 1
-384, 1, 464, 274, 24, 18, 1, 2, 1
-384, 82, 562, 286, 48, 36, 1, 2, 1
-384, 280, 721, 365, 50, 140, 1, 0, 1
-384, 319, 856, 297, 29, 75, 1, 0, 1
-384, 338, 756, 348, 49, 122, 1, 0, 1
-384, 350, 654, 324, 32, 95, 1, 0, 1
-384, 361, 700, 316, 115, 67, 1, 2, 1
-384, 369, 748, 281, 24, 36, 1, 0, 1
-384, 383, 544, 277, 29, 26, 1, 2, 1
-384, 459, 777, 334, 71, 53, 1, 2, 1
-385, 1, 462, 273, 24, 18, 1, 2, 1
-385, 82, 561, 286, 48, 36, 1, 2, 1
-385, 280, 718, 367, 51, 141, 1, 0, 1
-385, 319, 857, 297, 29, 75, 1, 0, 1
-385, 338, 755, 350, 48, 120, 1, 0, 1
-385, 350, 653, 324, 31, 95, 1, 0, 1
-385, 361, 704, 314, 125, 71, 1, 2, 1
-385, 369, 747, 279, 25, 37, 1, 0, 1
-385, 383, 543, 276, 28, 26, 1, 2, 1
-385, 459, 775, 333, 72, 54, 1, 2, 1
-385, 466, 525, 263, 16, 13, 1, 2, 1
-386, 1, 461, 272, 22, 17, 1, 2, 1
-386, 82, 560, 284, 48, 37, 1, 2, 1
-386, 280, 716, 368, 51, 142, 1, 0, 1
-386, 319, 858, 298, 30, 75, 1, 0, 1
-386, 338, 753, 352, 48, 120, 1, 0, 1
-386, 350, 651, 324, 31, 95, 1, 0, 1
-386, 361, 704, 314, 130, 73, 1, 2, 1
-386, 369, 745, 278, 25, 39, 1, 0, 1
-386, 383, 541, 276, 29, 27, 1, 2, 1
-386, 414, 622, 324, 30, 102, 1, 0, 1
-386, 466, 523, 263, 15, 13, 1, 2, 1
-386, 470, 592, 270, 39, 27, 1, 2, 1
-387, 1, 460, 270, 23, 18, 1, 2, 1
-387, 82, 560, 284, 47, 37, 1, 2, 1
-387, 280, 715, 370, 50, 141, 1, 0, 1
-387, 319, 859, 298, 29, 75, 1, 0, 1
-387, 338, 752, 351, 49, 121, 1, 0, 1
-387, 350, 643, 322, 32, 98, 1, 0, 1
-387, 361, 704, 314, 132, 72, 1, 2, 1
-387, 369, 745, 277, 25, 39, 1, 0, 1
-387, 383, 539, 276, 29, 27, 1, 2, 1
-387, 414, 619, 322, 31, 106, 1, 0, 1
-387, 466, 522, 263, 15, 12, 1, 2, 1
-387, 470, 592, 271, 36, 25, 1, 2, 1
-388, 1, 457, 268, 25, 19, 1, 2, 1
-388, 82, 559, 286, 45, 35, 1, 2, 1
-388, 280, 712, 372, 50, 142, 1, 0, 1
-388, 319, 863, 299, 29, 73, 1, 0, 1
-388, 338, 749, 349, 50, 126, 1, 0, 1
-388, 350, 640, 322, 33, 98, 1, 0, 1
-388, 361, 703, 315, 135, 73, 1, 2, 1
-388, 369, 743, 278, 26, 39, 1, 0, 1
-388, 383, 538, 276, 28, 27, 1, 2, 1
-388, 414, 614, 321, 33, 111, 1, 0, 1
-388, 466, 521, 263, 15, 11, 1, 2, 1
-388, 470, 589, 271, 36, 25, 1, 2, 1
-389, 1, 455, 268, 25, 19, 1, 2, 1
-389, 82, 557, 287, 46, 35, 1, 2, 1
-389, 280, 710, 372, 50, 145, 1, 0, 1
-389, 319, 866, 299, 29, 76, 1, 0, 1
-389, 338, 748, 347, 50, 127, 1, 0, 1
-389, 350, 644, 325, 25, 76, 1, 0, 1
-389, 361, 699, 316, 139, 74, 1, 2, 1
-389, 369, 742, 278, 26, 40, 1, 0, 1
-389, 383, 536, 276, 28, 27, 1, 2, 1
-389, 414, 612, 322, 31, 106, 1, 0, 1
-389, 470, 588, 271, 35, 24, 1, 2, 1
-390, 1, 454, 268, 24, 18, 1, 2, 1
-390, 82, 554, 287, 46, 35, 1, 2, 1
-390, 280, 707, 372, 51, 147, 1, 0, 1
-390, 319, 868, 298, 29, 77, 1, 0, 1
-390, 338, 745, 347, 52, 128, 1, 0, 1
-390, 350, 642, 325, 25, 74, 1, 0, 1
-390, 361, 698, 317, 141, 74, 1, 2, 1
-390, 369, 740, 279, 25, 39, 1, 0, 1
-390, 383, 533, 276, 30, 27, 1, 2, 1
-390, 414, 610, 322, 32, 114, 1, 0, 1
-390, 466, 515, 262, 16, 13, 1, 2, 1
-391, 1, 452, 268, 23, 17, 1, 2, 1
-391, 82, 553, 287, 45, 36, 1, 2, 1
-391, 280, 705, 374, 52, 150, 1, 0, 1
-391, 319, 867, 298, 30, 81, 1, 0, 1
-391, 338, 743, 348, 51, 125, 1, 0, 1
-391, 361, 695, 319, 142, 74, 1, 2, 1
-391, 369, 739, 280, 25, 39, 1, 0, 1
-391, 383, 532, 276, 30, 27, 1, 2, 1
-391, 414, 605, 322, 31, 112, 1, 0, 1
-391, 466, 512, 263, 15, 11, 1, 2, 1
-392, 1, 449, 268, 23, 17, 1, 2, 1
-392, 82, 551, 288, 46, 35, 1, 2, 1
-392, 280, 700, 375, 54, 155, 1, 0, 1
-392, 319, 868, 300, 29, 77, 1, 0, 1
-392, 338, 737, 349, 52, 128, 1, 0, 1
-392, 361, 691, 319, 144, 73, 1, 2, 1
-392, 369, 736, 279, 25, 40, 1, 0, 1
-392, 383, 528, 276, 31, 27, 1, 2, 1
-392, 414, 601, 322, 32, 112, 1, 0, 1
-392, 466, 510, 263, 15, 11, 1, 2, 1
-393, 1, 447, 267, 23, 17, 1, 2, 1
-393, 82, 548, 287, 47, 37, 1, 2, 1
-393, 280, 698, 378, 53, 155, 1, 0, 1
-393, 319, 867, 301, 29, 79, 1, 0, 1
-393, 338, 730, 350, 51, 127, 1, 0, 1
-393, 361, 688, 320, 146, 74, 1, 2, 1
-393, 369, 732, 279, 26, 40, 1, 0, 1
-393, 383, 526, 276, 30, 27, 1, 2, 1
-393, 414, 598, 324, 29, 105, 1, 0, 1
-393, 466, 509, 263, 14, 11, 1, 2, 1
-394, 1, 444, 267, 24, 17, 1, 2, 1
-394, 82, 546, 288, 45, 36, 1, 2, 1
-394, 280, 693, 380, 52, 149, 1, 0, 1
-394, 319, 866, 302, 29, 80, 1, 0, 1
-394, 338, 723, 349, 51, 128, 1, 0, 1
-394, 361, 683, 321, 150, 74, 1, 2, 1
-394, 369, 730, 279, 26, 40, 1, 0, 1
-394, 383, 523, 276, 31, 27, 1, 2, 1
-394, 414, 593, 325, 29, 104, 1, 0, 1
-395, 1, 440, 266, 24, 18, 1, 2, 1
-395, 82, 542, 288, 47, 37, 1, 2, 1
-395, 280, 691, 380, 52, 150, 1, 0, 1
-395, 319, 864, 302, 31, 82, 1, 0, 1
-395, 338, 721, 351, 43, 108, 1, 0, 1
-395, 361, 681, 322, 149, 73, 1, 2, 1
-395, 369, 728, 280, 25, 40, 1, 0, 1
-395, 383, 519, 275, 33, 29, 1, 2, 1
-395, 414, 587, 325, 32, 111, 1, 0, 1
-396, 1, 437, 265, 24, 17, 1, 2, 1
-396, 82, 539, 288, 48, 37, 1, 2, 1
-396, 280, 687, 378, 54, 157, 1, 0, 1
-396, 319, 862, 302, 31, 81, 1, 0, 1
-396, 338, 714, 350, 47, 119, 1, 0, 1
-396, 361, 676, 321, 152, 75, 1, 2, 1
-396, 369, 723, 279, 26, 41, 1, 0, 1
-396, 383, 515, 275, 33, 29, 1, 2, 1
-396, 414, 583, 324, 33, 119, 1, 0, 1
-396, 492, 686, 275, 29, 48, 1, 0, 1
-397, 1, 435, 265, 23, 17, 1, 2, 1
-397, 82, 536, 288, 47, 38, 1, 2, 1
-397, 280, 682, 379, 55, 160, 1, 0, 1
-397, 319, 861, 302, 31, 82, 1, 0, 1
-397, 338, 709, 351, 45, 117, 1, 0, 1
-397, 361, 672, 322, 152, 75, 1, 2, 1
-397, 369, 720, 278, 26, 43, 1, 0, 1
-397, 383, 512, 276, 32, 27, 1, 2, 1
-397, 414, 577, 324, 33, 119, 1, 0, 1
-397, 492, 684, 275, 28, 48, 1, 0, 1
-398, 1, 432, 265, 23, 16, 1, 2, 1
-398, 82, 532, 287, 48, 38, 1, 2, 1
-398, 280, 677, 382, 55, 157, 1, 0, 1
-398, 319, 859, 302, 31, 82, 1, 0, 1
-398, 338, 703, 353, 41, 107, 1, 0, 1
-398, 361, 667, 322, 155, 75, 1, 2, 1
-398, 369, 717, 279, 26, 41, 1, 0, 1
-398, 383, 508, 275, 33, 28, 1, 2, 1
-398, 414, 572, 322, 35, 124, 1, 0, 1
-398, 492, 681, 277, 27, 46, 1, 0, 1
-399, 1, 428, 264, 23, 16, 1, 2, 1
-399, 82, 528, 287, 49, 39, 1, 2, 1
-399, 280, 672, 386, 55, 153, 1, 0, 1
-399, 319, 857, 304, 29, 79, 1, 0, 1
-399, 338, 701, 357, 34, 86, 1, 0, 1
-399, 361, 662, 322, 158, 76, 1, 2, 1
-399, 369, 714, 278, 25, 43, 1, 0, 1
-399, 383, 505, 274, 33, 29, 1, 2, 1
-399, 414, 567, 320, 37, 131, 1, 0, 1
-399, 492, 675, 277, 28, 47, 1, 0, 1
-400, 1, 423, 263, 25, 17, 1, 2, 1
-400, 82, 524, 287, 49, 40, 1, 2, 1
-400, 280, 668, 388, 55, 151, 1, 0, 1
-400, 319, 857, 306, 28, 78, 1, 0, 1
-400, 338, 697, 354, 33, 83, 1, 0, 1
-400, 361, 657, 322, 159, 76, 1, 2, 1
-400, 369, 708, 279, 25, 41, 1, 0, 1
-400, 383, 501, 274, 32, 28, 1, 2, 1
-400, 414, 562, 323, 38, 133, 1, 0, 1
-400, 492, 672, 278, 26, 46, 1, 0, 1
-401, 1, 419, 263, 24, 17, 1, 2, 1
-401, 82, 520, 288, 50, 41, 1, 2, 1
-401, 280, 662, 385, 57, 154, 1, 0, 1
-401, 319, 857, 307, 29, 79, 1, 0, 1
-401, 338, 691, 355, 31, 79, 1, 0, 1
-401, 361, 651, 322, 163, 78, 1, 2, 1
-401, 369, 705, 279, 25, 41, 1, 0, 1
-401, 383, 495, 274, 35, 30, 1, 2, 1
-401, 414, 553, 328, 38, 128, 1, 0, 1
-401, 492, 668, 278, 26, 45, 1, 0, 1
-402, 1, 415, 262, 25, 18, 1, 2, 1
-402, 82, 515, 288, 49, 41, 1, 2, 1
-402, 280, 658, 390, 55, 149, 1, 0, 1
-402, 319, 856, 307, 29, 79, 1, 0, 1
-402, 338, 679, 359, 30, 73, 1, 0, 1
-402, 361, 647, 322, 163, 78, 1, 2, 1
-402, 369, 700, 279, 26, 43, 1, 0, 1
-402, 383, 490, 274, 36, 31, 1, 2, 1
-402, 414, 545, 328, 38, 128, 1, 0, 1
-402, 492, 661, 275, 28, 48, 1, 0, 1
-403, 1, 411, 262, 25, 18, 1, 2, 1
-403, 82, 512, 288, 49, 42, 1, 2, 1
-403, 280, 651, 390, 57, 149, 1, 0, 1
-403, 319, 853, 306, 32, 85, 1, 0, 1
-403, 338, 673, 361, 29, 67, 1, 0, 1
-403, 361, 641, 322, 165, 79, 1, 2, 1
-403, 369, 695, 278, 26, 44, 1, 0, 1
-403, 383, 487, 275, 35, 30, 1, 2, 1
-403, 414, 541, 329, 39, 133, 1, 0, 1
-403, 492, 658, 276, 26, 47, 1, 0, 1
-404, 1, 406, 262, 25, 18, 1, 2, 1
-404, 82, 510, 289, 49, 41, 1, 2, 1
-404, 280, 645, 392, 57, 147, 1, 0, 1
-404, 319, 853, 306, 32, 86, 1, 0, 1
-404, 338, 668, 357, 30, 73, 1, 0, 1
-404, 361, 634, 322, 168, 80, 1, 2, 1
-404, 369, 691, 279, 26, 43, 1, 0, 1
-404, 383, 482, 275, 36, 31, 1, 2, 1
-404, 414, 531, 329, 41, 138, 1, 0, 1
-404, 492, 653, 276, 27, 47, 1, 0, 1
-405, 1, 402, 262, 24, 18, 1, 2, 1
-405, 82, 506, 288, 50, 43, 1, 2, 1
-405, 280, 637, 396, 57, 143, 1, 0, 1
-405, 319, 848, 304, 34, 90, 1, 0, 1
-405, 338, 659, 358, 30, 71, 1, 0, 1
-405, 361, 628, 322, 170, 80, 1, 2, 1
-405, 369, 686, 279, 26, 43, 1, 0, 1
-405, 383, 477, 274, 36, 32, 1, 2, 1
-405, 414, 523, 330, 41, 139, 1, 0, 1
-405, 492, 648, 277, 27, 48, 1, 0, 1
-406, 1, 397, 262, 24, 17, 1, 2, 1
-406, 82, 502, 289, 51, 42, 1, 2, 1
-406, 280, 623, 395, 60, 143, 1, 0, 1
-406, 319, 847, 304, 35, 91, 1, 0, 1
-406, 338, 649, 357, 30, 70, 1, 0, 1
-406, 361, 623, 322, 170, 81, 1, 2, 1
-406, 369, 681, 278, 26, 44, 1, 0, 1
-406, 383, 472, 274, 37, 32, 1, 2, 1
-406, 414, 517, 333, 43, 138, 1, 0, 1
-406, 492, 643, 275, 27, 50, 1, 0, 1
-407, 1, 392, 262, 24, 17, 1, 2, 1
-407, 82, 497, 289, 53, 43, 1, 2, 1
-407, 280, 614, 395, 62, 142, 1, 0, 1
-407, 319, 838, 303, 34, 91, 1, 0, 1
-407, 338, 643, 358, 28, 67, 1, 0, 1
-407, 361, 617, 322, 172, 82, 1, 2, 1
-407, 369, 674, 277, 27, 46, 1, 0, 1
-407, 383, 466, 274, 38, 34, 1, 2, 1
-407, 414, 510, 334, 43, 139, 1, 0, 1
-407, 492, 637, 275, 27, 50, 1, 0, 1
-408, 1, 387, 260, 25, 19, 1, 2, 1
-408, 82, 492, 289, 53, 44, 1, 2, 1
-408, 280, 600, 397, 66, 141, 1, 0, 1
-408, 319, 833, 302, 34, 92, 1, 0, 1
-408, 338, 630, 361, 29, 69, 1, 0, 1
-408, 361, 611, 322, 172, 82, 1, 2, 1
-408, 369, 670, 277, 27, 47, 1, 0, 1
-408, 383, 461, 275, 37, 33, 1, 2, 1
-408, 414, 501, 332, 46, 145, 1, 0, 1
-408, 492, 632, 276, 26, 49, 1, 0, 1
-409, 1, 383, 261, 24, 17, 1, 2, 1
-409, 82, 487, 291, 53, 43, 1, 2, 1
-409, 280, 600, 399, 65, 140, 1, 0, 1
-409, 319, 828, 301, 35, 95, 1, 0, 1
-409, 338, 623, 362, 28, 67, 1, 0, 1
-409, 361, 605, 322, 172, 82, 1, 2, 1
-409, 369, 663, 278, 26, 45, 1, 0, 1
-409, 383, 456, 274, 38, 33, 1, 2, 1
-409, 414, 489, 332, 48, 147, 1, 0, 1
-409, 492, 625, 275, 27, 51, 1, 0, 1
-410, 1, 378, 260, 24, 18, 1, 2, 1
-410, 82, 480, 291, 54, 43, 1, 2, 1
-410, 280, 592, 402, 65, 137, 1, 0, 1
-410, 319, 824, 302, 35, 97, 1, 0, 1
-410, 361, 598, 322, 174, 83, 1, 2, 1
-410, 369, 658, 277, 27, 47, 1, 0, 1
-410, 383, 450, 275, 37, 32, 1, 2, 1
-410, 414, 483, 334, 48, 148, 1, 0, 1
-410, 492, 620, 274, 26, 51, 1, 0, 1
-411, 1, 373, 261, 23, 17, 1, 2, 1
-411, 82, 473, 290, 56, 45, 1, 2, 1
-411, 280, 585, 406, 63, 133, 1, 0, 1
-411, 319, 817, 301, 34, 95, 1, 0, 1
-411, 338, 599, 360, 26, 61, 1, 0, 1
-411, 361, 592, 322, 174, 83, 1, 2, 1
-411, 369, 651, 277, 26, 48, 1, 0, 1
-411, 383, 445, 275, 37, 32, 1, 2, 1
-411, 414, 471, 334, 49, 148, 1, 0, 1
-411, 492, 613, 275, 27, 52, 1, 0, 1
-412, 1, 367, 260, 23, 18, 1, 2, 1
-412, 82, 466, 292, 56, 44, 1, 2, 1
-412, 280, 578, 408, 62, 131, 1, 0, 1
-412, 319, 812, 300, 34, 95, 1, 0, 1
-412, 338, 590, 360, 26, 59, 1, 0, 1
-412, 361, 583, 323, 176, 84, 1, 2, 1
-412, 369, 646, 277, 26, 48, 1, 0, 1
-412, 383, 439, 275, 37, 32, 1, 2, 1
-412, 414, 462, 335, 50, 150, 1, 0, 1
-412, 492, 606, 272, 27, 56, 1, 0, 1
-413, 1, 361, 259, 23, 17, 1, 2, 1
-413, 82, 459, 292, 56, 45, 1, 2, 1
-413, 280, 569, 411, 61, 128, 1, 0, 1
-413, 319, 808, 301, 33, 95, 1, 0, 1
-413, 361, 575, 323, 179, 85, 1, 2, 1
-413, 369, 638, 277, 26, 47, 1, 0, 1
-413, 383, 432, 274, 38, 33, 1, 2, 1
-413, 414, 453, 337, 51, 148, 1, 0, 1
-413, 492, 599, 275, 26, 51, 1, 0, 1
-414, 1, 355, 259, 24, 17, 1, 2, 1
-414, 82, 454, 293, 56, 44, 1, 2, 1
-414, 280, 559, 411, 61, 128, 1, 0, 1
-414, 319, 802, 299, 32, 96, 1, 0, 1
-414, 338, 566, 360, 30, 68, 1, 0, 1
-414, 361, 569, 324, 177, 85, 1, 2, 1
-414, 369, 632, 277, 25, 48, 1, 0, 1
-414, 383, 425, 275, 37, 31, 1, 2, 1
-414, 414, 437, 336, 52, 150, 1, 0, 1
-414, 492, 592, 273, 25, 52, 1, 0, 1
-414, 542, 534, 386, 41, 95, 1, 0, 1
-414, 544, 843, 304, 20, 70, 1, 0, 1
-415, 1, 350, 259, 21, 17, 1, 2, 1
-415, 82, 445, 294, 55, 44, 1, 2, 1
-415, 280, 547, 412, 61, 126, 1, 0, 1
-415, 319, 797, 298, 31, 93, 1, 0, 1
-415, 338, 554, 360, 32, 73, 1, 0, 1
-415, 361, 560, 324, 179, 85, 1, 2, 1
-415, 369, 624, 276, 26, 49, 1, 0, 1
-415, 383, 418, 275, 37, 31, 1, 2, 1
-415, 414, 423, 334, 53, 153, 1, 0, 1
-415, 492, 583, 272, 26, 54, 1, 0, 1
-415, 542, 524, 387, 38, 87, 1, 0, 1
-415, 544, 838, 304, 17, 57, 1, 0, 1
-416, 1, 342, 258, 23, 17, 1, 2, 1
-416, 82, 437, 295, 56, 44, 1, 2, 1
-416, 280, 536, 414, 60, 124, 1, 0, 1
-416, 319, 793, 296, 29, 89, 1, 0, 1
-416, 338, 543, 360, 32, 73, 1, 0, 1
-416, 361, 552, 323, 179, 86, 1, 2, 1
-416, 369, 616, 276, 25, 49, 1, 0, 1
-416, 383, 409, 274, 38, 33, 1, 2, 1
-416, 414, 409, 335, 53, 154, 1, 0, 1
-416, 492, 575, 269, 27, 56, 1, 0, 1
-416, 542, 509, 390, 47, 106, 1, 0, 1
-416, 544, 833, 303, 14, 50, 1, 0, 1
-417, 1, 336, 258, 22, 17, 1, 2, 1
-417, 82, 432, 295, 56, 44, 1, 2, 1
-417, 280, 525, 414, 60, 124, 1, 0, 1
-417, 319, 787, 295, 27, 84, 1, 0, 1
-417, 338, 530, 365, 32, 70, 1, 0, 1
-417, 361, 544, 322, 181, 88, 1, 2, 1
-417, 369, 611, 276, 24, 48, 1, 0, 1
-417, 383, 402, 274, 36, 33, 1, 2, 1
-417, 414, 393, 336, 55, 155, 1, 0, 1
-417, 492, 568, 269, 27, 56, 1, 0, 1
-417, 542, 495, 392, 48, 113, 1, 0, 1
-417, 544, 828, 303, 13, 43, 1, 0, 1
-418, 1, 329, 257, 23, 18, 1, 2, 1
-418, 280, 513, 416, 60, 122, 1, 0, 1
-418, 319, 782, 294, 27, 84, 1, 0, 1
-418, 338, 517, 367, 30, 64, 1, 0, 1
-418, 361, 536, 323, 180, 87, 1, 2, 1
-418, 369, 603, 276, 24, 48, 1, 0, 1
-418, 383, 394, 274, 37, 33, 1, 2, 1
-418, 414, 377, 337, 56, 155, 1, 0, 1
-418, 492, 560, 268, 27, 56, 1, 0, 1
-418, 542, 478, 394, 58, 135, 1, 0, 1
-418, 558, 900, 291, 36, 99, 1, 0, 1
-419, 1, 321, 256, 23, 17, 1, 2, 1
-419, 82, 423, 296, 55, 43, 1, 2, 1
-419, 280, 501, 417, 59, 121, 1, 0, 1
-419, 338, 502, 371, 32, 66, 1, 0, 1
-419, 361, 526, 323, 181, 88, 1, 2, 1
-419, 369, 595, 275, 25, 49, 1, 0, 1
-419, 383, 386, 274, 37, 34, 1, 2, 1
-419, 414, 362, 337, 58, 157, 1, 0, 1
-419, 492, 551, 267, 27, 57, 1, 0, 1
-419, 542, 465, 395, 57, 135, 1, 0, 1
-419, 558, 891, 289, 38, 101, 1, 0, 1
-419, 559, 807, 305, 32, 85, 1, 0, 1
-420, 1, 315, 255, 22, 17, 1, 2, 1
-420, 82, 416, 296, 56, 43, 1, 2, 1
-420, 280, 487, 416, 60, 122, 1, 0, 1
-420, 338, 491, 372, 28, 57, 1, 0, 1
-420, 361, 519, 323, 181, 88, 1, 2, 1
-420, 369, 588, 275, 23, 48, 1, 0, 1
-420, 383, 378, 274, 35, 33, 1, 2, 1
-420, 414, 348, 338, 59, 159, 1, 0, 1
-420, 492, 544, 265, 28, 59, 1, 0, 1
-420, 542, 451, 400, 58, 139, 1, 0, 1
-420, 558, 882, 289, 38, 100, 1, 0, 1
-420, 559, 801, 304, 33, 87, 1, 0, 1
-421, 1, 308, 255, 22, 17, 1, 2, 1
-421, 82, 408, 296, 57, 43, 1, 2, 1
-421, 280, 471, 417, 60, 122, 1, 0, 1
-421, 338, 477, 374, 29, 56, 1, 0, 1
-421, 361, 510, 324, 180, 87, 1, 2, 1
-421, 369, 579, 275, 24, 49, 1, 0, 1
-421, 383, 368, 274, 35, 34, 1, 2, 1
-421, 414, 330, 339, 61, 159, 1, 0, 1
-421, 492, 535, 265, 28, 60, 1, 0, 1
-421, 542, 441, 399, 48, 111, 1, 0, 1
-421, 558, 875, 290, 37, 100, 1, 0, 1
-421, 559, 792, 304, 33, 87, 1, 0, 1
-422, 1, 302, 254, 22, 17, 1, 2, 1
-422, 82, 397, 293, 61, 47, 1, 2, 1
-422, 280, 457, 421, 60, 118, 1, 0, 1
-422, 338, 460, 375, 32, 62, 1, 0, 1
-422, 361, 499, 322, 182, 89, 1, 2, 1
-422, 369, 571, 274, 24, 49, 1, 0, 1
-422, 383, 358, 273, 33, 34, 1, 2, 1
-422, 414, 316, 338, 62, 161, 1, 0, 1
-422, 492, 528, 266, 27, 57, 1, 0, 1
-422, 542, 423, 401, 56, 131, 1, 0, 1
-422, 558, 865, 289, 37, 100, 1, 0, 1
-422, 559, 785, 303, 33, 87, 1, 0, 1
-423, 1, 293, 253, 21, 17, 1, 2, 1
-423, 82, 387, 293, 63, 47, 1, 2, 1
-423, 280, 440, 423, 60, 116, 1, 0, 1
-423, 338, 444, 378, 31, 58, 1, 0, 1
-423, 361, 489, 323, 182, 89, 1, 2, 1
-423, 369, 562, 275, 23, 47, 1, 0, 1
-423, 383, 351, 273, 33, 34, 1, 2, 1
-423, 414, 303, 338, 64, 164, 1, 0, 1
-423, 492, 518, 264, 28, 59, 1, 0, 1
-423, 542, 404, 400, 59, 138, 1, 0, 1
-423, 558, 855, 288, 37, 101, 1, 0, 1
-423, 559, 776, 303, 33, 87, 1, 0, 1
-424, 1, 286, 253, 22, 17, 1, 2, 1
-424, 82, 377, 291, 66, 50, 1, 2, 1
-424, 280, 426, 426, 59, 113, 1, 0, 1
-424, 338, 426, 378, 36, 67, 1, 0, 1
-424, 361, 476, 322, 185, 91, 1, 2, 1
-424, 369, 553, 274, 23, 49, 1, 0, 1
-424, 414, 287, 340, 66, 163, 1, 0, 1
-424, 492, 508, 264, 28, 60, 1, 0, 1
-424, 542, 384, 399, 60, 140, 1, 0, 1
-424, 558, 846, 289, 37, 100, 1, 0, 1
-424, 559, 767, 302, 33, 88, 1, 0, 1
-425, 82, 365, 290, 68, 51, 1, 2, 1
-425, 280, 410, 425, 59, 114, 1, 0, 1
-425, 338, 407, 380, 36, 65, 1, 0, 1
-425, 361, 464, 322, 186, 91, 1, 2, 1
-425, 369, 542, 273, 24, 50, 1, 0, 1
-425, 414, 270, 341, 66, 165, 1, 0, 1
-425, 492, 498, 264, 28, 59, 1, 0, 1
-425, 542, 364, 402, 60, 137, 1, 0, 1
-425, 558, 835, 288, 37, 100, 1, 0, 1
-425, 559, 759, 301, 33, 89, 1, 0, 1
-425, 573, 134, 247, 43, 41, 1, 2, 1
-425, 575, 133, 246, 45, 43, 1, 2, 1
-426, 82, 358, 290, 66, 51, 1, 2, 1
-426, 280, 395, 430, 58, 109, 1, 0, 1
-426, 338, 389, 383, 36, 64, 1, 0, 1
-426, 361, 454, 322, 186, 92, 1, 2, 1
-426, 369, 531, 273, 24, 49, 1, 0, 1
-426, 414, 253, 343, 68, 167, 1, 0, 1
-426, 492, 489, 265, 27, 58, 1, 0, 1
-426, 542, 351, 406, 58, 133, 1, 0, 1
-426, 558, 826, 288, 37, 102, 1, 0, 1
-426, 559, 752, 301, 33, 89, 1, 0, 1
-426, 573, 129, 247, 43, 41, 1, 2, 1
-426, 575, 115, 236, 56, 53, 1, 2, 1
-427, 82, 347, 290, 68, 52, 1, 2, 1
-427, 280, 376, 434, 57, 105, 1, 0, 1
-427, 319, 721, 308, 32, 99, 1, 0, 1
-427, 338, 369, 384, 37, 66, 1, 0, 1
-427, 361, 444, 323, 187, 93, 1, 2, 1
-427, 369, 521, 273, 24, 51, 1, 0, 1
-427, 414, 235, 346, 70, 169, 1, 0, 1
-427, 492, 479, 265, 27, 59, 1, 0, 1
-427, 542, 331, 409, 57, 130, 1, 0, 1
-427, 558, 815, 287, 38, 105, 1, 0, 1
-427, 559, 744, 301, 32, 86, 1, 0, 1
-427, 573, 109, 239, 51, 49, 1, 2, 1
-427, 575, 109, 241, 50, 48, 1, 2, 1
-428, 82, 336, 292, 69, 52, 1, 2, 1
-428, 280, 362, 441, 55, 98, 1, 0, 1
-428, 319, 710, 310, 35, 104, 1, 0, 1
-428, 338, 346, 386, 41, 73, 1, 0, 1
-428, 361, 433, 325, 186, 92, 1, 2, 1
-428, 369, 512, 274, 24, 51, 1, 0, 1
-428, 414, 215, 349, 72, 171, 1, 0, 1
-428, 492, 468, 265, 29, 60, 1, 0, 1
-428, 542, 316, 417, 54, 122, 1, 0, 1
-428, 558, 805, 287, 38, 104, 1, 0, 1
-428, 559, 735, 303, 32, 85, 1, 0, 1
-428, 573, 99, 240, 52, 49, 1, 2, 1
-428, 575, 99, 243, 50, 47, 1, 2, 1
-429, 82, 325, 291, 70, 54, 1, 2, 1
-429, 280, 344, 446, 53, 93, 1, 0, 1
-429, 319, 698, 308, 36, 108, 1, 0, 1
-429, 338, 326, 389, 41, 73, 1, 0, 1
-429, 361, 421, 326, 186, 93, 1, 2, 1
-429, 369, 502, 275, 24, 52, 1, 0, 1
-429, 414, 194, 350, 74, 174, 1, 0, 1
-429, 492, 458, 267, 29, 60, 1, 0, 1
-429, 542, 294, 422, 48, 108, 1, 0, 1
-429, 558, 794, 288, 38, 105, 1, 0, 1
-429, 559, 726, 304, 33, 87, 1, 0, 1
-429, 573, 87, 241, 52, 49, 1, 2, 1
-429, 575, 90, 246, 47, 44, 1, 2, 1
-429, 584, 353, 260, 34, 30, 1, 2, 1
-430, 82, 313, 293, 73, 55, 1, 2, 1
-430, 280, 326, 450, 51, 88, 1, 0, 1
-430, 319, 686, 311, 37, 108, 1, 0, 1
-430, 338, 310, 391, 41, 74, 1, 0, 1
-430, 361, 408, 327, 188, 95, 1, 2, 1
-430, 369, 495, 276, 24, 53, 1, 0, 1
-430, 414, 174, 352, 74, 174, 1, 0, 1
-430, 492, 447, 267, 29, 61, 1, 0, 1
-430, 542, 270, 428, 48, 105, 1, 0, 1
-430, 558, 782, 290, 39, 105, 1, 0, 1
-430, 559, 718, 307, 32, 82, 1, 0, 1
-430, 573, 77, 244, 52, 49, 1, 2, 1
-430, 575, 74, 241, 55, 52, 1, 2, 1
-430, 584, 343, 262, 34, 30, 1, 2, 1
-431, 82, 301, 293, 75, 57, 1, 2, 1
-431, 280, 306, 456, 49, 82, 1, 0, 1
-431, 319, 675, 307, 39, 115, 1, 0, 1
-431, 338, 284, 397, 44, 79, 1, 0, 1
-431, 361, 396, 330, 189, 95, 1, 2, 1
-431, 369, 486, 279, 24, 54, 1, 0, 1
-431, 414, 151, 356, 74, 174, 1, 0, 1
-431, 492, 436, 269, 29, 61, 1, 0, 1
-431, 542, 252, 434, 47, 100, 1, 0, 1
-431, 558, 772, 292, 38, 105, 1, 0, 1
-431, 559, 709, 309, 34, 87, 1, 0, 1
-431, 573, 68, 244, 52, 49, 1, 2, 1
-431, 575, 64, 240, 56, 54, 1, 2, 1
-431, 584, 332, 261, 35, 32, 1, 2, 1
-431, 590, 406, 268, 28, 69, 1, 0, 1
-432, 82, 289, 294, 77, 59, 1, 2, 1
-432, 280, 285, 458, 48, 79, 1, 0, 1
-432, 319, 665, 308, 39, 117, 1, 0, 1
-432, 338, 264, 401, 42, 74, 1, 0, 1
-432, 361, 384, 331, 189, 96, 1, 2, 1
-432, 369, 471, 279, 23, 54, 1, 0, 1
-432, 414, 130, 358, 74, 174, 1, 0, 1
-432, 492, 425, 270, 28, 61, 1, 0, 1
-432, 542, 227, 436, 47, 99, 1, 0, 1
-432, 558, 761, 294, 39, 104, 1, 0, 1
-432, 559, 700, 310, 32, 81, 1, 0, 1
-432, 584, 322, 261, 35, 31, 1, 2, 1
-432, 590, 394, 270, 28, 68, 1, 0, 1
-433, 82, 278, 295, 78, 59, 1, 2, 1
-433, 280, 267, 466, 45, 71, 1, 0, 1
-433, 319, 657, 311, 38, 117, 1, 0, 1
-433, 338, 240, 406, 43, 75, 1, 0, 1
-433, 361, 372, 333, 189, 95, 1, 2, 1
-433, 369, 461, 280, 24, 55, 1, 0, 1
-433, 383, 260, 280, 34, 32, 1, 2, 1
-433, 414, 106, 361, 72, 168, 1, 0, 1
-433, 492, 413, 272, 28, 61, 1, 0, 1
-433, 542, 201, 438, 52, 100, 1, 0, 1
-433, 558, 750, 294, 40, 105, 1, 0, 1
-433, 559, 690, 311, 33, 84, 1, 0, 1
-433, 584, 310, 262, 38, 33, 1, 2, 1
-433, 590, 383, 270, 28, 67, 1, 0, 1
-434, 82, 266, 296, 79, 60, 1, 2, 1
-434, 280, 246, 472, 44, 65, 1, 0, 1
-434, 319, 646, 308, 40, 122, 1, 0, 1
-434, 338, 216, 408, 47, 82, 1, 0, 1
-434, 361, 359, 334, 189, 95, 1, 2, 1
-434, 369, 447, 280, 24, 55, 1, 0, 1
-434, 383, 247, 281, 37, 35, 1, 2, 1
-434, 414, 80, 363, 64, 152, 1, 0, 1
-434, 492, 401, 272, 29, 63, 1, 0, 1
-434, 542, 173, 439, 54, 99, 1, 0, 1
-434, 558, 739, 295, 40, 105, 1, 0, 1
-434, 559, 682, 312, 36, 88, 1, 0, 1
-434, 584, 300, 262, 37, 33, 1, 2, 1
-434, 590, 371, 272, 27, 65, 1, 0, 1
-434, 597, 494, 280, 21, 58, 1, 0, 1
-435, 82, 254, 296, 81, 62, 1, 2, 1
-435, 280, 223, 478, 41, 60, 1, 0, 1
-435, 319, 636, 318, 38, 115, 1, 0, 1
-435, 338, 195, 412, 47, 83, 1, 0, 1
-435, 361, 346, 334, 191, 98, 1, 2, 1
-435, 369, 439, 281, 24, 56, 1, 0, 1
-435, 383, 234, 282, 40, 37, 1, 2, 1
-435, 414, 52, 367, 66, 161, 1, 0, 1
-435, 492, 390, 273, 28, 64, 1, 0, 1
-435, 542, 151, 441, 57, 98, 1, 0, 1
-435, 558, 730, 294, 41, 109, 1, 0, 1
-435, 559, 673, 314, 37, 90, 1, 0, 1
-435, 584, 289, 262, 38, 33, 1, 2, 1
-435, 590, 361, 273, 27, 66, 1, 0, 1
-435, 597, 484, 279, 21, 59, 1, 0, 1
-435, 598, 463, 282, 25, 62, 1, 0, 1
-436, 82, 243, 297, 80, 61, 1, 2, 1
-436, 280, 197, 483, 40, 56, 1, 0, 1
-436, 319, 625, 317, 40, 118, 1, 0, 1
-436, 338, 173, 410, 47, 85, 1, 0, 1
-436, 361, 332, 336, 192, 97, 1, 2, 1
-436, 369, 428, 282, 24, 56, 1, 0, 1
-436, 383, 223, 282, 41, 37, 1, 2, 1
-436, 414, 27, 369, 65, 164, 1, 0, 1
-436, 492, 379, 273, 28, 64, 1, 0, 1
-436, 542, 127, 445, 58, 94, 1, 0, 1
-436, 558, 718, 296, 40, 108, 1, 0, 1
-436, 559, 663, 313, 39, 93, 1, 0, 1
-436, 584, 278, 261, 39, 33, 1, 2, 1
-436, 590, 349, 273, 27, 65, 1, 0, 1
-436, 597, 472, 278, 23, 63, 1, 0, 1
-436, 598, 451, 282, 26, 63, 1, 0, 1
-437, 82, 231, 298, 83, 63, 1, 2, 1
-437, 280, 169, 490, 36, 49, 1, 0, 1
-437, 319, 612, 321, 40, 117, 1, 0, 1
-437, 338, 149, 417, 48, 85, 1, 0, 1
-437, 361, 319, 336, 194, 99, 1, 2, 1
-437, 369, 418, 283, 24, 56, 1, 0, 1
-437, 383, 211, 283, 42, 38, 1, 2, 1
-437, 414, 3, 370, 65, 165, 1, 0, 1
-437, 492, 369, 273, 28, 64, 1, 0, 1
-437, 542, 102, 448, 59, 91, 1, 0, 1
-437, 558, 705, 297, 41, 107, 1, 0, 1
-437, 559, 653, 315, 38, 91, 1, 0, 1
-437, 573, 0, 236, 57, 61, 1, 2, 1
-437, 584, 269, 263, 37, 32, 1, 2, 1
-437, 590, 338, 274, 27, 66, 1, 0, 1
-437, 597, 461, 278, 24, 66, 1, 0, 1
-437, 598, 440, 283, 26, 64, 1, 0, 1
-438, 82, 219, 299, 84, 64, 1, 2, 1
-438, 280, 142, 498, 32, 41, 1, 0, 1
-438, 319, 602, 318, 41, 123, 1, 0, 1
-438, 338, 122, 419, 52, 92, 1, 0, 1
-438, 361, 305, 337, 195, 99, 1, 2, 1
-438, 369, 407, 283, 24, 57, 1, 0, 1
-438, 383, 199, 283, 43, 38, 1, 2, 1
-438, 414, 0, 372, 48, 166, 1, 0, 1
-438, 492, 358, 272, 28, 66, 1, 0, 1
-438, 542, 76, 455, 57, 84, 1, 0, 1
-438, 558, 692, 298, 40, 106, 1, 0, 1
-438, 559, 642, 315, 39, 92, 1, 0, 1
-438, 573, 0, 234, 48, 63, 1, 2, 1
-438, 584, 258, 261, 39, 34, 1, 2, 1
-438, 590, 326, 271, 28, 69, 1, 0, 1
-438, 597, 451, 278, 23, 64, 1, 0, 1
-438, 598, 428, 281, 27, 68, 1, 0, 1
-439, 82, 207, 300, 84, 64, 1, 2, 1
-439, 280, 116, 502, 31, 37, 1, 0, 1
-439, 319, 591, 319, 42, 124, 1, 0, 1
-439, 338, 94, 426, 51, 92, 1, 0, 1
-439, 361, 292, 337, 197, 101, 1, 2, 1
-439, 369, 396, 283, 24, 60, 1, 0, 1
-439, 383, 187, 283, 44, 39, 1, 2, 1
-439, 492, 346, 271, 29, 67, 1, 0, 1
-439, 542, 45, 458, 57, 81, 1, 0, 1
-439, 558, 680, 300, 40, 107, 1, 0, 1
-439, 559, 632, 315, 38, 90, 1, 0, 1
-439, 573, 0, 237, 38, 59, 1, 2, 1
-439, 584, 244, 258, 43, 37, 1, 2, 1
-439, 590, 313, 271, 29, 69, 1, 0, 1
-439, 597, 440, 278, 23, 65, 1, 0, 1
-439, 598, 416, 280, 28, 70, 1, 0, 1
-440, 82, 195, 300, 84, 65, 1, 2, 1
-440, 280, 90, 508, 28, 31, 1, 0, 1
-440, 319, 578, 321, 43, 126, 1, 0, 1
-440, 338, 63, 430, 51, 95, 1, 0, 1
-440, 361, 278, 339, 197, 102, 1, 2, 1
-440, 369, 386, 284, 25, 62, 1, 0, 1
-440, 383, 174, 283, 47, 41, 1, 2, 1
-440, 492, 332, 270, 29, 69, 1, 0, 1
-440, 542, 16, 465, 55, 74, 1, 0, 1
-440, 558, 667, 301, 39, 106, 1, 0, 1
-440, 559, 622, 316, 38, 92, 1, 0, 1
-440, 573, 0, 237, 29, 59, 1, 2, 1
-440, 584, 232, 256, 46, 40, 1, 2, 1
-440, 590, 301, 273, 27, 67, 1, 0, 1
-440, 597, 429, 278, 24, 66, 1, 0, 1
-440, 598, 405, 281, 28, 70, 1, 0, 1
-441, 1, 171, 253, 23, 17, 1, 2, 1
-441, 82, 182, 301, 84, 65, 1, 2, 1
-441, 280, 67, 513, 23, 26, 1, 0, 1
-441, 319, 567, 327, 42, 121, 1, 0, 1
-441, 338, 39, 434, 54, 100, 1, 0, 1
-441, 361, 263, 339, 199, 103, 1, 2, 1
-441, 369, 376, 285, 24, 61, 1, 0, 1
-441, 383, 161, 284, 47, 40, 1, 2, 1
-441, 492, 320, 269, 31, 71, 1, 0, 1
-441, 542, 0, 467, 50, 71, 1, 0, 1
-441, 558, 655, 301, 40, 108, 1, 0, 1
-441, 559, 610, 318, 40, 93, 1, 0, 1
-441, 584, 222, 258, 43, 38, 1, 2, 1
-441, 590, 288, 273, 27, 68, 1, 0, 1
-441, 597, 418, 278, 25, 69, 1, 0, 1
-441, 598, 395, 280, 28, 71, 1, 0, 1
-442, 1, 163, 254, 22, 17, 1, 2, 1
-442, 82, 169, 302, 84, 65, 1, 2, 1
-442, 319, 555, 331, 40, 118, 1, 0, 1
-442, 338, 9, 439, 55, 99, 1, 0, 1
-442, 361, 248, 340, 202, 105, 1, 2, 1
-442, 369, 364, 285, 25, 62, 1, 0, 1
-442, 383, 148, 283, 50, 43, 1, 2, 1
-442, 492, 308, 271, 29, 69, 1, 0, 1
-442, 542, 0, 470, 25, 68, 1, 0, 1
-442, 558, 641, 302, 39, 106, 1, 0, 1
-442, 559, 599, 318, 40, 95, 1, 0, 1
-442, 584, 211, 257, 42, 37, 1, 2, 1
-442, 590, 276, 273, 27, 68, 1, 0, 1
-442, 597, 409, 279, 24, 66, 1, 0, 1
-442, 598, 384, 282, 28, 70, 1, 0, 1
-443, 1, 152, 255, 23, 17, 1, 2, 1
-443, 82, 157, 304, 83, 63, 1, 2, 1
-443, 319, 544, 333, 41, 117, 1, 0, 1
-443, 338, 0, 442, 42, 97, 1, 0, 1
-443, 361, 232, 340, 204, 106, 1, 2, 1
-443, 369, 353, 286, 24, 64, 1, 0, 1
-443, 383, 136, 284, 49, 42, 1, 2, 1
-443, 492, 296, 269, 31, 72, 1, 0, 1
-443, 558, 628, 302, 40, 108, 1, 0, 1
-443, 559, 589, 318, 41, 97, 1, 0, 1
-443, 584, 200, 259, 41, 36, 1, 2, 1
-443, 590, 264, 279, 25, 62, 1, 0, 1
-443, 597, 398, 280, 24, 65, 1, 0, 1
-443, 598, 373, 282, 27, 71, 1, 0, 1
-444, 1, 141, 255, 23, 17, 1, 2, 1
-444, 82, 144, 305, 83, 63, 1, 2, 1
-444, 319, 531, 336, 42, 115, 1, 0, 1
-444, 361, 216, 339, 207, 109, 1, 2, 1
-444, 369, 341, 286, 25, 65, 1, 0, 1
-444, 383, 122, 284, 51, 44, 1, 2, 1
-444, 492, 283, 270, 30, 71, 1, 0, 1
-444, 558, 615, 302, 40, 109, 1, 0, 1
-444, 559, 578, 317, 41, 100, 1, 0, 1
-444, 584, 191, 261, 39, 34, 1, 2, 1
-444, 590, 251, 283, 23, 59, 1, 0, 1
-444, 597, 387, 281, 24, 64, 1, 0, 1
-444, 598, 360, 281, 28, 74, 1, 0, 1
-445, 1, 129, 255, 24, 17, 1, 2, 1
-445, 82, 130, 305, 85, 64, 1, 2, 1
-445, 319, 516, 336, 43, 119, 1, 0, 1
-445, 361, 201, 340, 208, 110, 1, 2, 1
-445, 369, 329, 285, 26, 68, 1, 0, 1
-445, 383, 110, 286, 50, 42, 1, 2, 1
-445, 492, 271, 263, 32, 78, 1, 0, 1
-445, 558, 601, 302, 42, 111, 1, 0, 1
-445, 559, 567, 317, 41, 101, 1, 0, 1
-445, 584, 178, 260, 40, 35, 1, 2, 1
-445, 590, 238, 285, 23, 58, 1, 0, 1
-445, 597, 375, 280, 23, 65, 1, 0, 1
-445, 598, 348, 280, 28, 75, 1, 0, 1
-446, 1, 117, 254, 25, 19, 1, 2, 1
-446, 82, 115, 307, 86, 66, 1, 2, 1
-446, 319, 502, 335, 45, 125, 1, 0, 1
-446, 361, 183, 343, 204, 109, 1, 2, 1
-446, 369, 318, 284, 25, 69, 1, 0, 1
-446, 383, 95, 286, 52, 43, 1, 2, 1
-446, 492, 259, 260, 33, 82, 1, 0, 1
-446, 558, 589, 302, 42, 112, 1, 0, 1
-446, 559, 556, 317, 42, 102, 1, 0, 1
-446, 584, 166, 258, 42, 38, 1, 2, 1
-446, 590, 226, 286, 23, 58, 1, 0, 1
-446, 597, 364, 281, 24, 65, 1, 0, 1
-446, 598, 336, 281, 27, 74, 1, 0, 1
-447, 1, 105, 254, 25, 19, 1, 2, 1
-447, 82, 101, 308, 87, 66, 1, 2, 1
-447, 319, 488, 334, 46, 130, 1, 0, 1
-447, 361, 165, 345, 201, 108, 1, 2, 1
-447, 369, 305, 286, 25, 69, 1, 0, 1
-447, 383, 81, 286, 53, 43, 1, 2, 1
-447, 492, 247, 258, 35, 85, 1, 0, 1
-447, 558, 573, 302, 41, 113, 1, 0, 1
-447, 559, 543, 318, 42, 103, 1, 0, 1
-447, 584, 155, 261, 40, 34, 1, 2, 1
-447, 590, 213, 287, 23, 57, 1, 0, 1
-447, 598, 325, 284, 25, 71, 1, 0, 1
-448, 1, 93, 254, 25, 19, 1, 2, 1
-448, 82, 84, 308, 89, 67, 1, 2, 1
-448, 319, 472, 334, 48, 132, 1, 0, 1
-448, 361, 152, 345, 202, 109, 1, 2, 1
-448, 369, 293, 285, 25, 70, 1, 0, 1
-448, 383, 67, 287, 52, 43, 1, 2, 1
-448, 492, 235, 257, 33, 85, 1, 0, 1
-448, 558, 560, 301, 40, 114, 1, 0, 1
-448, 559, 531, 316, 42, 106, 1, 0, 1
-448, 584, 142, 257, 42, 38, 1, 2, 1
-448, 590, 200, 285, 23, 58, 1, 0, 1
-448, 597, 342, 282, 23, 63, 1, 0, 1
-448, 598, 314, 285, 25, 71, 1, 0, 1
-449, 1, 80, 254, 26, 18, 1, 2, 1
-449, 82, 70, 309, 89, 67, 1, 2, 1
-449, 319, 456, 334, 48, 133, 1, 0, 1
-449, 361, 141, 346, 204, 110, 1, 2, 1
-449, 369, 273, 285, 25, 70, 1, 0, 1
-449, 383, 52, 288, 54, 44, 1, 2, 1
-449, 492, 222, 255, 34, 88, 1, 0, 1
-449, 558, 545, 302, 40, 113, 1, 0, 1
-449, 559, 519, 318, 42, 107, 1, 0, 1
-449, 584, 128, 256, 43, 38, 1, 2, 1
-449, 590, 186, 285, 24, 59, 1, 0, 1
-449, 597, 329, 281, 24, 67, 1, 0, 1
-450, 1, 68, 253, 26, 18, 1, 2, 1
-450, 82, 53, 308, 92, 70, 1, 2, 1
-450, 319, 441, 334, 49, 137, 1, 0, 1
-450, 361, 122, 344, 211, 114, 1, 2, 1
-450, 369, 261, 285, 26, 71, 1, 0, 1
-450, 383, 37, 287, 54, 43, 1, 2, 1
-450, 492, 206, 260, 33, 82, 1, 0, 1
-450, 558, 529, 304, 39, 115, 1, 0, 1
-450, 559, 506, 313, 43, 112, 1, 0, 1
-450, 584, 115, 254, 45, 41, 1, 2, 1
-450, 590, 171, 285, 24, 58, 1, 0, 1
-450, 597, 317, 279, 25, 68, 1, 0, 1
-450, 598, 284, 276, 28, 81, 1, 0, 1
-451, 1, 56, 252, 26, 19, 1, 2, 1
-451, 82, 38, 309, 92, 69, 1, 2, 1
-451, 319, 426, 336, 49, 136, 1, 0, 1
-451, 361, 103, 345, 214, 115, 1, 2, 1
-451, 369, 255, 283, 26, 74, 1, 0, 1
-451, 383, 23, 287, 55, 44, 1, 2, 1
-451, 492, 193, 268, 29, 75, 1, 0, 1
-451, 558, 515, 304, 39, 117, 1, 0, 1
-451, 559, 495, 313, 44, 114, 1, 0, 1
-451, 584, 102, 255, 44, 40, 1, 2, 1
-451, 590, 156, 284, 25, 59, 1, 0, 1
-451, 597, 303, 278, 26, 69, 1, 0, 1
-451, 598, 272, 276, 28, 81, 1, 0, 1
-452, 1, 42, 252, 27, 19, 1, 2, 1
-452, 82, 23, 309, 93, 71, 1, 2, 1
-452, 319, 411, 340, 50, 138, 1, 0, 1
-452, 361, 84, 345, 217, 117, 1, 2, 1
-452, 369, 238, 283, 26, 75, 1, 0, 1
-452, 383, 6, 287, 56, 45, 1, 2, 1
-452, 492, 177, 273, 28, 70, 1, 0, 1
-452, 558, 501, 304, 40, 118, 1, 0, 1
-452, 559, 484, 310, 44, 117, 1, 0, 1
-452, 584, 89, 256, 43, 39, 1, 2, 1
-452, 590, 142, 283, 25, 61, 1, 0, 1
-452, 597, 290, 277, 24, 67, 1, 0, 1
-452, 613, 901, 384, 46, 155, 1, 0, 1
-453, 1, 29, 252, 28, 20, 1, 2, 1
-453, 82, 7, 310, 93, 71, 1, 2, 1
-453, 319, 396, 342, 50, 137, 1, 0, 1
-453, 361, 64, 346, 218, 119, 1, 2, 1
-453, 369, 226, 283, 25, 76, 1, 0, 1
-453, 383, 0, 288, 50, 45, 1, 2, 1
-453, 492, 164, 274, 28, 70, 1, 0, 1
-453, 559, 469, 311, 45, 118, 1, 0, 1
-453, 584, 77, 256, 42, 39, 1, 2, 1
-453, 590, 128, 283, 25, 62, 1, 0, 1
-453, 597, 275, 277, 26, 70, 1, 0, 1
-453, 613, 893, 382, 48, 157, 1, 0, 1
-454, 1, 17, 252, 27, 20, 1, 2, 1
-454, 82, 0, 311, 86, 69, 1, 2, 1
-454, 319, 378, 344, 50, 138, 1, 0, 1
-454, 361, 46, 350, 216, 117, 1, 2, 1
-454, 369, 212, 283, 26, 78, 1, 0, 1
-454, 383, 0, 288, 35, 35, 1, 2, 1
-454, 559, 457, 320, 42, 110, 1, 0, 1
-454, 584, 62, 253, 45, 42, 1, 2, 1
-454, 590, 113, 283, 25, 64, 1, 0, 1
-454, 597, 262, 275, 26, 73, 1, 0, 1
-454, 613, 880, 384, 50, 155, 1, 0, 1
-455, 1, 2, 251, 28, 21, 1, 2, 1
-455, 82, 0, 311, 75, 71, 1, 2, 1
-455, 319, 359, 347, 50, 139, 1, 0, 1
-455, 361, 25, 350, 220, 120, 1, 2, 1
-455, 369, 199, 283, 26, 80, 1, 0, 1
-455, 383, 0, 289, 22, 33, 1, 2, 1
-455, 559, 443, 327, 40, 104, 1, 0, 1
-455, 584, 49, 256, 43, 41, 1, 2, 1
-455, 590, 99, 284, 26, 63, 1, 0, 1
-455, 597, 248, 275, 27, 75, 1, 0, 1
-455, 598, 218, 276, 29, 85, 1, 0, 1
-455, 613, 863, 382, 52, 157, 1, 0, 1
-456, 1, 0, 254, 18, 18, 1, 2, 1
-456, 82, 0, 312, 65, 73, 1, 2, 1
-456, 319, 339, 347, 52, 144, 1, 0, 1
-456, 361, 6, 351, 220, 120, 1, 2, 1
-456, 369, 184, 283, 26, 81, 1, 0, 1
-456, 559, 430, 332, 39, 101, 1, 0, 1
-456, 584, 34, 255, 44, 42, 1, 2, 1
-456, 597, 235, 277, 26, 75, 1, 0, 1
-456, 598, 204, 281, 27, 81, 1, 0, 1
-456, 613, 845, 381, 55, 158, 1, 0, 1
-457, 1, 0, 254, 7, 18, 1, 2, 1
-457, 82, 0, 312, 53, 74, 1, 2, 1
-457, 319, 319, 346, 54, 151, 1, 0, 1
-457, 361, 0, 352, 212, 122, 1, 2, 1
-457, 369, 169, 283, 26, 82, 1, 0, 1
-457, 559, 416, 332, 39, 102, 1, 0, 1
-457, 584, 21, 255, 45, 42, 1, 2, 1
-457, 590, 65, 286, 26, 64, 1, 0, 1
-457, 597, 221, 278, 26, 76, 1, 0, 1
-457, 598, 190, 281, 27, 82, 1, 0, 1
-457, 613, 827, 381, 57, 157, 1, 0, 1
-458, 319, 299, 347, 55, 157, 1, 0, 1
-458, 361, 0, 350, 208, 129, 1, 2, 1
-458, 369, 154, 284, 26, 81, 1, 0, 1
-458, 559, 400, 331, 41, 105, 1, 0, 1
-458, 590, 46, 282, 28, 69, 1, 0, 1
-458, 597, 207, 279, 27, 77, 1, 0, 1
-458, 598, 173, 280, 28, 84, 1, 0, 1
-458, 613, 808, 378, 61, 161, 1, 0, 1
-459, 319, 278, 350, 56, 162, 1, 0, 1
-459, 361, 0, 353, 192, 130, 1, 2, 1
-459, 369, 140, 284, 26, 84, 1, 0, 1
-459, 559, 384, 333, 42, 107, 1, 0, 1
-459, 590, 28, 280, 29, 72, 1, 0, 1
-459, 597, 194, 280, 27, 76, 1, 0, 1
-459, 598, 159, 283, 28, 83, 1, 0, 1
-459, 613, 789, 378, 64, 161, 1, 0, 1
-460, 319, 257, 354, 56, 163, 1, 0, 1
-460, 361, 0, 353, 181, 134, 1, 2, 1
-460, 369, 124, 285, 26, 84, 1, 0, 1
-460, 559, 368, 331, 44, 112, 1, 0, 1
-460, 590, 13, 280, 29, 73, 1, 0, 1
-460, 597, 178, 283, 27, 75, 1, 0, 1
-460, 598, 146, 285, 26, 81, 1, 0, 1
-460, 613, 769, 379, 66, 160, 1, 0, 1
-461, 319, 236, 360, 55, 163, 1, 0, 1
-461, 361, 0, 358, 165, 134, 1, 2, 1
-461, 369, 107, 287, 25, 84, 1, 0, 1
-461, 559, 351, 332, 45, 114, 1, 0, 1
-461, 590, 0, 287, 22, 67, 1, 0, 1
-461, 597, 163, 285, 27, 73, 1, 0, 1
-461, 598, 129, 286, 26, 80, 1, 0, 1
-461, 613, 750, 380, 69, 159, 1, 0, 1
-462, 319, 214, 365, 56, 165, 1, 0, 1
-462, 361, 0, 362, 145, 128, 1, 2, 1
-462, 369, 92, 288, 25, 85, 1, 0, 1
-462, 559, 335, 333, 46, 117, 1, 0, 1
-462, 590, 0, 287, 7, 68, 1, 0, 1
-462, 597, 149, 285, 27, 76, 1, 0, 1
-462, 598, 113, 285, 28, 85, 1, 0, 1
-462, 613, 732, 384, 69, 155, 1, 0, 1
-463, 319, 194, 370, 56, 162, 1, 0, 1
-463, 361, 0, 367, 133, 135, 1, 2, 1
-463, 369, 75, 290, 26, 84, 1, 0, 1
-463, 492, 23, 258, 35, 90, 1, 0, 1
-463, 559, 317, 330, 49, 123, 1, 0, 1
-463, 597, 135, 290, 26, 72, 1, 0, 1
-463, 598, 98, 286, 27, 83, 1, 0, 1
-463, 613, 715, 390, 69, 149, 1, 0, 1
-463, 640, 54, 295, 31, 81, 1, 0, 1
-464, 319, 173, 375, 58, 163, 1, 0, 1
-464, 361, 0, 368, 120, 137, 1, 2, 1
-464, 369, 57, 291, 26, 85, 1, 0, 1
-464, 492, 9, 257, 36, 91, 1, 0, 1
-464, 559, 301, 330, 51, 125, 1, 0, 1
-464, 597, 119, 290, 26, 72, 1, 0, 1
-464, 598, 84, 289, 26, 80, 1, 0, 1
-464, 613, 699, 398, 67, 141, 1, 0, 1
-464, 640, 35, 295, 31, 81, 1, 0, 1
-465, 319, 149, 377, 61, 162, 1, 0, 1
-465, 369, 45, 292, 29, 84, 1, 0, 1
-465, 559, 283, 328, 53, 130, 1, 0, 1
-465, 597, 103, 289, 28, 75, 1, 0, 1
-465, 598, 66, 288, 26, 81, 1, 0, 1
-465, 613, 681, 405, 67, 134, 1, 0, 1
-465, 640, 22, 293, 33, 85, 1, 0, 1
-466, 319, 125, 380, 62, 158, 1, 0, 1
-466, 369, 22, 290, 30, 90, 1, 0, 1
-466, 559, 266, 334, 52, 128, 1, 0, 1
-466, 597, 87, 287, 31, 82, 1, 0, 1
-466, 598, 49, 288, 26, 81, 1, 0, 1
-466, 613, 664, 413, 66, 126, 1, 0, 1
-466, 640, 10, 294, 33, 85, 1, 0, 1
-467, 319, 98, 381, 65, 158, 1, 0, 1
-467, 369, 2, 288, 31, 92, 1, 0, 1
-467, 559, 247, 336, 53, 130, 1, 0, 1
-467, 597, 70, 286, 33, 85, 1, 0, 1
-467, 598, 29, 287, 27, 85, 1, 0, 1
-467, 613, 647, 419, 65, 119, 1, 0, 1
-468, 319, 71, 385, 66, 154, 1, 0, 1
-468, 369, 0, 288, 18, 93, 1, 0, 1
-468, 559, 228, 340, 53, 130, 1, 0, 1
-468, 597, 53, 286, 33, 86, 1, 0, 1
-468, 598, 10, 286, 28, 87, 1, 0, 1
-468, 613, 630, 425, 64, 114, 1, 0, 1
-469, 319, 42, 388, 68, 151, 1, 0, 1
-469, 559, 209, 345, 53, 126, 1, 0, 1
-469, 597, 36, 286, 36, 93, 1, 0, 1
-469, 598, 0, 287, 22, 87, 1, 0, 1
-469, 613, 613, 427, 65, 112, 1, 0, 1
-470, 319, 14, 389, 70, 150, 1, 0, 1
-470, 559, 189, 346, 53, 128, 1, 0, 1
-470, 597, 22, 286, 36, 95, 1, 0, 1
-470, 613, 595, 428, 66, 111, 1, 0, 1
-471, 319, 0, 390, 64, 149, 1, 0, 1
-471, 559, 171, 347, 53, 130, 1, 0, 1
-471, 613, 575, 426, 69, 113, 1, 0, 1
-472, 319, 0, 393, 43, 146, 1, 0, 1
-472, 559, 150, 346, 55, 132, 1, 0, 1
-472, 613, 556, 426, 71, 113, 1, 0, 1
-473, 559, 130, 348, 55, 133, 1, 0, 1
-473, 613, 535, 425, 73, 114, 1, 0, 1
-474, 559, 110, 349, 54, 134, 1, 0, 1
-474, 613, 515, 425, 75, 114, 1, 0, 1
-475, 559, 87, 348, 56, 138, 1, 0, 1
-475, 613, 495, 425, 78, 114, 1, 0, 1
-476, 559, 65, 349, 57, 139, 1, 0, 1
-476, 613, 471, 427, 77, 112, 1, 0, 1
-477, 559, 42, 351, 56, 139, 1, 0, 1
-477, 613, 451, 431, 77, 108, 1, 0, 1
-478, 559, 15, 361, 48, 120, 1, 0, 1
-478, 613, 431, 435, 75, 104, 1, 0, 1
-479, 559, 0, 363, 43, 119, 1, 0, 1
-479, 613, 410, 440, 74, 98, 1, 0, 1
-480, 613, 388, 444, 74, 94, 1, 0, 1
-481, 613, 363, 442, 77, 97, 1, 0, 1
-482, 613, 338, 440, 79, 99, 1, 0, 1
-483, 613, 314, 439, 81, 100, 1, 0, 1
-483, 660, 867, 321, 40, 72, 1, 0, 1
-484, 613, 287, 438, 82, 101, 1, 0, 1
-484, 660, 845, 321, 41, 73, 1, 0, 1
-485, 613, 260, 438, 82, 101, 1, 0, 1
-485, 660, 822, 321, 42, 76, 1, 0, 1
-486, 613, 233, 440, 82, 99, 1, 0, 1
-486, 660, 791, 322, 60, 109, 1, 0, 1
-487, 613, 206, 443, 80, 96, 1, 0, 1
-487, 660, 767, 322, 66, 125, 1, 0, 1
-488, 613, 181, 449, 76, 90, 1, 0, 1
-488, 660, 745, 323, 67, 129, 1, 0, 1
-489, 613, 158, 455, 71, 83, 1, 0, 1
-489, 660, 720, 324, 69, 133, 1, 0, 1
-490, 613, 134, 463, 65, 74, 1, 0, 1
-490, 660, 697, 326, 68, 134, 1, 0, 1
-490, 666, 747, 326, 43, 148, 1, 0, 1
-491, 613, 111, 471, 61, 67, 1, 0, 1
-491, 660, 674, 329, 66, 132, 1, 0, 1
-491, 666, 734, 326, 44, 148, 1, 0, 1
-492, 613, 85, 477, 59, 62, 1, 0, 1
-492, 660, 654, 332, 64, 130, 1, 0, 1
-493, 613, 59, 480, 57, 59, 1, 0, 1
-493, 660, 636, 334, 61, 128, 1, 0, 1
-494, 613, 30, 483, 56, 56, 1, 0, 1
-494, 660, 616, 335, 60, 128, 1, 0, 1
-494, 667, 666, 341, 43, 75, 1, 0, 1
-495, 613, 3, 483, 56, 56, 1, 0, 1
-495, 660, 597, 337, 58, 130, 1, 0, 1
-495, 667, 641, 343, 46, 82, 1, 0, 1
-496, 613, 0, 484, 37, 55, 1, 0, 1
-496, 660, 575, 339, 58, 133, 1, 0, 1
-496, 667, 613, 347, 52, 93, 1, 0, 1
-497, 613, 0, 486, 10, 53, 1, 0, 1
-497, 660, 553, 340, 56, 135, 1, 0, 1
-497, 667, 593, 349, 55, 98, 1, 0, 1
-498, 660, 530, 340, 55, 133, 1, 0, 1
-499, 660, 507, 340, 54, 135, 1, 0, 1
-500, 660, 484, 340, 53, 136, 1, 0, 1
-500, 667, 512, 347, 70, 129, 1, 0, 1
-501, 660, 461, 341, 52, 135, 1, 0, 1
-501, 667, 488, 344, 71, 134, 1, 0, 1
-502, 660, 439, 340, 53, 136, 1, 0, 1
-502, 667, 464, 342, 72, 143, 1, 0, 1
-503, 660, 414, 341, 53, 136, 1, 0, 1
-503, 667, 442, 342, 68, 138, 1, 0, 1
-504, 660, 390, 343, 52, 133, 1, 0, 1
-504, 667, 419, 343, 68, 142, 1, 0, 1
-505, 660, 366, 342, 54, 141, 1, 0, 1
-505, 667, 398, 345, 69, 148, 1, 0, 1
-505, 671, 912, 322, 25, 90, 1, 0, 1
-506, 660, 340, 342, 56, 146, 1, 0, 1
-506, 667, 374, 346, 68, 152, 1, 0, 1
-506, 671, 893, 323, 25, 91, 1, 0, 1
-507, 660, 315, 346, 55, 144, 1, 0, 1
-507, 667, 348, 350, 68, 156, 1, 0, 1
-507, 671, 874, 324, 27, 91, 1, 0, 1
-508, 660, 290, 348, 54, 144, 1, 0, 1
-508, 667, 319, 353, 69, 162, 1, 0, 1
-508, 671, 857, 326, 27, 90, 1, 0, 1
-509, 660, 266, 352, 51, 141, 1, 0, 1
-509, 667, 292, 356, 70, 166, 1, 0, 1
-509, 671, 840, 329, 26, 88, 1, 0, 1
-510, 660, 239, 356, 53, 148, 1, 0, 1
-510, 667, 267, 360, 69, 167, 1, 0, 1
-510, 671, 822, 333, 26, 85, 1, 0, 1
-511, 660, 214, 359, 52, 146, 1, 0, 1
-511, 667, 243, 365, 66, 164, 1, 0, 1
-511, 671, 804, 334, 28, 87, 1, 0, 1
-512, 660, 187, 361, 50, 143, 1, 0, 1
-512, 667, 214, 368, 66, 164, 1, 0, 1
-512, 671, 786, 333, 30, 92, 1, 0, 1
-513, 660, 151, 362, 56, 157, 1, 0, 1
-513, 667, 185, 372, 66, 165, 1, 0, 1
-513, 671, 769, 334, 31, 93, 1, 0, 1
-514, 660, 119, 369, 57, 156, 1, 0, 1
-514, 667, 157, 375, 65, 162, 1, 0, 1
-514, 671, 751, 336, 31, 93, 1, 0, 1
-515, 660, 85, 373, 60, 158, 1, 0, 1
-515, 667, 128, 377, 65, 162, 1, 0, 1
-515, 671, 733, 335, 32, 95, 1, 0, 1
-515, 686, 897, 280, 46, 50, 1, 2, 1
-516, 660, 53, 374, 62, 161, 1, 0, 1
-516, 667, 101, 380, 64, 159, 1, 0, 1
-516, 671, 716, 335, 32, 95, 1, 0, 1
-516, 686, 882, 279, 47, 50, 1, 2, 1
-517, 660, 30, 378, 57, 153, 1, 0, 1
-517, 667, 70, 385, 63, 154, 1, 0, 1
-517, 671, 699, 335, 34, 96, 1, 0, 1
-517, 686, 866, 279, 46, 50, 1, 2, 1
-518, 660, 1, 379, 55, 150, 1, 0, 1
-518, 667, 37, 386, 64, 153, 1, 0, 1
-518, 671, 683, 335, 35, 97, 1, 0, 1
-518, 686, 850, 277, 46, 50, 1, 2, 1
-519, 660, 0, 382, 29, 150, 1, 0, 1
-519, 667, 7, 391, 63, 148, 1, 0, 1
-519, 671, 667, 338, 35, 96, 1, 0, 1
-519, 686, 835, 275, 48, 50, 1, 2, 1
-519, 697, 882, 259, 40, 33, 1, 2, 1
-520, 667, 0, 395, 45, 143, 1, 0, 1
-520, 671, 650, 338, 36, 96, 1, 0, 1
-520, 686, 820, 275, 47, 49, 1, 2, 1
-520, 697, 869, 259, 41, 33, 1, 2, 1
-520, 700, 692, 338, 36, 100, 1, 0, 1
-521, 667, 0, 398, 19, 141, 1, 0, 1
-521, 671, 633, 339, 37, 96, 1, 0, 1
-521, 686, 806, 274, 47, 49, 1, 2, 1
-521, 697, 857, 259, 40, 32, 1, 2, 1
-521, 700, 673, 338, 37, 101, 1, 0, 1
-522, 671, 617, 341, 37, 93, 1, 0, 1
-522, 686, 791, 273, 47, 49, 1, 2, 1
-522, 697, 845, 258, 39, 31, 1, 2, 1
-522, 700, 657, 336, 37, 102, 1, 0, 1
-523, 671, 599, 341, 38, 94, 1, 0, 1
-523, 686, 776, 273, 47, 48, 1, 2, 1
-523, 697, 832, 258, 40, 32, 1, 2, 1
-523, 700, 641, 338, 38, 103, 1, 0, 1
-523, 705, 923, 270, 28, 33, 1, 2, 1
-524, 671, 582, 342, 38, 94, 1, 0, 1
-524, 686, 762, 272, 47, 47, 1, 2, 1
-524, 697, 821, 258, 40, 31, 1, 2, 1
-524, 700, 624, 337, 38, 107, 1, 0, 1
-524, 705, 913, 271, 25, 28, 1, 2, 1
-525, 671, 566, 342, 37, 95, 1, 0, 1
-525, 686, 750, 272, 45, 46, 1, 2, 1
-525, 697, 811, 258, 40, 31, 1, 2, 1
-525, 700, 606, 336, 41, 111, 1, 0, 1
-525, 705, 898, 272, 24, 26, 1, 2, 1
-525, 711, 653, 279, 27, 57, 1, 0, 1
-526, 671, 548, 342, 38, 97, 1, 0, 1
-526, 686, 737, 272, 46, 45, 1, 2, 1
-526, 697, 799, 257, 41, 32, 1, 2, 1
-526, 700, 589, 336, 41, 112, 1, 0, 1
-526, 705, 887, 272, 25, 25, 1, 2, 1
-526, 711, 640, 280, 27, 56, 1, 0, 1
-526, 713, 907, 282, 41, 46, 1, 2, 1
-527, 671, 533, 342, 38, 98, 1, 0, 1
-527, 686, 725, 271, 45, 45, 1, 2, 1
-527, 697, 788, 257, 43, 33, 1, 2, 1
-527, 700, 573, 338, 41, 112, 1, 0, 1
-527, 705, 875, 272, 27, 25, 1, 2, 1
-527, 711, 628, 282, 25, 54, 1, 0, 1
-527, 713, 901, 284, 41, 45, 1, 2, 1
-528, 671, 517, 343, 39, 100, 1, 0, 1
-528, 686, 712, 271, 44, 44, 1, 2, 1
-528, 697, 777, 256, 45, 35, 1, 2, 1
-528, 700, 555, 339, 41, 113, 1, 0, 1
-528, 705, 862, 272, 29, 26, 1, 2, 1
-528, 711, 615, 285, 25, 52, 1, 0, 1
-528, 713, 894, 287, 44, 45, 1, 2, 1
-529, 671, 500, 345, 40, 104, 1, 0, 1
-529, 686, 700, 271, 44, 43, 1, 2, 1
-529, 697, 766, 257, 45, 34, 1, 2, 1
-529, 700, 539, 343, 41, 113, 1, 0, 1
-529, 705, 847, 273, 30, 25, 1, 2, 1
-529, 711, 603, 285, 24, 51, 1, 0, 1
-529, 713, 885, 287, 49, 47, 1, 2, 1
-530, 671, 482, 346, 41, 107, 1, 0, 1
-530, 686, 688, 271, 43, 44, 1, 2, 1
-530, 697, 756, 258, 44, 33, 1, 2, 1
-530, 700, 522, 344, 42, 116, 1, 0, 1
-530, 705, 834, 273, 32, 25, 1, 2, 1
-530, 711, 592, 285, 24, 52, 1, 0, 1
-530, 713, 876, 286, 55, 50, 1, 2, 1
-531, 671, 465, 346, 41, 109, 1, 0, 1
-531, 686, 676, 271, 43, 43, 1, 2, 1
-531, 697, 744, 258, 45, 34, 1, 2, 1
-531, 700, 505, 348, 44, 116, 1, 0, 1
-531, 705, 821, 273, 34, 25, 1, 2, 1
-531, 711, 581, 284, 24, 52, 1, 0, 1
-531, 713, 868, 286, 60, 51, 1, 2, 1
-532, 671, 449, 350, 41, 107, 1, 0, 1
-532, 686, 664, 271, 43, 43, 1, 2, 1
-532, 697, 736, 259, 44, 33, 1, 2, 1
-532, 700, 487, 351, 45, 117, 1, 0, 1
-532, 705, 810, 273, 33, 25, 1, 2, 1
-532, 711, 569, 283, 25, 54, 1, 0, 1
-532, 713, 859, 287, 64, 51, 1, 2, 1
-533, 671, 432, 352, 42, 110, 1, 0, 1
-533, 686, 654, 270, 41, 43, 1, 2, 1
-533, 697, 726, 259, 44, 33, 1, 2, 1
-533, 700, 472, 352, 45, 118, 1, 0, 1
-533, 705, 799, 273, 36, 25, 1, 2, 1
-533, 711, 558, 283, 25, 55, 1, 0, 1
-533, 713, 850, 288, 68, 50, 1, 2, 1
-534, 671, 416, 354, 42, 110, 1, 0, 1
-534, 686, 642, 270, 41, 42, 1, 2, 1
-534, 697, 717, 260, 44, 34, 1, 2, 1
-534, 700, 456, 352, 46, 119, 1, 0, 1
-534, 705, 789, 273, 36, 26, 1, 2, 1
-534, 711, 548, 286, 24, 53, 1, 0, 1
-534, 713, 838, 287, 74, 52, 1, 2, 1
-534, 720, 653, 252, 21, 17, 1, 2, 1
-534, 721, 650, 370, 63, 144, 1, 0, 1
-535, 671, 400, 354, 41, 112, 1, 0, 1
-535, 686, 631, 270, 41, 42, 1, 2, 1
-535, 697, 708, 260, 45, 34, 1, 2, 1
-535, 700, 440, 352, 47, 122, 1, 0, 1
-535, 705, 776, 272, 39, 27, 1, 2, 1
-535, 711, 537, 286, 25, 54, 1, 0, 1
-535, 713, 825, 286, 82, 54, 1, 2, 1
-535, 720, 644, 251, 21, 17, 1, 2, 1
-535, 721, 637, 376, 60, 139, 1, 0, 1
-536, 671, 383, 355, 42, 113, 1, 0, 1
-536, 686, 620, 270, 41, 42, 1, 2, 1
-536, 697, 699, 259, 45, 34, 1, 2, 1
-536, 700, 423, 352, 48, 127, 1, 0, 1
-536, 705, 768, 273, 39, 26, 1, 2, 1
-536, 711, 527, 286, 24, 55, 1, 0, 1
-536, 713, 816, 287, 83, 52, 1, 2, 1
-536, 720, 634, 251, 22, 18, 1, 2, 1
-536, 721, 626, 387, 55, 127, 1, 0, 1
-537, 671, 364, 354, 44, 119, 1, 0, 1
-537, 686, 609, 269, 41, 42, 1, 2, 1
-537, 697, 690, 258, 46, 35, 1, 2, 1
-537, 700, 405, 352, 49, 131, 1, 0, 1
-537, 705, 758, 272, 39, 25, 1, 2, 1
-537, 711, 516, 287, 25, 55, 1, 0, 1
-537, 713, 804, 285, 88, 53, 1, 2, 1
-537, 720, 625, 250, 22, 18, 1, 2, 1
-537, 721, 609, 374, 60, 141, 1, 0, 1
-538, 671, 346, 357, 43, 118, 1, 0, 1
-538, 686, 597, 270, 42, 42, 1, 2, 1
-538, 697, 682, 260, 45, 35, 1, 2, 1
-538, 700, 388, 353, 49, 132, 1, 0, 1
-538, 705, 747, 273, 42, 27, 1, 2, 1
-538, 711, 506, 288, 24, 55, 1, 0, 1
-538, 713, 794, 287, 91, 54, 1, 2, 1
-538, 720, 618, 252, 20, 16, 1, 2, 1
-538, 721, 594, 372, 62, 146, 1, 0, 1
-539, 671, 327, 357, 43, 120, 1, 0, 1
-539, 686, 587, 270, 41, 41, 1, 2, 1
-539, 697, 674, 260, 46, 35, 1, 2, 1
-539, 700, 370, 355, 49, 135, 1, 0, 1
-539, 705, 737, 273, 43, 27, 1, 2, 1
-539, 711, 496, 288, 24, 56, 1, 0, 1
-539, 713, 784, 288, 93, 53, 1, 2, 1
-539, 720, 610, 252, 21, 17, 1, 2, 1
-539, 721, 583, 385, 55, 132, 1, 0, 1
-540, 671, 310, 357, 44, 124, 1, 0, 1
-540, 686, 577, 270, 40, 41, 1, 2, 1
-540, 697, 665, 261, 47, 36, 1, 2, 1
-540, 700, 352, 357, 50, 138, 1, 0, 1
-540, 705, 728, 274, 43, 27, 1, 2, 1
-540, 711, 487, 289, 24, 55, 1, 0, 1
-540, 713, 774, 291, 96, 53, 1, 2, 1
-540, 720, 602, 253, 22, 17, 1, 2, 1
-540, 721, 569, 386, 55, 132, 1, 0, 1
-541, 671, 292, 360, 45, 124, 1, 0, 1
-541, 686, 567, 270, 41, 41, 1, 2, 1
-541, 697, 658, 262, 46, 35, 1, 2, 1
-541, 700, 334, 359, 50, 140, 1, 0, 1
-541, 705, 719, 274, 43, 27, 1, 2, 1
-541, 711, 477, 291, 23, 54, 1, 0, 1
-541, 713, 765, 292, 96, 52, 1, 2, 1
-541, 720, 593, 253, 22, 17, 1, 2, 1
-541, 721, 556, 386, 56, 135, 1, 0, 1
-542, 671, 271, 364, 45, 123, 1, 0, 1
-542, 686, 557, 270, 41, 42, 1, 2, 1
-542, 697, 649, 263, 47, 36, 1, 2, 1
-542, 700, 315, 364, 49, 138, 1, 0, 1
-542, 705, 710, 277, 43, 26, 1, 2, 1
-542, 711, 467, 292, 24, 55, 1, 0, 1
-542, 713, 757, 295, 97, 52, 1, 2, 1
-542, 720, 586, 255, 21, 17, 1, 2, 1
-542, 721, 537, 381, 60, 146, 1, 0, 1
-542, 722, 931, 312, 20, 55, 1, 2, 1
-543, 671, 254, 366, 47, 124, 1, 0, 1
-543, 686, 546, 270, 41, 41, 1, 2, 1
-543, 697, 642, 264, 47, 36, 1, 2, 1
-543, 700, 298, 367, 50, 141, 1, 0, 1
-543, 705, 702, 277, 44, 27, 1, 2, 1
-543, 711, 457, 292, 24, 55, 1, 0, 1
-543, 713, 747, 296, 99, 52, 1, 2, 1
-543, 720, 577, 256, 22, 17, 1, 2, 1
-543, 721, 525, 380, 60, 149, 1, 0, 1
-543, 722, 926, 315, 21, 55, 1, 2, 1
-544, 671, 233, 373, 50, 126, 1, 0, 1
-544, 686, 536, 271, 40, 41, 1, 2, 1
-544, 697, 635, 265, 46, 36, 1, 2, 1
-544, 700, 278, 372, 52, 146, 1, 0, 1
-544, 705, 690, 277, 46, 27, 1, 2, 1
-544, 711, 447, 293, 25, 57, 1, 0, 1
-544, 713, 738, 297, 101, 52, 1, 2, 1
-544, 720, 568, 256, 23, 17, 1, 2, 1
-544, 721, 509, 382, 61, 152, 1, 0, 1
-544, 722, 920, 315, 24, 59, 1, 2, 1
-545, 671, 215, 373, 51, 127, 1, 0, 1
-545, 686, 527, 270, 39, 40, 1, 2, 1
-545, 697, 628, 265, 46, 36, 1, 2, 1
-545, 700, 261, 372, 53, 148, 1, 0, 1
-545, 705, 680, 277, 46, 27, 1, 2, 1
-545, 711, 438, 292, 24, 57, 1, 0, 1
-545, 713, 730, 296, 102, 52, 1, 2, 1
-545, 720, 561, 255, 22, 18, 1, 2, 1
-545, 721, 498, 380, 60, 152, 1, 0, 1
-545, 722, 914, 315, 26, 59, 1, 2, 1
-546, 671, 198, 374, 54, 132, 1, 0, 1
-546, 686, 518, 268, 39, 41, 1, 2, 1
-546, 697, 621, 264, 46, 36, 1, 2, 1
-546, 700, 244, 373, 54, 150, 1, 0, 1
-546, 705, 672, 276, 46, 27, 1, 2, 1
-546, 711, 428, 291, 25, 57, 1, 0, 1
-546, 713, 721, 296, 104, 52, 1, 2, 1
-546, 720, 553, 254, 23, 18, 1, 2, 1
-546, 721, 484, 380, 60, 155, 1, 0, 1
-546, 722, 908, 314, 29, 59, 1, 2, 1
-547, 671, 177, 377, 53, 131, 1, 0, 1
-547, 686, 508, 267, 39, 40, 1, 2, 1
-547, 697, 613, 263, 47, 36, 1, 2, 1
-547, 700, 226, 374, 54, 151, 1, 0, 1
-547, 705, 664, 274, 46, 27, 1, 2, 1
-547, 711, 419, 291, 25, 57, 1, 0, 1
-547, 713, 713, 294, 106, 53, 1, 2, 1
-547, 720, 547, 254, 22, 16, 1, 2, 1
-547, 721, 471, 382, 59, 152, 1, 0, 1
-547, 722, 903, 312, 32, 57, 1, 2, 1
-548, 671, 156, 378, 54, 136, 1, 0, 1
-548, 686, 498, 265, 40, 41, 1, 2, 1
-548, 697, 607, 264, 47, 35, 1, 2, 1
-548, 700, 205, 375, 55, 157, 1, 0, 1
-548, 705, 657, 274, 45, 27, 1, 2, 1
-548, 711, 409, 292, 25, 57, 1, 0, 1
-548, 713, 705, 294, 106, 53, 1, 2, 1
-548, 720, 539, 253, 23, 17, 1, 2, 1
-548, 721, 459, 388, 56, 146, 1, 0, 1
-548, 722, 896, 312, 37, 59, 1, 2, 1
-549, 671, 137, 382, 55, 137, 1, 0, 1
-549, 686, 488, 264, 40, 41, 1, 2, 1
-549, 697, 602, 263, 46, 35, 1, 2, 1
-549, 700, 186, 378, 55, 157, 1, 0, 1
-549, 705, 648, 272, 48, 28, 1, 2, 1
-549, 711, 399, 292, 25, 58, 1, 0, 1
-549, 713, 699, 292, 106, 53, 1, 2, 1
-549, 720, 532, 253, 23, 16, 1, 2, 1
-549, 721, 445, 382, 58, 152, 1, 0, 1
-549, 722, 890, 309, 41, 60, 1, 2, 1
-549, 723, 454, 210, 42, 60, 1, 2, 1
-550, 671, 115, 380, 57, 144, 1, 0, 1
-550, 686, 480, 264, 40, 41, 1, 2, 1
-550, 697, 596, 263, 47, 35, 1, 2, 1
-550, 700, 166, 380, 56, 156, 1, 0, 1
-550, 705, 641, 272, 47, 27, 1, 2, 1
-550, 711, 390, 291, 26, 59, 1, 0, 1
-550, 713, 691, 291, 108, 55, 1, 2, 1
-550, 720, 526, 252, 24, 17, 1, 2, 1
-550, 721, 435, 386, 56, 147, 1, 0, 1
-550, 722, 883, 308, 47, 61, 1, 2, 1
-550, 723, 444, 210, 44, 63, 1, 2, 1
-551, 671, 93, 382, 57, 147, 1, 0, 1
-551, 686, 471, 263, 41, 42, 1, 2, 1
-551, 697, 589, 263, 48, 35, 1, 2, 1
-551, 700, 146, 382, 55, 156, 1, 0, 1
-551, 705, 634, 271, 47, 27, 1, 2, 1
-551, 711, 380, 291, 27, 59, 1, 0, 1
-551, 713, 684, 291, 110, 55, 1, 2, 1
-551, 720, 519, 252, 24, 17, 1, 2, 1
-551, 721, 424, 391, 53, 140, 1, 0, 1
-551, 722, 876, 307, 53, 63, 1, 2, 1
-551, 723, 437, 210, 44, 64, 1, 2, 1
-552, 671, 72, 383, 58, 152, 1, 0, 1
-552, 686, 463, 263, 41, 41, 1, 2, 1
-552, 697, 583, 262, 50, 36, 1, 2, 1
-552, 700, 124, 384, 54, 155, 1, 0, 1
-552, 705, 628, 271, 48, 27, 1, 2, 1
-552, 711, 371, 292, 26, 58, 1, 0, 1
-552, 713, 679, 291, 109, 55, 1, 2, 1
-552, 720, 512, 251, 25, 17, 1, 2, 1
-552, 721, 409, 393, 55, 143, 1, 0, 1
-552, 722, 869, 307, 60, 64, 1, 2, 1
-552, 723, 426, 210, 44, 63, 1, 2, 1
-553, 671, 51, 386, 57, 152, 1, 0, 1
-553, 686, 456, 262, 39, 41, 1, 2, 1
-553, 697, 578, 262, 49, 35, 1, 2, 1
-553, 700, 101, 388, 54, 151, 1, 0, 1
-553, 705, 621, 269, 49, 29, 1, 2, 1
-553, 711, 361, 291, 27, 59, 1, 0, 1
-553, 713, 673, 291, 110, 55, 1, 2, 1
-553, 720, 506, 251, 25, 17, 1, 2, 1
-553, 721, 397, 390, 56, 146, 1, 0, 1
-553, 722, 861, 306, 66, 66, 1, 2, 1
-553, 723, 416, 210, 45, 63, 1, 2, 1
-554, 671, 30, 393, 55, 146, 1, 0, 1
-554, 686, 446, 261, 40, 41, 1, 2, 1
-554, 697, 572, 262, 50, 35, 1, 2, 1
-554, 700, 76, 390, 54, 149, 1, 0, 1
-554, 705, 615, 269, 49, 29, 1, 2, 1
-554, 711, 352, 291, 27, 60, 1, 0, 1
-554, 713, 667, 291, 110, 56, 1, 2, 1
-554, 720, 500, 251, 26, 17, 1, 2, 1
-554, 721, 380, 389, 58, 149, 1, 0, 1
-554, 722, 852, 305, 71, 66, 1, 2, 1
-554, 723, 408, 209, 45, 65, 1, 2, 1
-555, 671, 7, 396, 55, 143, 1, 0, 1
-555, 686, 439, 261, 39, 40, 1, 2, 1
-555, 697, 567, 262, 48, 35, 1, 2, 1
-555, 700, 55, 395, 54, 144, 1, 0, 1
-555, 705, 610, 269, 47, 28, 1, 2, 1
-555, 711, 343, 290, 27, 61, 1, 0, 1
-555, 713, 662, 291, 110, 57, 1, 2, 1
-555, 720, 493, 251, 25, 17, 1, 2, 1
-555, 721, 369, 386, 59, 152, 1, 0, 1
-555, 722, 844, 305, 74, 65, 1, 2, 1
-556, 671, 0, 398, 43, 141, 1, 0, 1
-556, 686, 431, 260, 39, 40, 1, 2, 1
-556, 697, 561, 262, 50, 35, 1, 2, 1
-556, 700, 31, 401, 53, 138, 1, 0, 1
-556, 705, 605, 268, 45, 27, 1, 2, 1
-556, 711, 334, 290, 27, 61, 1, 0, 1
-556, 713, 657, 291, 108, 56, 1, 2, 1
-556, 720, 487, 250, 27, 18, 1, 2, 1
-556, 721, 363, 389, 52, 130, 1, 0, 1
-556, 722, 836, 305, 78, 65, 1, 2, 1
-556, 723, 389, 208, 45, 64, 1, 2, 1
-557, 671, 0, 401, 24, 138, 1, 0, 1
-557, 686, 421, 258, 41, 41, 1, 2, 1
-557, 697, 555, 261, 51, 36, 1, 2, 1
-557, 700, 8, 406, 52, 133, 1, 0, 1
-557, 705, 598, 267, 47, 28, 1, 2, 1
-557, 711, 324, 290, 27, 61, 1, 0, 1
-557, 713, 652, 291, 109, 56, 1, 2, 1
-557, 720, 482, 249, 26, 18, 1, 2, 1
-557, 721, 344, 385, 58, 147, 1, 0, 1
-557, 722, 828, 304, 81, 65, 1, 2, 1
-557, 723, 381, 207, 43, 61, 1, 2, 1
-558, 686, 414, 257, 41, 42, 1, 2, 1
-558, 697, 550, 260, 52, 36, 1, 2, 1
-558, 700, 0, 410, 38, 127, 1, 0, 1
-558, 705, 593, 266, 46, 29, 1, 2, 1
-558, 711, 315, 290, 27, 61, 1, 0, 1
-558, 713, 646, 290, 110, 57, 1, 2, 1
-558, 720, 476, 249, 26, 18, 1, 2, 1
-558, 721, 328, 383, 61, 154, 1, 0, 1
-558, 722, 818, 303, 88, 67, 1, 2, 1
-558, 723, 373, 206, 43, 62, 1, 2, 1
-558, 731, 360, 267, 18, 44, 1, 0, 1
-559, 686, 406, 257, 40, 40, 1, 2, 1
-559, 697, 547, 259, 53, 37, 1, 2, 1
-559, 700, 0, 413, 17, 125, 1, 0, 1
-559, 705, 587, 265, 46, 29, 1, 2, 1
-559, 711, 307, 290, 27, 62, 1, 0, 1
-559, 713, 642, 289, 109, 57, 1, 2, 1
-559, 720, 469, 247, 28, 19, 1, 2, 1
-559, 721, 315, 381, 62, 158, 1, 0, 1
-559, 722, 811, 303, 91, 67, 1, 2, 1
-559, 723, 363, 204, 44, 62, 1, 2, 1
-559, 731, 351, 264, 19, 47, 1, 0, 1
-560, 686, 398, 255, 41, 41, 1, 2, 1
-560, 697, 541, 258, 57, 39, 1, 2, 1
-560, 705, 581, 265, 46, 29, 1, 2, 1
-560, 711, 297, 289, 28, 64, 1, 0, 1
-560, 713, 637, 290, 108, 57, 1, 2, 1
-560, 720, 464, 247, 28, 19, 1, 2, 1
-560, 721, 301, 381, 62, 158, 1, 0, 1
-560, 722, 804, 303, 95, 67, 1, 2, 1
-560, 723, 353, 203, 46, 65, 1, 2, 1
-560, 731, 344, 265, 18, 44, 1, 0, 1
-561, 686, 390, 254, 42, 42, 1, 2, 1
-561, 697, 537, 258, 56, 38, 1, 2, 1
-561, 705, 577, 265, 44, 29, 1, 2, 1
-561, 711, 289, 289, 28, 64, 1, 0, 1
-561, 713, 633, 290, 109, 58, 1, 2, 1
-561, 720, 458, 247, 29, 19, 1, 2, 1
-561, 721, 288, 379, 63, 160, 1, 0, 1
-561, 722, 797, 302, 98, 68, 1, 2, 1
-561, 723, 345, 203, 48, 67, 1, 2, 1
-561, 731, 337, 266, 18, 43, 1, 0, 1
-562, 686, 384, 255, 41, 41, 1, 2, 1
-562, 697, 534, 259, 56, 38, 1, 2, 1
-562, 705, 572, 264, 44, 30, 1, 2, 1
-562, 711, 281, 289, 28, 66, 1, 0, 1
-562, 713, 627, 290, 111, 60, 1, 2, 1
-562, 720, 453, 246, 28, 19, 1, 2, 1
-562, 721, 275, 379, 63, 160, 1, 0, 1
-562, 722, 790, 302, 100, 67, 1, 2, 1
-562, 723, 336, 203, 49, 67, 1, 2, 1
-562, 731, 331, 268, 17, 41, 1, 0, 1
-563, 686, 378, 256, 40, 39, 1, 2, 1
-563, 697, 529, 259, 58, 39, 1, 2, 1
-563, 705, 568, 264, 43, 30, 1, 2, 1
-563, 711, 273, 290, 28, 66, 1, 0, 1
-563, 713, 621, 290, 113, 62, 1, 2, 1
-563, 720, 448, 247, 29, 20, 1, 2, 1
-563, 721, 262, 378, 64, 161, 1, 0, 1
-563, 722, 783, 302, 103, 68, 1, 2, 1
-563, 723, 328, 204, 46, 65, 1, 2, 1
-563, 731, 324, 269, 17, 42, 1, 0, 1
-564, 686, 370, 254, 43, 41, 1, 2, 1
-564, 697, 524, 259, 61, 40, 1, 2, 1
-564, 705, 563, 263, 43, 31, 1, 2, 1
-564, 711, 264, 290, 29, 67, 1, 0, 1
-564, 713, 617, 291, 113, 62, 1, 2, 1
-564, 720, 443, 247, 29, 20, 1, 2, 1
-564, 721, 249, 379, 64, 160, 1, 0, 1
-564, 722, 778, 303, 104, 67, 1, 2, 1
-564, 723, 318, 203, 49, 68, 1, 2, 1
-564, 731, 317, 270, 17, 41, 1, 0, 1
-565, 686, 363, 250, 45, 44, 1, 2, 1
-565, 697, 520, 259, 60, 39, 1, 2, 1
-565, 705, 559, 264, 40, 29, 1, 2, 1
-565, 711, 257, 290, 29, 68, 1, 0, 1
-565, 713, 613, 291, 113, 63, 1, 2, 1
-565, 720, 439, 247, 28, 19, 1, 2, 1
-565, 721, 236, 379, 64, 160, 1, 0, 1
-565, 722, 772, 303, 106, 67, 1, 2, 1
-565, 723, 309, 202, 50, 69, 1, 2, 1
-566, 686, 358, 253, 43, 41, 1, 2, 1
-566, 697, 516, 259, 62, 39, 1, 2, 1
-566, 705, 553, 263, 40, 30, 1, 2, 1
-566, 711, 248, 290, 30, 69, 1, 0, 1
-566, 713, 611, 292, 111, 61, 1, 2, 1
-566, 720, 434, 247, 29, 20, 1, 2, 1
-566, 721, 225, 384, 63, 155, 1, 0, 1
-566, 722, 767, 303, 107, 67, 1, 2, 1
-567, 686, 352, 252, 42, 41, 1, 2, 1
-567, 697, 513, 259, 64, 40, 1, 2, 1
-567, 711, 240, 291, 30, 68, 1, 0, 1
-567, 713, 608, 293, 111, 62, 1, 2, 1
-567, 720, 429, 247, 29, 20, 1, 2, 1
-567, 721, 211, 388, 62, 151, 1, 0, 1
-567, 722, 760, 303, 110, 68, 1, 2, 1
-568, 686, 345, 251, 42, 41, 1, 2, 1
-568, 697, 509, 259, 65, 41, 1, 2, 1
-568, 711, 232, 293, 30, 68, 1, 0, 1
-568, 713, 605, 294, 109, 61, 1, 2, 1
-568, 720, 426, 248, 28, 19, 1, 2, 1
-568, 721, 198, 391, 63, 148, 1, 0, 1
-568, 722, 754, 303, 114, 70, 1, 2, 1
-569, 686, 339, 251, 41, 42, 1, 2, 1
-569, 697, 504, 259, 65, 41, 1, 2, 1
-569, 711, 223, 293, 31, 69, 1, 0, 1
-569, 713, 602, 295, 108, 61, 1, 2, 1
-569, 720, 421, 247, 29, 21, 1, 2, 1
-569, 721, 184, 393, 63, 146, 1, 0, 1
-569, 722, 749, 303, 116, 70, 1, 2, 1
-570, 686, 333, 251, 42, 41, 1, 2, 1
-570, 697, 500, 259, 67, 42, 1, 2, 1
-570, 711, 215, 293, 31, 70, 1, 0, 1
-570, 713, 599, 295, 108, 62, 1, 2, 1
-570, 720, 416, 247, 31, 21, 1, 2, 1
-570, 721, 172, 395, 63, 144, 1, 0, 1
-570, 722, 744, 303, 118, 71, 1, 2, 1
-571, 686, 327, 252, 41, 40, 1, 2, 1
-571, 697, 496, 259, 68, 42, 1, 2, 1
-571, 711, 207, 294, 32, 72, 1, 0, 1
-571, 713, 594, 296, 110, 64, 1, 2, 1
-571, 720, 412, 247, 30, 22, 1, 2, 1
-571, 721, 158, 397, 64, 142, 1, 0, 1
-571, 722, 740, 304, 118, 70, 1, 2, 1
-572, 686, 321, 251, 41, 42, 1, 2, 1
-572, 697, 492, 260, 68, 42, 1, 2, 1
-572, 711, 199, 296, 31, 71, 1, 0, 1
-572, 713, 591, 297, 111, 65, 1, 2, 1
-572, 720, 407, 247, 32, 23, 1, 2, 1
-572, 721, 145, 398, 64, 141, 1, 0, 1
-572, 722, 735, 304, 122, 71, 1, 2, 1
-573, 686, 315, 251, 41, 41, 1, 2, 1
-573, 697, 489, 260, 68, 43, 1, 2, 1
-573, 711, 190, 297, 32, 71, 1, 0, 1
-573, 713, 588, 297, 113, 66, 1, 2, 1
-573, 720, 403, 248, 32, 22, 1, 2, 1
-573, 721, 132, 398, 65, 141, 1, 0, 1
-573, 722, 731, 304, 122, 71, 1, 2, 1
-573, 734, 931, 296, 25, 79, 1, 0, 1
-574, 686, 310, 250, 40, 41, 1, 2, 1
-574, 697, 486, 261, 68, 42, 1, 2, 1
-574, 711, 182, 298, 33, 71, 1, 0, 1
-574, 713, 584, 298, 114, 67, 1, 2, 1
-574, 720, 398, 248, 32, 22, 1, 2, 1
-574, 721, 118, 399, 66, 140, 1, 0, 1
-574, 722, 727, 305, 123, 71, 1, 2, 1
-574, 734, 929, 295, 26, 81, 1, 0, 1
-575, 686, 304, 250, 41, 41, 1, 2, 1
-575, 697, 482, 261, 70, 44, 1, 2, 1
-575, 711, 174, 298, 33, 71, 1, 0, 1
-575, 713, 582, 300, 113, 67, 1, 2, 1
-575, 720, 395, 247, 32, 23, 1, 2, 1
-575, 721, 104, 399, 67, 140, 1, 0, 1
-575, 722, 723, 306, 124, 72, 1, 2, 1
-575, 734, 926, 296, 25, 80, 1, 0, 1
-575, 735, 646, 266, 15, 31, 1, 0, 1
-575, 736, 290, 230, 32, 20, 1, 2, 1
-576, 686, 299, 252, 39, 40, 1, 2, 1
-576, 697, 480, 262, 70, 44, 1, 2, 1
-576, 711, 165, 299, 33, 72, 1, 0, 1
-576, 713, 580, 302, 114, 68, 1, 2, 1
-576, 720, 391, 248, 33, 23, 1, 2, 1
-576, 721, 91, 401, 67, 138, 1, 0, 1
-576, 722, 719, 307, 126, 72, 1, 2, 1
-576, 734, 921, 293, 27, 85, 1, 0, 1
-576, 735, 642, 266, 16, 33, 1, 0, 1
-576, 736, 286, 229, 32, 21, 1, 2, 1
-577, 686, 294, 252, 38, 39, 1, 2, 1
-577, 697, 477, 262, 71, 45, 1, 2, 1
-577, 711, 156, 299, 35, 73, 1, 0, 1
-577, 713, 579, 303, 116, 69, 1, 2, 1
-577, 720, 388, 247, 33, 23, 1, 2, 1
-577, 721, 77, 402, 67, 137, 1, 0, 1
-577, 722, 715, 307, 127, 73, 1, 2, 1
-577, 734, 918, 292, 27, 87, 1, 0, 1
-577, 735, 639, 263, 18, 39, 1, 0, 1
-578, 686, 289, 252, 38, 38, 1, 2, 1
-578, 697, 475, 262, 71, 45, 1, 2, 1
-578, 711, 148, 299, 35, 75, 1, 0, 1
-578, 713, 577, 303, 117, 71, 1, 2, 1
-578, 720, 385, 247, 32, 23, 1, 2, 1
-578, 721, 61, 405, 66, 134, 1, 0, 1
-578, 722, 713, 307, 128, 73, 1, 2, 1
-578, 734, 914, 292, 27, 88, 1, 0, 1
-578, 735, 635, 261, 19, 42, 1, 0, 1
-579, 686, 284, 251, 38, 38, 1, 2, 1
-579, 697, 474, 262, 71, 45, 1, 2, 1
-579, 711, 139, 298, 35, 76, 1, 0, 1
-579, 713, 575, 303, 119, 73, 1, 2, 1
-579, 720, 381, 247, 34, 24, 1, 2, 1
-579, 721, 49, 409, 66, 129, 1, 0, 1
-579, 722, 709, 307, 130, 74, 1, 2, 1
-579, 734, 909, 293, 28, 89, 1, 0, 1
-579, 735, 633, 267, 17, 38, 1, 0, 1
-579, 736, 277, 230, 31, 20, 1, 2, 1
-579, 737, 948, 379, 11, 42, 1, 2, 1
-580, 686, 278, 250, 40, 39, 1, 2, 1
-580, 697, 471, 262, 72, 46, 1, 2, 1
-580, 711, 131, 299, 36, 75, 1, 0, 1
-580, 713, 573, 304, 121, 74, 1, 2, 1
-580, 720, 379, 248, 33, 23, 1, 2, 1
-580, 721, 36, 412, 64, 124, 1, 0, 1
-580, 722, 706, 308, 130, 73, 1, 2, 1
-580, 734, 905, 296, 27, 87, 1, 0, 1
-580, 735, 629, 263, 19, 42, 1, 0, 1
-580, 736, 274, 231, 30, 19, 1, 2, 1
-580, 737, 948, 381, 11, 41, 1, 2, 1
-581, 686, 273, 249, 40, 40, 1, 2, 1
-581, 697, 469, 263, 73, 46, 1, 2, 1
-581, 711, 122, 299, 37, 78, 1, 0, 1
-581, 713, 572, 305, 122, 75, 1, 2, 1
-581, 720, 376, 248, 34, 23, 1, 2, 1
-581, 721, 20, 415, 65, 121, 1, 0, 1
-581, 722, 704, 308, 131, 74, 1, 2, 1
-581, 734, 901, 299, 28, 85, 1, 0, 1
-581, 735, 627, 266, 18, 38, 1, 0, 1
-581, 737, 948, 382, 11, 41, 1, 2, 1
-582, 686, 270, 248, 39, 40, 1, 2, 1
-582, 697, 468, 263, 72, 46, 1, 2, 1
-582, 711, 113, 299, 37, 79, 1, 0, 1
-582, 713, 572, 306, 122, 75, 1, 2, 1
-582, 720, 373, 247, 34, 24, 1, 2, 1
-582, 721, 6, 416, 66, 122, 1, 0, 1
-582, 722, 702, 309, 132, 74, 1, 2, 1
-582, 734, 898, 300, 27, 85, 1, 0, 1
-582, 735, 625, 265, 18, 41, 1, 0, 1
-582, 736, 264, 229, 31, 20, 1, 2, 1
-583, 686, 265, 249, 40, 39, 1, 2, 1
-583, 697, 466, 262, 73, 47, 1, 2, 1
-583, 711, 106, 300, 37, 79, 1, 0, 1
-583, 713, 572, 307, 123, 76, 1, 2, 1
-583, 720, 370, 247, 35, 24, 1, 2, 1
-583, 721, 0, 419, 62, 118, 1, 0, 1
-583, 722, 699, 308, 134, 75, 1, 2, 1
-583, 734, 894, 294, 30, 92, 1, 0, 1
-583, 736, 260, 228, 34, 21, 1, 2, 1
-584, 686, 262, 249, 38, 37, 1, 2, 1
-584, 697, 465, 262, 74, 47, 1, 2, 1
-584, 711, 98, 300, 38, 82, 1, 0, 1
-584, 713, 570, 306, 127, 79, 1, 2, 1
-584, 720, 368, 247, 35, 24, 1, 2, 1
-584, 721, 0, 419, 54, 118, 1, 0, 1
-584, 722, 697, 308, 135, 75, 1, 2, 1
-584, 734, 892, 293, 30, 94, 1, 0, 1
-584, 736, 255, 227, 33, 21, 1, 2, 1
-585, 686, 257, 248, 39, 38, 1, 2, 1
-585, 697, 464, 262, 74, 47, 1, 2, 1
-585, 711, 90, 301, 40, 84, 1, 0, 1
-585, 713, 570, 307, 129, 80, 1, 2, 1
-585, 720, 366, 247, 35, 24, 1, 2, 1
-585, 721, 0, 422, 44, 115, 1, 0, 1
-585, 722, 694, 308, 136, 76, 1, 2, 1
-585, 734, 889, 285, 32, 101, 1, 0, 1
-585, 735, 618, 265, 17, 36, 1, 0, 1
-585, 736, 253, 227, 33, 21, 1, 2, 1
-586, 686, 253, 248, 40, 39, 1, 2, 1
-586, 697, 462, 261, 76, 49, 1, 2, 1
-586, 711, 83, 301, 40, 86, 1, 0, 1
-586, 713, 569, 308, 132, 81, 1, 2, 1
-586, 720, 364, 247, 34, 23, 1, 2, 1
-586, 721, 0, 423, 32, 114, 1, 0, 1
-586, 722, 692, 308, 138, 76, 1, 2, 1
-586, 734, 887, 284, 33, 101, 1, 0, 1
-586, 735, 616, 262, 18, 40, 1, 0, 1
-586, 736, 252, 226, 35, 23, 1, 2, 1
-587, 686, 249, 248, 40, 39, 1, 2, 1
-587, 697, 460, 261, 77, 49, 1, 2, 1
-587, 711, 76, 303, 40, 85, 1, 0, 1
-587, 713, 570, 308, 134, 83, 1, 2, 1
-587, 720, 362, 247, 35, 23, 1, 2, 1
-587, 722, 691, 307, 140, 77, 1, 2, 1
-587, 734, 886, 286, 31, 97, 1, 0, 1
-587, 735, 613, 261, 19, 42, 1, 0, 1
-587, 736, 251, 225, 36, 23, 1, 2, 1
-588, 686, 246, 248, 39, 38, 1, 2, 1
-588, 697, 459, 261, 78, 50, 1, 2, 1
-588, 711, 70, 303, 40, 87, 1, 0, 1
-588, 713, 570, 309, 137, 85, 1, 2, 1
-588, 720, 360, 247, 35, 23, 1, 2, 1
-588, 722, 691, 308, 140, 77, 1, 2, 1
-588, 734, 886, 288, 30, 93, 1, 0, 1
-588, 735, 613, 266, 16, 36, 1, 0, 1
-588, 736, 244, 225, 33, 22, 1, 2, 1
-589, 686, 242, 248, 40, 38, 1, 2, 1
-589, 697, 458, 262, 78, 50, 1, 2, 1
-589, 711, 63, 305, 40, 88, 1, 0, 1
-589, 713, 571, 311, 140, 86, 1, 2, 1
-589, 720, 358, 246, 36, 25, 1, 2, 1
-589, 722, 690, 307, 142, 79, 1, 2, 1
-589, 734, 884, 288, 30, 91, 1, 0, 1
-589, 735, 612, 266, 16, 36, 1, 0, 1
-589, 736, 240, 225, 34, 21, 1, 2, 1
-590, 686, 240, 248, 39, 38, 1, 2, 1
-590, 697, 456, 261, 80, 51, 1, 2, 1
-590, 711, 55, 304, 42, 89, 1, 0, 1
-590, 713, 572, 312, 142, 88, 1, 2, 1
-590, 720, 356, 246, 37, 25, 1, 2, 1
-590, 722, 690, 307, 143, 80, 1, 2, 1
-590, 734, 883, 289, 29, 88, 1, 0, 1
-590, 735, 611, 264, 16, 37, 1, 0, 1
-590, 736, 240, 226, 32, 21, 1, 2, 1
-590, 745, 250, 226, 42, 26, 1, 2, 1
-591, 686, 237, 249, 38, 37, 1, 2, 1
-591, 697, 456, 262, 81, 51, 1, 2, 1
-591, 711, 48, 305, 41, 91, 1, 0, 1
-591, 713, 574, 314, 144, 89, 1, 2, 1
-591, 720, 355, 246, 39, 26, 1, 2, 1
-591, 722, 689, 308, 144, 80, 1, 2, 1
-591, 734, 882, 289, 28, 87, 1, 0, 1
-591, 735, 610, 261, 18, 42, 1, 0, 1
-591, 736, 240, 225, 35, 23, 1, 2, 1
-591, 745, 249, 226, 43, 27, 1, 2, 1
-592, 686, 234, 248, 38, 37, 1, 2, 1
-592, 697, 455, 262, 83, 52, 1, 2, 1
-592, 711, 41, 307, 42, 91, 1, 0, 1
-592, 713, 576, 316, 147, 90, 1, 2, 1
-592, 720, 354, 247, 39, 25, 1, 2, 1
-592, 722, 689, 307, 145, 81, 1, 2, 1
-592, 734, 881, 288, 29, 87, 1, 0, 1
-592, 735, 608, 259, 18, 43, 1, 0, 1
-592, 736, 239, 224, 38, 24, 1, 2, 1
-593, 686, 231, 248, 39, 38, 1, 2, 1
-593, 697, 455, 262, 84, 53, 1, 2, 1
-593, 711, 34, 308, 42, 92, 1, 0, 1
-593, 713, 579, 317, 152, 93, 1, 2, 1
-593, 720, 353, 247, 40, 26, 1, 2, 1
-593, 722, 688, 309, 147, 82, 1, 2, 1
-593, 734, 881, 290, 29, 87, 1, 0, 1
-593, 735, 607, 257, 20, 46, 1, 0, 1
-593, 736, 237, 224, 39, 25, 1, 2, 1
-594, 686, 229, 247, 39, 39, 1, 2, 1
-594, 697, 457, 262, 84, 53, 1, 2, 1
-594, 711, 28, 309, 42, 93, 1, 0, 1
-594, 713, 582, 319, 154, 94, 1, 2, 1
-594, 720, 352, 247, 40, 26, 1, 2, 1
-594, 722, 688, 309, 149, 83, 1, 2, 1
-594, 734, 881, 290, 29, 88, 1, 0, 1
-594, 735, 607, 258, 19, 45, 1, 0, 1
-594, 736, 238, 224, 39, 25, 1, 2, 1
-595, 686, 228, 248, 38, 37, 1, 2, 1
-595, 697, 459, 264, 83, 52, 1, 2, 1
-595, 711, 21, 310, 43, 93, 1, 0, 1
-595, 713, 584, 321, 159, 97, 1, 2, 1
-595, 720, 351, 247, 41, 27, 1, 2, 1
-595, 722, 690, 310, 148, 84, 1, 2, 1
-595, 734, 879, 292, 30, 87, 1, 0, 1
-595, 735, 607, 258, 19, 46, 1, 0, 1
-595, 736, 239, 225, 39, 25, 1, 2, 1
-595, 748, 442, 261, 34, 32, 1, 2, 1
-596, 686, 226, 247, 37, 37, 1, 2, 1
-596, 697, 460, 263, 84, 53, 1, 2, 1
-596, 711, 15, 312, 43, 93, 1, 0, 1
-596, 713, 586, 322, 165, 100, 1, 2, 1
-596, 720, 351, 248, 41, 26, 1, 2, 1
-596, 722, 691, 310, 151, 84, 1, 2, 1
-596, 734, 878, 291, 32, 88, 1, 0, 1
-596, 735, 608, 259, 19, 45, 1, 0, 1
-596, 736, 236, 224, 41, 27, 1, 2, 1
-596, 748, 443, 261, 34, 32, 1, 2, 1
-597, 686, 224, 246, 37, 37, 1, 2, 1
-597, 697, 461, 263, 85, 54, 1, 2, 1
-597, 711, 8, 311, 44, 96, 1, 0, 1
-597, 713, 590, 324, 169, 102, 1, 2, 1
-597, 720, 351, 247, 42, 27, 1, 2, 1
-597, 722, 693, 310, 151, 85, 1, 2, 1
-597, 734, 880, 294, 31, 84, 1, 0, 1
-597, 735, 609, 258, 18, 45, 1, 0, 1
-597, 736, 235, 225, 41, 27, 1, 2, 1
-597, 748, 443, 260, 34, 32, 1, 2, 1
-598, 686, 222, 247, 37, 37, 1, 2, 1
-598, 697, 464, 265, 83, 53, 1, 2, 1
-598, 711, 1, 317, 44, 96, 1, 0, 1
-598, 713, 594, 325, 176, 106, 1, 2, 1
-598, 720, 351, 248, 42, 27, 1, 2, 1
-598, 722, 696, 310, 152, 85, 1, 2, 1
-598, 734, 881, 294, 32, 84, 1, 0, 1
-598, 735, 609, 257, 18, 46, 1, 0, 1
-598, 736, 233, 224, 42, 28, 1, 2, 1
-598, 745, 232, 229, 32, 21, 1, 2, 1
-598, 748, 442, 261, 34, 32, 1, 2, 1
-599, 686, 220, 246, 37, 38, 1, 2, 1
-599, 697, 465, 266, 85, 53, 1, 2, 1
-599, 711, 0, 319, 41, 97, 1, 0, 1
-599, 713, 597, 325, 183, 111, 1, 2, 1
-599, 720, 351, 248, 43, 27, 1, 2, 1
-599, 722, 697, 310, 153, 85, 1, 2, 1
-599, 734, 882, 293, 34, 86, 1, 0, 1
-599, 735, 609, 256, 19, 48, 1, 0, 1
-599, 745, 230, 230, 32, 20, 1, 2, 1
-599, 748, 441, 260, 36, 33, 1, 2, 1
-599, 753, 251, 238, 25, 19, 1, 2, 1
-600, 686, 219, 247, 37, 37, 1, 2, 1
-600, 697, 468, 268, 83, 52, 1, 2, 1
-600, 711, 0, 322, 37, 97, 1, 0, 1
-600, 713, 603, 326, 189, 113, 1, 2, 1
-600, 720, 351, 248, 45, 28, 1, 2, 1
-600, 722, 697, 309, 157, 88, 1, 2, 1
-600, 734, 885, 291, 35, 88, 1, 0, 1
-600, 735, 610, 256, 19, 48, 1, 0, 1
-600, 748, 443, 262, 36, 32, 1, 2, 1
-600, 753, 251, 239, 24, 18, 1, 2, 1
-601, 686, 218, 248, 37, 37, 1, 2, 1
-601, 697, 468, 266, 87, 55, 1, 2, 1
-601, 711, 0, 324, 33, 97, 1, 0, 1
-601, 713, 608, 328, 193, 115, 1, 2, 1
-601, 720, 353, 249, 43, 27, 1, 2, 1
-601, 722, 698, 309, 158, 89, 1, 2, 1
-601, 734, 888, 289, 35, 90, 1, 0, 1
-601, 735, 612, 256, 19, 48, 1, 0, 1
-601, 745, 231, 231, 30, 19, 1, 2, 1
-601, 748, 442, 261, 37, 33, 1, 2, 1
-601, 753, 249, 238, 24, 19, 1, 2, 1
-602, 686, 217, 247, 37, 38, 1, 2, 1
-602, 697, 469, 265, 91, 58, 1, 2, 1
-602, 711, 0, 328, 29, 94, 1, 0, 1
-602, 713, 613, 330, 202, 120, 1, 2, 1
-602, 720, 353, 249, 44, 27, 1, 2, 1
-602, 722, 701, 311, 157, 87, 1, 2, 1
-602, 734, 891, 290, 34, 88, 1, 0, 1
-602, 735, 613, 256, 19, 49, 1, 0, 1
-602, 745, 230, 230, 33, 21, 1, 2, 1
-602, 748, 441, 262, 39, 33, 1, 2, 1
-602, 753, 247, 238, 24, 19, 1, 2, 1
-603, 686, 216, 247, 38, 38, 1, 2, 1
-603, 697, 471, 264, 92, 59, 1, 2, 1
-603, 711, 0, 334, 25, 92, 1, 0, 1
-603, 713, 617, 331, 214, 127, 1, 2, 1
-603, 720, 353, 249, 45, 28, 1, 2, 1
-603, 722, 704, 311, 158, 88, 1, 2, 1
-603, 734, 893, 288, 35, 90, 1, 0, 1
-603, 735, 613, 256, 19, 49, 1, 0, 1
-603, 736, 233, 229, 34, 23, 1, 2, 1
-603, 745, 229, 231, 32, 20, 1, 2, 1
-603, 748, 441, 262, 40, 33, 1, 2, 1
-603, 753, 246, 238, 25, 20, 1, 2, 1
-604, 686, 215, 248, 37, 37, 1, 2, 1
-604, 697, 472, 265, 93, 60, 1, 2, 1
-604, 711, 0, 336, 19, 92, 1, 0, 1
-604, 713, 623, 332, 224, 133, 1, 2, 1
-604, 720, 354, 250, 46, 28, 1, 2, 1
-604, 722, 705, 312, 161, 89, 1, 2, 1
-604, 734, 894, 283, 36, 97, 1, 0, 1
-604, 735, 615, 255, 19, 49, 1, 0, 1
-604, 736, 232, 229, 34, 23, 1, 2, 1
-604, 748, 441, 262, 41, 34, 1, 2, 1
-604, 753, 245, 240, 25, 19, 1, 2, 1
-605, 686, 214, 248, 37, 37, 1, 2, 1
-605, 697, 475, 265, 92, 60, 1, 2, 1
-605, 713, 630, 334, 233, 138, 1, 2, 1
-605, 720, 355, 250, 46, 29, 1, 2, 1
-605, 722, 707, 311, 162, 90, 1, 2, 1
-605, 734, 897, 282, 35, 99, 1, 0, 1
-605, 735, 617, 255, 18, 49, 1, 0, 1
-605, 748, 441, 262, 41, 34, 1, 2, 1
-605, 753, 245, 241, 24, 18, 1, 2, 1
-606, 686, 213, 248, 36, 37, 1, 2, 1
-606, 697, 476, 265, 93, 60, 1, 2, 1
-606, 713, 639, 336, 241, 143, 1, 2, 1
-606, 720, 355, 251, 46, 28, 1, 2, 1
-606, 722, 708, 311, 165, 91, 1, 2, 1
-606, 734, 898, 281, 36, 100, 1, 0, 1
-606, 735, 618, 254, 18, 49, 1, 0, 1
-606, 748, 441, 262, 42, 34, 1, 2, 1
-606, 753, 245, 241, 23, 18, 1, 2, 1
-607, 686, 212, 247, 37, 37, 1, 2, 1
-607, 697, 478, 265, 94, 61, 1, 2, 1
-607, 713, 645, 339, 251, 149, 1, 2, 1
-607, 720, 356, 250, 47, 28, 1, 2, 1
-607, 722, 710, 311, 169, 93, 1, 2, 1
-607, 735, 619, 254, 18, 49, 1, 0, 1
-607, 748, 442, 262, 42, 33, 1, 2, 1
-607, 753, 244, 240, 24, 18, 1, 2, 1
-608, 686, 211, 245, 38, 38, 1, 2, 1
-608, 697, 481, 266, 95, 61, 1, 2, 1
-608, 713, 655, 344, 259, 152, 1, 2, 1
-608, 720, 357, 250, 47, 29, 1, 2, 1
-608, 722, 710, 313, 174, 95, 1, 2, 1
-608, 735, 621, 254, 18, 50, 1, 0, 1
-608, 748, 442, 262, 43, 33, 1, 2, 1
-608, 753, 246, 240, 23, 18, 1, 2, 1
-609, 686, 211, 244, 36, 38, 1, 2, 1
-609, 697, 484, 267, 93, 60, 1, 2, 1
-609, 713, 663, 348, 274, 161, 1, 2, 1
-609, 720, 358, 250, 48, 29, 1, 2, 1
-609, 722, 713, 313, 175, 96, 1, 2, 1
-609, 735, 622, 255, 18, 50, 1, 0, 1
-609, 748, 442, 262, 44, 33, 1, 2, 1
-609, 753, 247, 239, 22, 18, 1, 2, 1
-610, 686, 210, 244, 36, 36, 1, 2, 1
-610, 697, 486, 267, 96, 62, 1, 2, 1
-610, 713, 668, 352, 285, 168, 1, 2, 1
-610, 720, 359, 249, 49, 30, 1, 2, 1
-610, 722, 714, 314, 181, 99, 1, 2, 1
-610, 735, 624, 256, 18, 48, 1, 0, 1
-610, 736, 233, 230, 32, 21, 1, 2, 1
-610, 748, 442, 262, 46, 34, 1, 2, 1
-610, 753, 246, 237, 23, 18, 1, 2, 1
-611, 686, 209, 242, 36, 37, 1, 2, 1
-611, 697, 487, 267, 98, 63, 1, 2, 1
-611, 713, 671, 358, 288, 173, 1, 2, 1
-611, 720, 361, 250, 48, 29, 1, 2, 1
-611, 722, 712, 316, 194, 105, 1, 2, 1
-611, 734, 903, 284, 37, 105, 1, 0, 1
-611, 735, 625, 257, 18, 49, 1, 0, 1
-611, 736, 233, 230, 31, 21, 1, 2, 1
-611, 748, 442, 262, 47, 34, 1, 2, 1
-611, 753, 246, 237, 23, 18, 1, 2, 1
-612, 686, 209, 242, 36, 37, 1, 2, 1
-612, 697, 490, 266, 100, 65, 1, 2, 1
-612, 713, 677, 362, 282, 175, 1, 2, 1
-612, 720, 363, 250, 48, 29, 1, 2, 1
-612, 722, 734, 317, 150, 76, 1, 2, 1
-612, 734, 906, 289, 34, 102, 1, 0, 1
-612, 735, 627, 258, 18, 48, 1, 0, 1
-612, 748, 443, 261, 47, 35, 1, 2, 1
-612, 753, 246, 235, 23, 19, 1, 2, 1
-613, 686, 208, 241, 36, 36, 1, 2, 1
-613, 697, 492, 266, 101, 66, 1, 2, 1
-613, 713, 689, 369, 270, 170, 1, 2, 1
-613, 720, 363, 250, 50, 28, 1, 2, 1
-613, 722, 740, 319, 147, 73, 1, 2, 1
-613, 734, 910, 293, 32, 97, 1, 0, 1
-613, 735, 628, 258, 17, 49, 1, 0, 1
-613, 748, 442, 261, 49, 35, 1, 2, 1
-613, 753, 245, 234, 23, 19, 1, 2, 1
-614, 686, 207, 240, 37, 37, 1, 2, 1
-614, 697, 494, 266, 102, 67, 1, 2, 1
-614, 713, 700, 376, 259, 163, 1, 2, 1
-614, 720, 364, 250, 51, 29, 1, 2, 1
-614, 722, 744, 321, 157, 76, 1, 2, 1
-614, 734, 915, 296, 32, 97, 1, 0, 1
-614, 735, 629, 259, 17, 48, 1, 0, 1
-614, 748, 443, 261, 49, 35, 1, 2, 1
-614, 753, 245, 234, 23, 19, 1, 2, 1
-615, 686, 206, 238, 38, 39, 1, 2, 1
-615, 697, 496, 267, 104, 68, 1, 2, 1
-615, 713, 711, 381, 248, 158, 1, 2, 1
-615, 720, 365, 250, 52, 29, 1, 2, 1
-615, 722, 735, 318, 177, 85, 1, 0, 1
-615, 734, 919, 299, 31, 97, 1, 0, 1
-615, 735, 630, 260, 18, 47, 1, 0, 1
-615, 748, 443, 262, 49, 34, 1, 2, 1
-615, 753, 244, 234, 24, 20, 1, 2, 1
-615, 770, 129, 250, 27, 70, 1, 0, 1
-616, 686, 206, 239, 37, 38, 1, 2, 1
-616, 697, 498, 269, 105, 68, 1, 2, 1
-616, 713, 725, 390, 234, 149, 1, 2, 1
-616, 720, 366, 250, 52, 30, 1, 2, 1
-616, 722, 737, 318, 179, 86, 1, 0, 1
-616, 734, 922, 300, 32, 100, 1, 0, 1
-616, 735, 632, 261, 18, 48, 1, 0, 1
-616, 748, 442, 263, 51, 34, 1, 2, 1
-616, 753, 244, 234, 24, 20, 1, 2, 1
-616, 770, 129, 256, 24, 64, 1, 0, 1
-617, 686, 206, 238, 37, 39, 1, 2, 1
-617, 697, 501, 271, 105, 68, 1, 2, 1
-617, 713, 740, 397, 219, 142, 1, 2, 1
-617, 720, 367, 251, 53, 30, 1, 2, 1
-617, 722, 742, 326, 183, 87, 1, 2, 1
-617, 734, 924, 300, 33, 102, 1, 0, 1
-617, 735, 634, 263, 18, 48, 1, 0, 1
-617, 748, 442, 264, 51, 34, 1, 2, 1
-617, 753, 243, 234, 25, 20, 1, 2, 1
-617, 770, 127, 258, 24, 62, 1, 0, 1
-618, 686, 205, 239, 37, 37, 1, 2, 1
-618, 697, 503, 272, 105, 69, 1, 2, 1
-618, 713, 756, 406, 203, 133, 1, 2, 1
-618, 720, 367, 251, 54, 31, 1, 2, 1
-618, 722, 744, 330, 190, 89, 1, 2, 1
-618, 734, 926, 301, 33, 104, 1, 0, 1
-618, 735, 635, 264, 18, 49, 1, 0, 1
-618, 748, 442, 265, 51, 34, 1, 2, 1
-618, 753, 243, 234, 24, 20, 1, 2, 1
-618, 770, 124, 253, 26, 68, 1, 0, 1
-619, 686, 204, 238, 37, 38, 1, 2, 1
-619, 697, 504, 273, 108, 71, 1, 2, 1
-619, 713, 772, 415, 187, 123, 1, 2, 1
-619, 720, 368, 251, 55, 31, 1, 2, 1
-619, 722, 741, 332, 204, 96, 1, 2, 1
-619, 734, 928, 302, 31, 102, 1, 0, 1
-619, 735, 636, 265, 18, 49, 1, 0, 1
-619, 748, 441, 265, 53, 35, 1, 2, 1
-619, 753, 242, 234, 24, 20, 1, 2, 1
-619, 770, 122, 250, 27, 72, 1, 0, 1
-620, 686, 203, 238, 37, 38, 1, 2, 1
-620, 697, 507, 275, 109, 71, 1, 2, 1
-620, 713, 790, 424, 169, 113, 1, 2, 1
-620, 720, 370, 252, 53, 30, 1, 2, 1
-620, 722, 740, 334, 212, 99, 1, 2, 1
-620, 734, 929, 301, 30, 107, 1, 0, 1
-620, 735, 637, 265, 19, 50, 1, 0, 1
-620, 748, 441, 265, 55, 36, 1, 2, 1
-620, 753, 242, 234, 24, 20, 1, 2, 1
-620, 770, 120, 249, 28, 74, 1, 0, 1
-621, 686, 203, 238, 37, 38, 1, 2, 1
-621, 697, 508, 276, 111, 72, 1, 2, 1
-621, 713, 808, 433, 151, 104, 1, 2, 1
-621, 720, 370, 252, 55, 31, 1, 2, 1
-621, 722, 738, 334, 221, 107, 1, 2, 1
-621, 734, 932, 304, 27, 105, 1, 0, 1
-621, 735, 640, 266, 18, 50, 1, 0, 1
-621, 748, 441, 266, 55, 36, 1, 2, 1
-621, 753, 243, 234, 23, 20, 1, 2, 1
-621, 770, 120, 251, 27, 73, 1, 0, 1
-622, 686, 202, 239, 37, 37, 1, 2, 1
-622, 697, 510, 277, 113, 74, 1, 2, 1
-622, 713, 828, 442, 131, 95, 1, 2, 1
-622, 720, 370, 252, 57, 32, 1, 2, 1
-622, 722, 736, 335, 223, 113, 1, 2, 1
-622, 734, 935, 305, 24, 101, 1, 0, 1
-622, 735, 641, 267, 18, 50, 1, 0, 1
-622, 748, 441, 266, 56, 36, 1, 2, 1
-622, 753, 243, 235, 23, 19, 1, 2, 1
-622, 770, 119, 254, 26, 70, 1, 0, 1
-623, 686, 202, 240, 36, 36, 1, 2, 1
-623, 697, 513, 277, 115, 75, 1, 2, 1
-623, 713, 841, 449, 118, 89, 1, 2, 1
-623, 720, 372, 253, 56, 31, 1, 2, 1
-623, 722, 735, 335, 224, 117, 1, 2, 1
-623, 734, 938, 303, 21, 100, 1, 0, 1
-623, 735, 643, 266, 18, 51, 1, 0, 1
-623, 748, 441, 267, 56, 36, 1, 2, 1
-623, 753, 242, 236, 23, 20, 1, 2, 1
-623, 770, 118, 253, 27, 73, 1, 0, 1
-624, 686, 202, 240, 36, 36, 1, 2, 1
-624, 697, 517, 278, 115, 75, 1, 2, 1
-624, 720, 374, 253, 56, 31, 1, 2, 1
-624, 722, 736, 336, 223, 121, 1, 2, 1
-624, 734, 940, 304, 19, 100, 1, 0, 1
-624, 735, 645, 265, 18, 51, 1, 0, 1
-624, 748, 442, 267, 56, 36, 1, 2, 1
-624, 753, 242, 236, 23, 19, 1, 2, 1
-624, 770, 118, 259, 25, 67, 1, 0, 1
-625, 686, 202, 242, 36, 35, 1, 2, 1
-625, 697, 519, 279, 119, 77, 1, 2, 1
-625, 720, 375, 255, 58, 32, 1, 2, 1
-625, 722, 739, 337, 220, 122, 1, 2, 1
-625, 735, 648, 267, 19, 52, 1, 0, 1
-625, 748, 443, 268, 56, 36, 1, 2, 1
-625, 753, 243, 239, 22, 18, 1, 2, 1
-625, 770, 117, 262, 25, 65, 1, 0, 1
-626, 686, 202, 241, 37, 36, 1, 2, 1
-626, 697, 523, 278, 120, 79, 1, 2, 1
-626, 720, 377, 255, 57, 31, 1, 2, 1
-626, 722, 742, 337, 217, 123, 1, 2, 1
-626, 735, 651, 266, 19, 53, 1, 0, 1
-626, 748, 445, 267, 56, 36, 1, 2, 1
-626, 753, 244, 237, 22, 19, 1, 2, 1
-626, 770, 117, 265, 24, 62, 1, 0, 1
-627, 686, 202, 242, 36, 36, 1, 2, 1
-627, 697, 526, 278, 122, 79, 1, 2, 1
-627, 720, 378, 255, 58, 33, 1, 2, 1
-627, 722, 746, 335, 213, 126, 1, 2, 1
-627, 735, 653, 265, 20, 54, 1, 0, 1
-627, 748, 445, 268, 57, 35, 1, 2, 1
-627, 753, 244, 239, 22, 19, 1, 2, 1
-627, 770, 118, 269, 23, 61, 1, 0, 1
-628, 686, 203, 243, 36, 35, 1, 2, 1
-628, 697, 530, 278, 123, 81, 1, 2, 1
-628, 720, 380, 256, 59, 33, 1, 2, 1
-628, 722, 749, 337, 210, 127, 1, 2, 1
-628, 735, 656, 265, 20, 55, 1, 0, 1
-628, 748, 446, 268, 58, 37, 1, 2, 1
-628, 753, 246, 239, 22, 19, 1, 2, 1
-628, 770, 118, 272, 22, 59, 1, 0, 1
-629, 686, 203, 244, 36, 35, 1, 2, 1
-629, 697, 534, 278, 124, 82, 1, 2, 1
-629, 720, 382, 256, 60, 33, 1, 2, 1
-629, 722, 754, 336, 205, 129, 1, 2, 1
-629, 735, 659, 264, 20, 55, 1, 0, 1
-629, 748, 447, 268, 60, 37, 1, 2, 1
-629, 753, 247, 241, 22, 19, 1, 2, 1
-629, 770, 118, 275, 23, 58, 1, 0, 1
-630, 686, 205, 246, 36, 34, 1, 2, 1
-630, 697, 538, 278, 127, 83, 1, 2, 1
-630, 720, 386, 256, 59, 33, 1, 2, 1
-630, 722, 759, 337, 200, 130, 1, 2, 1
-630, 735, 664, 265, 19, 53, 1, 0, 1
-630, 748, 449, 268, 60, 38, 1, 2, 1
-630, 753, 248, 241, 23, 19, 1, 2, 1
-630, 770, 118, 276, 24, 58, 1, 0, 1
-631, 686, 207, 246, 35, 34, 1, 2, 1
-631, 697, 543, 278, 129, 85, 1, 2, 1
-631, 720, 388, 256, 60, 33, 1, 2, 1
-631, 722, 764, 337, 195, 133, 1, 2, 1
-631, 735, 668, 265, 19, 54, 1, 0, 1
-631, 748, 451, 268, 60, 37, 1, 2, 1
-631, 753, 249, 241, 23, 19, 1, 2, 1
-631, 770, 118, 275, 24, 59, 1, 0, 1
-632, 686, 207, 245, 37, 35, 1, 2, 1
-632, 697, 548, 280, 130, 85, 1, 2, 1
-632, 720, 391, 256, 60, 33, 1, 2, 1
-632, 722, 769, 339, 190, 133, 1, 2, 1
-632, 735, 672, 266, 20, 55, 1, 0, 1
-632, 748, 453, 268, 60, 38, 1, 2, 1
-632, 753, 252, 242, 22, 19, 1, 2, 1
-632, 770, 118, 274, 25, 61, 1, 0, 1
-633, 686, 208, 245, 38, 36, 1, 2, 1
-633, 697, 552, 280, 132, 87, 1, 2, 1
-633, 720, 393, 256, 60, 33, 1, 2, 1
-633, 722, 774, 341, 185, 134, 1, 2, 1
-633, 735, 675, 266, 20, 56, 1, 0, 1
-633, 748, 454, 267, 62, 39, 1, 2, 1
-633, 753, 253, 242, 23, 18, 1, 2, 1
-633, 770, 118, 271, 27, 66, 1, 0, 1
-634, 686, 209, 245, 37, 35, 1, 2, 1
-634, 697, 557, 281, 134, 88, 1, 2, 1
-634, 720, 395, 257, 61, 34, 1, 2, 1
-634, 722, 779, 343, 180, 138, 1, 2, 1
-634, 735, 680, 267, 20, 56, 1, 0, 1
-634, 748, 455, 267, 64, 40, 1, 2, 1
-634, 753, 253, 242, 24, 19, 1, 2, 1
-634, 770, 118, 271, 27, 67, 1, 0, 1
-635, 686, 210, 244, 38, 36, 1, 2, 1
-635, 697, 561, 281, 138, 91, 1, 2, 1
-635, 720, 398, 257, 61, 34, 1, 2, 1
-635, 722, 787, 345, 172, 138, 1, 2, 1
-635, 735, 683, 267, 21, 59, 1, 0, 1
-635, 748, 458, 268, 63, 39, 1, 2, 1
-635, 753, 255, 241, 24, 20, 1, 2, 1
-635, 770, 118, 267, 28, 71, 1, 0, 1
-636, 686, 212, 245, 37, 35, 1, 2, 1
-636, 697, 565, 282, 143, 94, 1, 2, 1
-636, 720, 400, 259, 63, 34, 1, 2, 1
-636, 722, 794, 348, 165, 138, 1, 2, 1
-636, 735, 687, 270, 21, 58, 1, 0, 1
-636, 748, 460, 270, 62, 38, 1, 2, 1
-636, 753, 257, 243, 24, 19, 1, 2, 1
-636, 770, 119, 270, 28, 68, 1, 0, 1
-637, 686, 213, 245, 37, 36, 1, 2, 1
-637, 697, 571, 283, 146, 97, 1, 2, 1
-637, 720, 403, 260, 62, 34, 1, 2, 1
-637, 722, 808, 352, 151, 130, 1, 2, 1
-637, 735, 692, 270, 20, 59, 1, 0, 1
-637, 748, 463, 271, 61, 38, 1, 2, 1
-637, 753, 259, 243, 24, 20, 1, 2, 1
-637, 770, 120, 271, 28, 68, 1, 0, 1
-638, 686, 215, 246, 37, 36, 1, 2, 1
-638, 697, 577, 286, 146, 97, 1, 2, 1
-638, 720, 406, 261, 62, 34, 1, 2, 1
-638, 722, 819, 355, 140, 124, 1, 2, 1
-638, 735, 697, 270, 21, 58, 1, 0, 1
-638, 748, 466, 273, 60, 37, 1, 2, 1
-638, 753, 260, 244, 25, 20, 1, 2, 1
-638, 770, 122, 270, 27, 69, 1, 0, 1
-639, 686, 217, 246, 36, 35, 1, 2, 1
-639, 697, 583, 288, 149, 99, 1, 2, 1
-639, 720, 410, 262, 61, 34, 1, 2, 1
-639, 722, 829, 359, 130, 119, 1, 2, 1
-639, 735, 702, 272, 20, 57, 1, 0, 1
-639, 748, 468, 274, 63, 38, 1, 2, 1
-639, 753, 261, 244, 25, 20, 1, 2, 1
-639, 770, 123, 271, 28, 69, 1, 0, 1
-640, 686, 218, 248, 36, 34, 1, 2, 1
-640, 697, 589, 291, 150, 100, 1, 2, 1
-640, 720, 412, 263, 61, 34, 1, 2, 1
-640, 722, 837, 361, 122, 120, 1, 2, 1
-640, 735, 705, 272, 21, 58, 1, 0, 1
-640, 748, 470, 275, 64, 39, 1, 2, 1
-640, 753, 263, 245, 26, 21, 1, 2, 1
-640, 770, 124, 270, 28, 73, 1, 0, 1
-641, 686, 220, 249, 35, 34, 1, 2, 1
-641, 697, 594, 293, 153, 102, 1, 2, 1
-641, 720, 415, 264, 61, 34, 1, 2, 1
-641, 722, 847, 366, 112, 116, 1, 2, 1
-641, 748, 473, 275, 64, 40, 1, 2, 1
-641, 753, 265, 245, 25, 21, 1, 2, 1
-641, 770, 124, 271, 29, 73, 1, 0, 1
-642, 686, 222, 249, 35, 34, 1, 2, 1
-642, 697, 600, 295, 156, 104, 1, 2, 1
-642, 720, 418, 265, 63, 35, 1, 2, 1
-642, 722, 856, 370, 103, 115, 1, 2, 1
-642, 735, 718, 276, 20, 57, 1, 0, 1
-642, 748, 476, 276, 64, 40, 1, 2, 1
-642, 753, 267, 245, 25, 21, 1, 2, 1
-642, 770, 125, 271, 29, 74, 1, 0, 1
-643, 686, 224, 249, 36, 34, 1, 2, 1
-643, 697, 608, 298, 157, 104, 1, 2, 1
-643, 720, 422, 266, 62, 35, 1, 2, 1
-643, 722, 865, 376, 94, 113, 1, 2, 1
-643, 735, 724, 279, 20, 57, 1, 0, 1
-643, 748, 478, 277, 66, 41, 1, 2, 1
-643, 753, 270, 246, 25, 20, 1, 2, 1
-643, 770, 127, 274, 28, 71, 1, 0, 1
-644, 686, 227, 249, 35, 34, 1, 2, 1
-644, 697, 616, 299, 159, 106, 1, 2, 1
-644, 720, 424, 267, 64, 35, 1, 2, 1
-644, 722, 874, 379, 85, 113, 1, 2, 1
-644, 735, 729, 279, 21, 59, 1, 0, 1
-644, 748, 481, 278, 67, 41, 1, 2, 1
-644, 753, 272, 245, 25, 20, 1, 2, 1
-644, 770, 131, 282, 24, 63, 1, 0, 1
-645, 686, 229, 250, 36, 34, 1, 2, 1
-645, 697, 621, 301, 165, 110, 1, 2, 1
-645, 720, 427, 267, 64, 36, 1, 2, 1
-645, 722, 884, 383, 75, 115, 1, 2, 1
-645, 735, 737, 281, 19, 55, 1, 0, 1
-645, 748, 485, 279, 66, 41, 1, 2, 1
-645, 753, 273, 243, 28, 23, 1, 2, 1
-645, 770, 133, 283, 24, 63, 1, 0, 1
-646, 686, 232, 250, 35, 34, 1, 2, 1
-646, 697, 628, 301, 169, 113, 1, 2, 1
-646, 720, 431, 268, 63, 36, 1, 2, 1
-646, 722, 889, 386, 70, 114, 1, 2, 1
-646, 735, 741, 282, 20, 55, 1, 0, 1
-646, 748, 488, 279, 67, 42, 1, 2, 1
-646, 753, 276, 243, 28, 23, 1, 2, 1
-646, 770, 135, 284, 23, 62, 1, 0, 1
-647, 686, 234, 249, 35, 34, 1, 2, 1
-647, 697, 634, 302, 174, 116, 1, 2, 1
-647, 720, 434, 268, 64, 37, 1, 2, 1
-647, 748, 491, 279, 67, 42, 1, 2, 1
-647, 753, 279, 244, 26, 22, 1, 2, 1
-647, 770, 137, 283, 24, 64, 1, 0, 1
-648, 686, 237, 249, 35, 34, 1, 2, 1
-648, 697, 642, 304, 178, 119, 1, 2, 1
-648, 720, 438, 269, 64, 37, 1, 2, 1
-648, 748, 496, 280, 66, 41, 1, 2, 1
-648, 753, 282, 245, 26, 21, 1, 2, 1
-648, 770, 138, 281, 26, 67, 1, 0, 1
-649, 686, 241, 247, 34, 34, 1, 2, 1
-649, 697, 649, 306, 182, 122, 1, 2, 1
-649, 720, 442, 269, 64, 36, 1, 2, 1
-649, 748, 500, 280, 66, 41, 1, 2, 1
-649, 753, 284, 243, 27, 22, 1, 2, 1
-649, 770, 139, 276, 26, 70, 1, 0, 1
-650, 686, 242, 247, 35, 34, 1, 2, 1
-650, 697, 658, 306, 185, 124, 1, 2, 1
-650, 720, 445, 269, 63, 36, 1, 2, 1
-650, 748, 503, 280, 67, 41, 1, 2, 1
-650, 753, 287, 244, 27, 22, 1, 2, 1
-650, 770, 141, 279, 25, 67, 1, 0, 1
-651, 686, 245, 248, 34, 34, 1, 2, 1
-651, 697, 669, 308, 187, 125, 1, 2, 1
-651, 720, 448, 269, 64, 37, 1, 2, 1
-651, 748, 506, 280, 69, 43, 1, 2, 1
-651, 753, 291, 245, 26, 21, 1, 2, 1
-651, 770, 144, 279, 25, 69, 1, 0, 1
-652, 686, 249, 246, 33, 33, 1, 2, 1
-652, 697, 678, 307, 189, 126, 1, 2, 1
-652, 720, 453, 266, 64, 38, 1, 2, 1
-652, 748, 511, 279, 68, 42, 1, 2, 1
-652, 753, 295, 241, 26, 22, 1, 2, 1
-652, 770, 147, 273, 25, 71, 1, 0, 1
-653, 686, 252, 245, 34, 33, 1, 2, 1
-653, 697, 687, 307, 195, 129, 1, 2, 1
-653, 720, 457, 265, 64, 37, 1, 2, 1
-653, 748, 514, 277, 69, 43, 1, 2, 1
-653, 753, 299, 242, 25, 21, 1, 2, 1
-653, 770, 151, 272, 23, 66, 1, 0, 1
-654, 686, 255, 246, 34, 33, 1, 2, 1
-654, 697, 697, 306, 200, 132, 1, 2, 1
-654, 720, 461, 264, 63, 37, 1, 2, 1
-654, 748, 519, 275, 69, 43, 1, 2, 1
-654, 753, 301, 241, 25, 21, 1, 2, 1
-654, 770, 152, 268, 26, 76, 1, 0, 1
-655, 686, 259, 245, 33, 32, 1, 2, 1
-655, 697, 708, 306, 206, 135, 1, 2, 1
-655, 720, 467, 264, 62, 37, 1, 2, 1
-655, 748, 524, 276, 69, 42, 1, 2, 1
-655, 753, 306, 242, 25, 20, 1, 2, 1
-655, 770, 157, 264, 25, 73, 1, 0, 1
-656, 686, 265, 246, 32, 33, 1, 2, 1
-656, 697, 719, 306, 211, 138, 1, 2, 1
-656, 720, 472, 264, 63, 38, 1, 2, 1
-656, 748, 529, 276, 70, 43, 1, 2, 1
-656, 753, 309, 242, 26, 22, 1, 2, 1
-656, 770, 160, 267, 27, 78, 1, 0, 1
-657, 686, 268, 247, 34, 33, 1, 2, 1
-657, 697, 730, 309, 217, 142, 1, 2, 1
-657, 720, 477, 266, 63, 38, 1, 2, 1
-657, 748, 534, 278, 71, 43, 1, 2, 1
-657, 753, 313, 244, 26, 21, 1, 2, 1
-657, 770, 163, 263, 29, 86, 1, 0, 1
-658, 686, 272, 249, 33, 32, 1, 2, 1
-658, 697, 735, 311, 224, 146, 1, 2, 1
-658, 720, 482, 267, 64, 39, 1, 2, 1
-658, 748, 539, 280, 72, 43, 1, 2, 1
-658, 753, 319, 246, 23, 19, 1, 2, 1
-658, 770, 165, 262, 29, 88, 1, 0, 1
-659, 686, 277, 254, 32, 32, 1, 2, 1
-659, 697, 740, 316, 219, 151, 1, 2, 1
-659, 720, 489, 273, 61, 38, 1, 2, 1
-659, 748, 544, 284, 72, 44, 1, 2, 1
-659, 753, 324, 251, 23, 19, 1, 2, 1
-660, 686, 281, 256, 31, 31, 1, 2, 1
-660, 697, 745, 323, 214, 153, 1, 2, 1
-660, 720, 493, 276, 62, 38, 1, 2, 1
-660, 748, 548, 287, 73, 44, 1, 2, 1
-660, 753, 327, 253, 23, 19, 1, 2, 1
-661, 686, 284, 256, 31, 31, 1, 2, 1
-661, 697, 750, 327, 209, 157, 1, 2, 1
-661, 720, 497, 276, 62, 39, 1, 2, 1
-661, 748, 552, 289, 74, 45, 1, 2, 1
-661, 753, 331, 254, 22, 17, 1, 2, 1
-662, 686, 286, 256, 32, 31, 1, 2, 1
-662, 697, 754, 330, 205, 164, 1, 2, 1
-662, 720, 500, 278, 63, 39, 1, 2, 1
-662, 748, 555, 291, 75, 45, 1, 2, 1
-662, 753, 333, 254, 23, 18, 1, 2, 1
-662, 770, 186, 292, 23, 66, 1, 0, 1
-663, 686, 289, 255, 32, 32, 1, 2, 1
-663, 697, 759, 334, 200, 169, 1, 2, 1
-663, 720, 505, 279, 64, 40, 1, 2, 1
-663, 748, 560, 292, 76, 45, 1, 2, 1
-663, 753, 337, 254, 23, 18, 1, 2, 1
-663, 770, 191, 297, 20, 59, 1, 0, 1
-664, 686, 293, 254, 32, 32, 1, 2, 1
-664, 697, 765, 336, 194, 173, 1, 2, 1
-664, 720, 509, 279, 65, 41, 1, 2, 1
-664, 748, 565, 294, 76, 46, 1, 2, 1
-664, 753, 340, 253, 23, 18, 1, 2, 1
-664, 770, 195, 298, 21, 58, 1, 0, 1
-664, 789, 183, 264, 14, 37, 1, 0, 1
-665, 686, 296, 253, 32, 32, 1, 2, 1
-665, 720, 514, 280, 64, 41, 1, 2, 1
-665, 748, 570, 295, 75, 45, 1, 2, 1
-665, 753, 343, 252, 24, 18, 1, 2, 1
-665, 770, 199, 298, 22, 58, 1, 0, 1
-665, 789, 185, 263, 14, 38, 1, 0, 1
-666, 686, 299, 251, 33, 33, 1, 2, 1
-666, 720, 519, 281, 64, 40, 1, 2, 1
-666, 748, 574, 296, 77, 46, 1, 2, 1
-666, 753, 347, 252, 23, 18, 1, 2, 1
-666, 770, 202, 297, 23, 57, 1, 0, 1
-666, 789, 188, 262, 14, 37, 1, 0, 1
-667, 686, 303, 250, 32, 33, 1, 2, 1
-667, 720, 524, 281, 65, 42, 1, 2, 1
-667, 748, 578, 297, 78, 46, 1, 2, 1
-667, 753, 349, 250, 25, 20, 1, 2, 1
-667, 770, 204, 296, 25, 60, 1, 0, 1
-667, 789, 190, 260, 14, 39, 1, 0, 1
-668, 686, 307, 250, 31, 33, 1, 2, 1
-668, 720, 528, 281, 65, 42, 1, 2, 1
-668, 748, 584, 297, 79, 48, 1, 2, 1
-668, 753, 354, 250, 24, 19, 1, 2, 1
-668, 770, 206, 293, 28, 65, 1, 0, 1
-668, 789, 194, 260, 14, 38, 1, 0, 1
-669, 686, 311, 249, 31, 32, 1, 2, 1
-669, 720, 532, 281, 65, 42, 1, 2, 1
-669, 748, 588, 296, 82, 50, 1, 2, 1
-669, 753, 355, 248, 26, 19, 1, 2, 1
-669, 770, 211, 296, 28, 61, 1, 0, 1
-669, 789, 197, 259, 13, 36, 1, 0, 1
-670, 686, 315, 248, 32, 32, 1, 2, 1
-670, 720, 537, 281, 67, 44, 1, 2, 1
-670, 748, 593, 296, 82, 50, 1, 2, 1
-670, 753, 357, 245, 28, 21, 1, 2, 1
-670, 770, 214, 291, 33, 66, 1, 0, 1
-670, 789, 199, 256, 14, 39, 1, 0, 1
-670, 800, 666, 290, 30, 22, 1, 2, 1
-671, 686, 318, 246, 33, 33, 1, 2, 1
-671, 720, 542, 281, 66, 43, 1, 2, 1
-671, 748, 599, 297, 81, 48, 1, 2, 1
-671, 753, 364, 245, 25, 20, 1, 2, 1
-671, 770, 219, 291, 34, 65, 1, 0, 1
-671, 789, 201, 255, 15, 39, 1, 0, 1
-671, 800, 671, 288, 31, 23, 1, 2, 1
-672, 686, 322, 246, 31, 32, 1, 2, 1
-672, 720, 548, 280, 65, 43, 1, 2, 1
-672, 748, 604, 296, 83, 50, 1, 2, 1
-672, 753, 367, 244, 26, 21, 1, 2, 1
-672, 770, 225, 291, 35, 66, 1, 0, 1
-672, 789, 204, 253, 15, 39, 1, 0, 1
-672, 800, 678, 288, 31, 23, 1, 2, 1
-673, 686, 326, 246, 31, 31, 1, 2, 1
-673, 720, 554, 280, 64, 42, 1, 2, 1
-673, 748, 608, 295, 85, 51, 1, 2, 1
-673, 753, 371, 244, 26, 21, 1, 2, 1
-673, 770, 229, 291, 35, 67, 1, 0, 1
-673, 789, 208, 253, 14, 39, 1, 0, 1
-673, 800, 684, 287, 31, 23, 1, 2, 1
-673, 803, 269, 245, 12, 23, 1, 0, 1
-674, 686, 330, 243, 31, 31, 1, 2, 1
-674, 720, 558, 278, 65, 43, 1, 2, 1
-674, 748, 614, 294, 85, 51, 1, 2, 1
-674, 753, 376, 243, 25, 19, 1, 2, 1
-674, 789, 210, 251, 15, 38, 1, 0, 1
-674, 800, 689, 286, 31, 23, 1, 2, 1
-674, 803, 273, 242, 12, 23, 1, 0, 1
-675, 686, 333, 240, 31, 31, 1, 2, 1
-675, 720, 563, 278, 66, 43, 1, 2, 1
-675, 748, 618, 293, 87, 53, 1, 2, 1
-675, 753, 379, 240, 26, 21, 1, 2, 1
-675, 789, 213, 246, 15, 41, 1, 0, 1
-675, 800, 694, 287, 31, 23, 1, 2, 1
-675, 803, 276, 238, 12, 24, 1, 0, 1
-676, 686, 336, 240, 31, 31, 1, 2, 1
-676, 720, 567, 277, 68, 45, 1, 2, 1
-676, 748, 623, 292, 87, 53, 1, 2, 1
-676, 753, 381, 240, 26, 20, 1, 2, 1
-676, 789, 216, 248, 15, 40, 1, 0, 1
-676, 800, 698, 285, 33, 24, 1, 2, 1
-676, 803, 279, 239, 12, 24, 1, 0, 1
-677, 686, 341, 240, 30, 31, 1, 2, 1
-677, 720, 571, 278, 69, 45, 1, 2, 1
-677, 748, 629, 294, 88, 54, 1, 2, 1
-677, 753, 386, 241, 24, 19, 1, 2, 1
-677, 770, 262, 284, 36, 68, 1, 0, 1
-677, 789, 219, 246, 16, 41, 1, 0, 1
-677, 800, 706, 287, 31, 24, 1, 2, 1
-677, 803, 283, 239, 12, 23, 1, 0, 1
-678, 686, 345, 240, 31, 31, 1, 2, 1
-678, 720, 576, 279, 69, 46, 1, 2, 1
-678, 748, 634, 294, 90, 55, 1, 2, 1
-678, 753, 390, 242, 24, 19, 1, 2, 1
-678, 770, 267, 284, 37, 68, 1, 0, 1
-678, 789, 221, 246, 17, 43, 1, 0, 1
-678, 800, 712, 288, 32, 23, 1, 2, 1
-678, 803, 287, 240, 12, 23, 1, 0, 1
-679, 686, 348, 243, 31, 31, 1, 2, 1
-679, 720, 581, 280, 70, 47, 1, 2, 1
-679, 748, 639, 295, 90, 55, 1, 2, 1
-679, 753, 393, 243, 25, 20, 1, 2, 1
-679, 770, 277, 286, 37, 69, 1, 0, 1
-679, 789, 224, 251, 16, 41, 1, 0, 1
-679, 800, 718, 288, 31, 23, 1, 2, 1
-679, 803, 291, 243, 12, 23, 1, 0, 1
-680, 686, 352, 244, 31, 31, 1, 2, 1
-680, 720, 586, 283, 70, 47, 1, 2, 1
-680, 748, 645, 298, 90, 56, 1, 2, 1
-680, 753, 397, 244, 26, 20, 1, 2, 1
-680, 770, 284, 288, 35, 68, 1, 0, 1
-680, 789, 227, 252, 16, 40, 1, 0, 1
-680, 800, 723, 292, 33, 23, 1, 2, 1
-680, 803, 295, 243, 12, 23, 1, 0, 1
-681, 686, 355, 252, 30, 31, 1, 2, 1
-681, 720, 592, 288, 70, 48, 1, 2, 1
-681, 748, 650, 304, 91, 55, 1, 2, 1
-681, 753, 401, 244, 26, 20, 1, 2, 1
-681, 770, 289, 295, 36, 71, 1, 0, 1
-681, 789, 229, 259, 16, 42, 1, 0, 1
-681, 800, 728, 297, 31, 23, 1, 2, 1
-681, 803, 299, 243, 11, 23, 1, 0, 1
-682, 686, 357, 260, 30, 30, 1, 2, 1
-682, 720, 599, 289, 67, 45, 1, 2, 1
-682, 748, 658, 303, 89, 54, 1, 2, 1
-682, 770, 298, 305, 36, 69, 1, 0, 1
-682, 789, 231, 271, 16, 42, 1, 0, 1
-682, 800, 732, 293, 34, 24, 1, 2, 1
-683, 686, 360, 255, 30, 30, 1, 2, 1
-683, 720, 601, 287, 69, 46, 1, 2, 1
-683, 748, 661, 302, 91, 56, 1, 2, 1
-683, 753, 405, 248, 28, 21, 1, 2, 1
-683, 770, 305, 301, 34, 68, 1, 0, 1
-683, 789, 232, 264, 17, 42, 1, 0, 1
-683, 800, 734, 292, 37, 26, 1, 2, 1
-684, 686, 363, 249, 31, 31, 1, 2, 1
-684, 720, 604, 282, 72, 49, 1, 2, 1
-684, 748, 665, 299, 92, 56, 1, 2, 1
-684, 753, 407, 245, 27, 22, 1, 2, 1
-684, 770, 313, 299, 30, 62, 1, 0, 1
-684, 789, 234, 260, 16, 41, 1, 0, 1
-684, 800, 742, 290, 35, 25, 1, 2, 1
-684, 803, 304, 245, 13, 28, 1, 0, 1
diff --git a/Yolov5-Deepsort/niuzi.mp4 b/Yolov5-Deepsort/niuzi.mp4
deleted file mode 100644
index f7ccbc70b3f6fb159dd97fabc2ee7068f29c20bc..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/niuzi.mp4
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6c29e6dcecff5ad08dcb96ca2a3f24860d2ab420bff194598ed51a674fc41447
-size 5859018
diff --git a/Yolov5-Deepsort/other_method.py b/Yolov5-Deepsort/other_method.py
deleted file mode 100644
index 63357d519a09e9972d8d6775f240fbed16dc737b..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/other_method.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import cv2
-
-# Initialize video capture
-cap = cv2.VideoCapture('mot.mp4')
-
-# Initialize tracker
-tracker = cv2.TrackerCSRT_create()
-
-# Read the first frame
-ret, frame = cap.read()
-if not ret:
- print("Failed to read video")
- exit()
-
-# Detect initial bounding box
-bbox = cv2.selectROI(frame, False)
-
-# Initialize tracker with first frame and bounding box
-tracker.init(frame, bbox)
-
-while True:
- ret, frame = cap.read()
- if not ret:
- break
-
- # Update tracker
- success, bbox = tracker.update(frame)
-
- if success:
- # Draw bounding box
- p1 = (int(bbox[0]), int(bbox[1]))
- p2 = (int(bbox[0] + bbox[2]), int(bbox[1] + bbox[3]))
- cv2.rectangle(frame, p1, p2, (255,0,0), 2, 1)
- else:
- # Tracking failure
- cv2.putText(frame, "Tracking failure detected", (100,80), cv2.FONT_HERSHEY_SIMPLEX, 0.75,(0,0,255),2)
-
- # Display result
- cv2.imshow("Tracking", frame)
-
- # Exit if ESC pressed
- if cv2.waitKey(1) & 0xFF == 27: # ESC key
- break
-
-cap.release()
-cv2.destroyAllWindows()
diff --git a/Yolov5-Deepsort/result.mp4 b/Yolov5-Deepsort/result.mp4
deleted file mode 100644
index bd0ce22bd6b02a363521a3c2301c5e3c1fddc495..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/result.mp4
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:363c4066a0672367bef8be6dfe6c882e709712911776644947d5f9813c9fa016
-size 23811638
diff --git a/Yolov5-Deepsort/su_demo.py b/Yolov5-Deepsort/su_demo.py
deleted file mode 100644
index 3c5b99ad9265b3f83aa2a0f26980177fde06d1bb..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/su_demo.py
+++ /dev/null
@@ -1,23 +0,0 @@
-import cv2
-import rich
-
-if __name__ == '__main__':
- videoCapture = cv2.VideoCapture('niuzi.mp4')
-
- # 创建一个窗口,并设置大小
- cv2.namedWindow('sudemo', cv2.WINDOW_NORMAL)
- cv2.resizeWindow('sudemo', 800, 600) # 设置窗口的宽度和高度
-
- while True:
- ret, frame = videoCapture.read()
- if not ret:
- rich.print("播放完毕")
- break
- else:
- cv2.imshow('sudemo', frame)
-
- if cv2.waitKey(25) & 0xFF == ord('q'):
- break
-
- videoCapture.release()
- cv2.destroyAllWindows()
diff --git a/Yolov5-Deepsort/tracker.py b/Yolov5-Deepsort/tracker.py
deleted file mode 100644
index 6f91daeed5afad2b6e228c5237d942446495ea67..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/tracker.py
+++ /dev/null
@@ -1,129 +0,0 @@
-from deep_sort.utils.parser import get_config
-from deep_sort.deep_sort import DeepSort
-import torch
-import rich
-import os
-import cv2
-
-palette = (2 ** 11 - 1, 2 ** 15 - 1, 2 ** 20 - 1)
-cfg = get_config()
-cfg.merge_from_file("deep_sort/configs/deep_sort.yaml")
-deepsort = DeepSort(cfg.DEEPSORT.REID_CKPT,
- max_dist=cfg.DEEPSORT.MAX_DIST, min_confidence=cfg.DEEPSORT.MIN_CONFIDENCE,
- nms_max_overlap=cfg.DEEPSORT.NMS_MAX_OVERLAP, max_iou_distance=cfg.DEEPSORT.MAX_IOU_DISTANCE,
- max_age=cfg.DEEPSORT.MAX_AGE, n_init=cfg.DEEPSORT.N_INIT, nn_budget=cfg.DEEPSORT.NN_BUDGET,
- use_cuda=True)
-
-
-def plot_bboxes(image, bboxes, line_thickness=None):
- # Plots one bounding box on image img
- tl = line_thickness or round(
- 0.002 * (image.shape[0] + image.shape[1]) / 2) + 1 # line/font thickness
- for (x1, y1, x2, y2, cls_id, pos_id) in bboxes:
- if cls_id in ['person']:
- color = (0, 0, 255)
- else:
- color = (0, 255, 0)
- c1, c2 = (x1, y1), (x2, y2)
- cv2.rectangle(image, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA)
- tf = max(tl - 1, 1) # font thickness
- t_size = cv2.getTextSize(cls_id, 0, fontScale=tl / 3, thickness=tf)[0]
- c2 = c1[0] + t_size[0], c1[1] - t_size[1] - 3
- cv2.rectangle(image, c1, c2, color, -1, cv2.LINE_AA) # filled
- cv2.putText(image, '{} ID-{}'.format(cls_id, pos_id), (c1[0], c1[1] - 2), 0, tl / 3,
- [225, 255, 255], thickness=tf, lineType=cv2.LINE_AA)
-
- return image
-
-
-def update_tracker(target_detector, image, framecounter):
-
- new_faces = []
- _, bboxes = target_detector.detect(image)
-
-
-
- bbox_xywh = []
- confs = []
- clss = []
-
- for x1, y1, x2, y2, cls_id, conf in bboxes:
-
- obj = [
- int((x1+x2)/2), int((y1+y2)/2),
- x2-x1, y2-y1
- ]
- bbox_xywh.append(obj)
- confs.append(conf)
- clss.append(cls_id)
-
- xywhs = torch.Tensor(bbox_xywh)
- confss = torch.Tensor(confs)
-
- outputs = deepsort.update(xywhs, confss, clss, image)
- #rich.print("该帧的输出",outputs)
- transfer_result_to_txt(current_frame=framecounter, current_output=outputs)
-
- bboxes2draw = []
- face_bboxes = []
- current_ids = []
- for value in list(outputs):
- x1, y1, x2, y2, cls_, track_id = value
- bboxes2draw.append(
- (x1, y1, x2, y2, cls_, track_id)
- )
- current_ids.append(track_id)
- if cls_ == 'face':
- if not track_id in target_detector.faceTracker:
- target_detector.faceTracker[track_id] = 0
- face = image[y1:y2, x1:x2]
- new_faces.append((face, track_id))
- face_bboxes.append(
- (x1, y1, x2, y2)
- )
-
- ids2delete = []
- for history_id in target_detector.faceTracker:
- if not history_id in current_ids:
- target_detector.faceTracker[history_id] -= 1
- if target_detector.faceTracker[history_id] < -5:
- ids2delete.append(history_id)
-
- for ids in ids2delete:
- target_detector.faceTracker.pop(ids)
- print('-[INFO] Delete track id:', ids)
-
- image = plot_bboxes(image, bboxes2draw)
-
- return image, new_faces, face_bboxes
-
-
-
-def transfer_result_to_txt(current_output, current_frame: int):
- if current_frame == 1:
- with open("myresult.txt",'w') as file:
- for det in current_output:
- x_min, y_min, x_max, y_max, obj_class, obj_id = det
- width = x_max - x_min
- height = y_max - y_min
- conf = 1 # 置信度,通常在ground truth中为1
- class_id = 1 if obj_class == 'person' else 2 # 假设1代表person, 2代表car
- visibility = 1 # 假设目标完全可见
-
- # 写入格式:, , , , , , , ,
- file.write(f"{current_frame}, {obj_id}, {x_min}, {y_min}, {width}, {height}, {conf}, {class_id}, {visibility}\n")
- else:
- with open("myresult.txt",'a') as file:
- for det in current_output:
- x_min, y_min, x_max, y_max, obj_class, obj_id = det
- width = x_max - x_min
- height = y_max - y_min
- conf = 1 # 置信度,通常在ground truth中为1
- class_id = 0 if obj_class == 'person' else 2 # 假设1代表person, 2代表car
- visibility = 1 # 假设目标完全可见
-
- # 写入格式:, , , , , , , ,
- file.write(f"{current_frame}, {obj_id}, {x_min}, {y_min}, {width}, {height}, {conf}, {class_id}, {visibility}\n")
-
-
-
diff --git a/Yolov5-Deepsort/utils/BaseDetector.py b/Yolov5-Deepsort/utils/BaseDetector.py
deleted file mode 100644
index 1fd77f962e6860a8c708439d9be5059beca12f2f..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/BaseDetector.py
+++ /dev/null
@@ -1,50 +0,0 @@
-from tracker import update_tracker
-import cv2
-
-
-class baseDet(object):
-
- def __init__(self):
-
- self.img_size = 640
- self.threshold = 0.3
- self.stride = 1
-
- def build_config(self):
-
- self.faceTracker = {}
- self.faceClasses = {}
- self.faceLocation1 = {}
- self.faceLocation2 = {}
- self.frameCounter = 0
- self.currentCarID = 0
- self.recorded = []
-
- self.font = cv2.FONT_HERSHEY_SIMPLEX
-
- def feedCap(self, im):
-
- retDict = {
- 'frame': None,
- 'faces': None,
- 'list_of_ids': None,
- 'face_bboxes': []
- }
- self.frameCounter += 1
-
- im, faces, face_bboxes = update_tracker(self, im, self.frameCounter)
-
- retDict['frame'] = im
- retDict['faces'] = faces
- retDict['face_bboxes'] = face_bboxes
-
- return retDict
-
- def init_model(self):
- raise EOFError("Undefined model type.")
-
- def preprocess(self):
- raise EOFError("Undefined model type.")
-
- def detect(self):
- raise EOFError("Undefined model type.")
diff --git a/Yolov5-Deepsort/utils/__init__.py b/Yolov5-Deepsort/utils/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Yolov5-Deepsort/utils/__pycache__/BaseDetector.cpython-37.pyc b/Yolov5-Deepsort/utils/__pycache__/BaseDetector.cpython-37.pyc
deleted file mode 100644
index bc358656fde98374d185612891a20a0249968609..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/utils/__pycache__/BaseDetector.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/utils/__pycache__/__init__.cpython-37.pyc b/Yolov5-Deepsort/utils/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index f40e7ed3cdb46ff47429e39cfa079be51ce5e0d8..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/utils/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/utils/__pycache__/autoanchor.cpython-37.pyc b/Yolov5-Deepsort/utils/__pycache__/autoanchor.cpython-37.pyc
deleted file mode 100644
index 60478ce1314b5579568a289f05f438bc87cb2121..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/utils/__pycache__/autoanchor.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/utils/__pycache__/datasets.cpython-37.pyc b/Yolov5-Deepsort/utils/__pycache__/datasets.cpython-37.pyc
deleted file mode 100644
index 901561371bc12228280871bd309671f106fa2bf7..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/utils/__pycache__/datasets.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/utils/__pycache__/general.cpython-37.pyc b/Yolov5-Deepsort/utils/__pycache__/general.cpython-37.pyc
deleted file mode 100644
index d49c5fd2b444b26d4875393c3e7914a913eb9ff3..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/utils/__pycache__/general.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/utils/__pycache__/google_utils.cpython-37.pyc b/Yolov5-Deepsort/utils/__pycache__/google_utils.cpython-37.pyc
deleted file mode 100644
index b7f35a5a486ffcb4826c2b646beae70f6548d0c5..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/utils/__pycache__/google_utils.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/utils/__pycache__/metrics.cpython-37.pyc b/Yolov5-Deepsort/utils/__pycache__/metrics.cpython-37.pyc
deleted file mode 100644
index 2b060f4f65f78749a70028a8dd091954dfac9505..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/utils/__pycache__/metrics.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/utils/__pycache__/plots.cpython-37.pyc b/Yolov5-Deepsort/utils/__pycache__/plots.cpython-37.pyc
deleted file mode 100644
index a9e9a9c1eae1c0807501be0cd6e7ab4cc34bdcb4..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/utils/__pycache__/plots.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/utils/__pycache__/torch_utils.cpython-37.pyc b/Yolov5-Deepsort/utils/__pycache__/torch_utils.cpython-37.pyc
deleted file mode 100644
index f0ee7ba31b9e88317685dde0919154f4d9ec92ac..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/utils/__pycache__/torch_utils.cpython-37.pyc and /dev/null differ
diff --git a/Yolov5-Deepsort/utils/activations.py b/Yolov5-Deepsort/utils/activations.py
deleted file mode 100644
index 92a3b5eaa54bcb46464dff900db247b0436e5046..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/activations.py
+++ /dev/null
@@ -1,98 +0,0 @@
-# Activation functions
-
-import torch
-import torch.nn as nn
-import torch.nn.functional as F
-
-
-# SiLU https://arxiv.org/pdf/1606.08415.pdf ----------------------------------------------------------------------------
-class SiLU(nn.Module): # export-friendly version of nn.SiLU()
- @staticmethod
- def forward(x):
- return x * torch.sigmoid(x)
-
-
-class Hardswish(nn.Module): # export-friendly version of nn.Hardswish()
- @staticmethod
- def forward(x):
- # return x * F.hardsigmoid(x) # for torchscript and CoreML
- return x * F.hardtanh(x + 3, 0., 6.) / 6. # for torchscript, CoreML and ONNX
-
-
-# Mish https://github.com/digantamisra98/Mish --------------------------------------------------------------------------
-class Mish(nn.Module):
- @staticmethod
- def forward(x):
- return x * F.softplus(x).tanh()
-
-
-class MemoryEfficientMish(nn.Module):
- class F(torch.autograd.Function):
- @staticmethod
- def forward(ctx, x):
- ctx.save_for_backward(x)
- return x.mul(torch.tanh(F.softplus(x))) # x * tanh(ln(1 + exp(x)))
-
- @staticmethod
- def backward(ctx, grad_output):
- x = ctx.saved_tensors[0]
- sx = torch.sigmoid(x)
- fx = F.softplus(x).tanh()
- return grad_output * (fx + x * sx * (1 - fx * fx))
-
- def forward(self, x):
- return self.F.apply(x)
-
-
-# FReLU https://arxiv.org/abs/2007.11824 -------------------------------------------------------------------------------
-class FReLU(nn.Module):
- def __init__(self, c1, k=3): # ch_in, kernel
- super().__init__()
- self.conv = nn.Conv2d(c1, c1, k, 1, 1, groups=c1, bias=False)
- self.bn = nn.BatchNorm2d(c1)
-
- def forward(self, x):
- return torch.max(x, self.bn(self.conv(x)))
-
-
-# ACON https://arxiv.org/pdf/2009.04759.pdf ----------------------------------------------------------------------------
-class AconC(nn.Module):
- r""" ACON activation (activate or not).
- AconC: (p1*x-p2*x) * sigmoid(beta*(p1*x-p2*x)) + p2*x, beta is a learnable parameter
- according to "Activate or Not: Learning Customized Activation" .
- """
-
- def __init__(self, c1):
- super().__init__()
- self.p1 = nn.Parameter(torch.randn(1, c1, 1, 1))
- self.p2 = nn.Parameter(torch.randn(1, c1, 1, 1))
- self.beta = nn.Parameter(torch.ones(1, c1, 1, 1))
-
- def forward(self, x):
- dpx = (self.p1 - self.p2) * x
- return dpx * torch.sigmoid(self.beta * dpx) + self.p2 * x
-
-
-class MetaAconC(nn.Module):
- r""" ACON activation (activate or not).
- MetaAconC: (p1*x-p2*x) * sigmoid(beta*(p1*x-p2*x)) + p2*x, beta is generated by a small network
- according to "Activate or Not: Learning Customized Activation" .
- """
-
- def __init__(self, c1, k=1, s=1, r=16): # ch_in, kernel, stride, r
- super().__init__()
- c2 = max(r, c1 // r)
- self.p1 = nn.Parameter(torch.randn(1, c1, 1, 1))
- self.p2 = nn.Parameter(torch.randn(1, c1, 1, 1))
- self.fc1 = nn.Conv2d(c1, c2, k, s, bias=True)
- self.fc2 = nn.Conv2d(c2, c1, k, s, bias=True)
- # self.bn1 = nn.BatchNorm2d(c2)
- # self.bn2 = nn.BatchNorm2d(c1)
-
- def forward(self, x):
- y = x.mean(dim=2, keepdims=True).mean(dim=3, keepdims=True)
- # batch-size 1 bug/instabilities https://github.com/ultralytics/yolov5/issues/2891
- # beta = torch.sigmoid(self.bn2(self.fc2(self.bn1(self.fc1(y))))) # bug/unstable
- beta = torch.sigmoid(self.fc2(self.fc1(y))) # bug patch BN layers removed
- dpx = (self.p1 - self.p2) * x
- return dpx * torch.sigmoid(beta * dpx) + self.p2 * x
diff --git a/Yolov5-Deepsort/utils/autoanchor.py b/Yolov5-Deepsort/utils/autoanchor.py
deleted file mode 100644
index 87dc394c832e628a0b1c7b39aeb1e7c6584c63b3..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/autoanchor.py
+++ /dev/null
@@ -1,161 +0,0 @@
-# Auto-anchor utils
-
-import numpy as np
-import torch
-import yaml
-from tqdm import tqdm
-
-from utils.general import colorstr
-
-
-def check_anchor_order(m):
- # Check anchor order against stride order for YOLOv5 Detect() module m, and correct if necessary
- a = m.anchor_grid.prod(-1).view(-1) # anchor area
- da = a[-1] - a[0] # delta a
- ds = m.stride[-1] - m.stride[0] # delta s
- if da.sign() != ds.sign(): # same order
- print('Reversing anchor order')
- m.anchors[:] = m.anchors.flip(0)
- m.anchor_grid[:] = m.anchor_grid.flip(0)
-
-
-def check_anchors(dataset, model, thr=4.0, imgsz=640):
- # Check anchor fit to data, recompute if necessary
- prefix = colorstr('autoanchor: ')
- print(f'\n{prefix}Analyzing anchors... ', end='')
- m = model.module.model[-1] if hasattr(model, 'module') else model.model[-1] # Detect()
- shapes = imgsz * dataset.shapes / dataset.shapes.max(1, keepdims=True)
- scale = np.random.uniform(0.9, 1.1, size=(shapes.shape[0], 1)) # augment scale
- wh = torch.tensor(np.concatenate([l[:, 3:5] * s for s, l in zip(shapes * scale, dataset.labels)])).float() # wh
-
- def metric(k): # compute metric
- r = wh[:, None] / k[None]
- x = torch.min(r, 1. / r).min(2)[0] # ratio metric
- best = x.max(1)[0] # best_x
- aat = (x > 1. / thr).float().sum(1).mean() # anchors above threshold
- bpr = (best > 1. / thr).float().mean() # best possible recall
- return bpr, aat
-
- anchors = m.anchor_grid.clone().cpu().view(-1, 2) # current anchors
- bpr, aat = metric(anchors)
- print(f'anchors/target = {aat:.2f}, Best Possible Recall (BPR) = {bpr:.4f}', end='')
- if bpr < 0.98: # threshold to recompute
- print('. Attempting to improve anchors, please wait...')
- na = m.anchor_grid.numel() // 2 # number of anchors
- try:
- anchors = kmean_anchors(dataset, n=na, img_size=imgsz, thr=thr, gen=1000, verbose=False)
- except Exception as e:
- print(f'{prefix}ERROR: {e}')
- new_bpr = metric(anchors)[0]
- if new_bpr > bpr: # replace anchors
- anchors = torch.tensor(anchors, device=m.anchors.device).type_as(m.anchors)
- m.anchor_grid[:] = anchors.clone().view_as(m.anchor_grid) # for inference
- m.anchors[:] = anchors.clone().view_as(m.anchors) / m.stride.to(m.anchors.device).view(-1, 1, 1) # loss
- check_anchor_order(m)
- print(f'{prefix}New anchors saved to model. Update model *.yaml to use these anchors in the future.')
- else:
- print(f'{prefix}Original anchors better than new anchors. Proceeding with original anchors.')
- print('') # newline
-
-
-def kmean_anchors(path='./data/coco128.yaml', n=9, img_size=640, thr=4.0, gen=1000, verbose=True):
- """ Creates kmeans-evolved anchors from training dataset
-
- Arguments:
- path: path to dataset *.yaml, or a loaded dataset
- n: number of anchors
- img_size: image size used for training
- thr: anchor-label wh ratio threshold hyperparameter hyp['anchor_t'] used for training, default=4.0
- gen: generations to evolve anchors using genetic algorithm
- verbose: print all results
-
- Return:
- k: kmeans evolved anchors
-
- Usage:
- from utils.autoanchor import *; _ = kmean_anchors()
- """
- from scipy.cluster.vq import kmeans
-
- thr = 1. / thr
- prefix = colorstr('autoanchor: ')
-
- def metric(k, wh): # compute metrics
- r = wh[:, None] / k[None]
- x = torch.min(r, 1. / r).min(2)[0] # ratio metric
- # x = wh_iou(wh, torch.tensor(k)) # iou metric
- return x, x.max(1)[0] # x, best_x
-
- def anchor_fitness(k): # mutation fitness
- _, best = metric(torch.tensor(k, dtype=torch.float32), wh)
- return (best * (best > thr).float()).mean() # fitness
-
- def print_results(k):
- k = k[np.argsort(k.prod(1))] # sort small to large
- x, best = metric(k, wh0)
- bpr, aat = (best > thr).float().mean(), (x > thr).float().mean() * n # best possible recall, anch > thr
- print(f'{prefix}thr={thr:.2f}: {bpr:.4f} best possible recall, {aat:.2f} anchors past thr')
- print(f'{prefix}n={n}, img_size={img_size}, metric_all={x.mean():.3f}/{best.mean():.3f}-mean/best, '
- f'past_thr={x[x > thr].mean():.3f}-mean: ', end='')
- for i, x in enumerate(k):
- print('%i,%i' % (round(x[0]), round(x[1])), end=', ' if i < len(k) - 1 else '\n') # use in *.cfg
- return k
-
- if isinstance(path, str): # *.yaml file
- with open(path) as f:
- data_dict = yaml.safe_load(f) # model dict
- from utils.datasets import LoadImagesAndLabels
- dataset = LoadImagesAndLabels(data_dict['train'], augment=True, rect=True)
- else:
- dataset = path # dataset
-
- # Get label wh
- shapes = img_size * dataset.shapes / dataset.shapes.max(1, keepdims=True)
- wh0 = np.concatenate([l[:, 3:5] * s for s, l in zip(shapes, dataset.labels)]) # wh
-
- # Filter
- i = (wh0 < 3.0).any(1).sum()
- if i:
- print(f'{prefix}WARNING: Extremely small objects found. {i} of {len(wh0)} labels are < 3 pixels in size.')
- wh = wh0[(wh0 >= 2.0).any(1)] # filter > 2 pixels
- # wh = wh * (np.random.rand(wh.shape[0], 1) * 0.9 + 0.1) # multiply by random scale 0-1
-
- # Kmeans calculation
- print(f'{prefix}Running kmeans for {n} anchors on {len(wh)} points...')
- s = wh.std(0) # sigmas for whitening
- k, dist = kmeans(wh / s, n, iter=30) # points, mean distance
- assert len(k) == n, print(f'{prefix}ERROR: scipy.cluster.vq.kmeans requested {n} points but returned only {len(k)}')
- k *= s
- wh = torch.tensor(wh, dtype=torch.float32) # filtered
- wh0 = torch.tensor(wh0, dtype=torch.float32) # unfiltered
- k = print_results(k)
-
- # Plot
- # k, d = [None] * 20, [None] * 20
- # for i in tqdm(range(1, 21)):
- # k[i-1], d[i-1] = kmeans(wh / s, i) # points, mean distance
- # fig, ax = plt.subplots(1, 2, figsize=(14, 7), tight_layout=True)
- # ax = ax.ravel()
- # ax[0].plot(np.arange(1, 21), np.array(d) ** 2, marker='.')
- # fig, ax = plt.subplots(1, 2, figsize=(14, 7)) # plot wh
- # ax[0].hist(wh[wh[:, 0]<100, 0],400)
- # ax[1].hist(wh[wh[:, 1]<100, 1],400)
- # fig.savefig('wh.png', dpi=200)
-
- # Evolve
- npr = np.random
- f, sh, mp, s = anchor_fitness(k), k.shape, 0.9, 0.1 # fitness, generations, mutation prob, sigma
- pbar = tqdm(range(gen), desc=f'{prefix}Evolving anchors with Genetic Algorithm:') # progress bar
- for _ in pbar:
- v = np.ones(sh)
- while (v == 1).all(): # mutate until a change occurs (prevent duplicates)
- v = ((npr.random(sh) < mp) * npr.random() * npr.randn(*sh) * s + 1).clip(0.3, 3.0)
- kg = (k.copy() * v).clip(min=2.0)
- fg = anchor_fitness(kg)
- if fg > f:
- f, k = fg, kg.copy()
- pbar.desc = f'{prefix}Evolving anchors with Genetic Algorithm: fitness = {f:.4f}'
- if verbose:
- print_results(k)
-
- return print_results(k)
diff --git a/Yolov5-Deepsort/utils/aws/__init__.py b/Yolov5-Deepsort/utils/aws/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Yolov5-Deepsort/utils/aws/mime.sh b/Yolov5-Deepsort/utils/aws/mime.sh
deleted file mode 100644
index c319a83cfbdf09bea634c3bd9fca737c0b1dd505..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/aws/mime.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-# AWS EC2 instance startup 'MIME' script https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/
-# This script will run on every instance restart, not only on first start
-# --- DO NOT COPY ABOVE COMMENTS WHEN PASTING INTO USERDATA ---
-
-Content-Type: multipart/mixed; boundary="//"
-MIME-Version: 1.0
-
---//
-Content-Type: text/cloud-config; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: attachment; filename="cloud-config.txt"
-
-#cloud-config
-cloud_final_modules:
-- [scripts-user, always]
-
---//
-Content-Type: text/x-shellscript; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: attachment; filename="userdata.txt"
-
-#!/bin/bash
-# --- paste contents of userdata.sh here ---
---//
diff --git a/Yolov5-Deepsort/utils/aws/resume.py b/Yolov5-Deepsort/utils/aws/resume.py
deleted file mode 100644
index 4b0d4246b594acddbecf065956fc8729bb96ec36..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/aws/resume.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# Resume all interrupted trainings in yolov5/ dir including DDP trainings
-# Usage: $ python utils/aws/resume.py
-
-import os
-import sys
-from pathlib import Path
-
-import torch
-import yaml
-
-sys.path.append('./') # to run '$ python *.py' files in subdirectories
-
-port = 0 # --master_port
-path = Path('').resolve()
-for last in path.rglob('*/**/last.pt'):
- ckpt = torch.load(last)
- if ckpt['optimizer'] is None:
- continue
-
- # Load opt.yaml
- with open(last.parent.parent / 'opt.yaml') as f:
- opt = yaml.safe_load(f)
-
- # Get device count
- d = opt['device'].split(',') # devices
- nd = len(d) # number of devices
- ddp = nd > 1 or (nd == 0 and torch.cuda.device_count() > 1) # distributed data parallel
-
- if ddp: # multi-GPU
- port += 1
- cmd = f'python -m torch.distributed.launch --nproc_per_node {nd} --master_port {port} train.py --resume {last}'
- else: # single-GPU
- cmd = f'python train.py --resume {last}'
-
- cmd += ' > /dev/null 2>&1 &' # redirect output to dev/null and run in daemon thread
- print(cmd)
- os.system(cmd)
diff --git a/Yolov5-Deepsort/utils/aws/userdata.sh b/Yolov5-Deepsort/utils/aws/userdata.sh
deleted file mode 100644
index 5846fedb16f971c194c80ff533bc8c237de6815c..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/aws/userdata.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-# AWS EC2 instance startup script https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
-# This script will run only once on first instance start (for a re-start script see mime.sh)
-# /home/ubuntu (ubuntu) or /home/ec2-user (amazon-linux) is working dir
-# Use >300 GB SSD
-
-cd home/ubuntu
-if [ ! -d yolov5 ]; then
- echo "Running first-time script." # install dependencies, download COCO, pull Docker
- git clone https://github.com/ultralytics/yolov5 -b master && sudo chmod -R 777 yolov5
- cd yolov5
- bash data/scripts/get_coco.sh && echo "Data done." &
- sudo docker pull ultralytics/yolov5:latest && echo "Docker done." &
- python -m pip install --upgrade pip && pip install -r requirements.txt && python detect.py && echo "Requirements done." &
- wait && echo "All tasks done." # finish background tasks
-else
- echo "Running re-start script." # resume interrupted runs
- i=0
- list=$(sudo docker ps -qa) # container list i.e. $'one\ntwo\nthree\nfour'
- while IFS= read -r id; do
- ((i++))
- echo "restarting container $i: $id"
- sudo docker start $id
- # sudo docker exec -it $id python train.py --resume # single-GPU
- sudo docker exec -d $id python utils/aws/resume.py # multi-scenario
- done <<<"$list"
-fi
diff --git a/Yolov5-Deepsort/utils/datasets.py b/Yolov5-Deepsort/utils/datasets.py
deleted file mode 100644
index 36416b14e1387a3e3b6b30acf6254bb727d96ced..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/datasets.py
+++ /dev/null
@@ -1,1067 +0,0 @@
-# Dataset utils and dataloaders
-
-import glob
-import logging
-import math
-import os
-import random
-import shutil
-import time
-from itertools import repeat
-from multiprocessing.pool import ThreadPool
-from pathlib import Path
-from threading import Thread
-
-import cv2
-import numpy as np
-import torch
-import torch.nn.functional as F
-from PIL import Image, ExifTags
-from torch.utils.data import Dataset
-from tqdm import tqdm
-
-from utils.general import check_requirements, xyxy2xywh, xywh2xyxy, xywhn2xyxy, xyn2xy, segment2box, segments2boxes, \
- resample_segments, clean_str
-from utils.torch_utils import torch_distributed_zero_first
-
-# Parameters
-help_url = 'https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data'
-img_formats = ['bmp', 'jpg', 'jpeg', 'png', 'tif', 'tiff', 'dng', 'webp', 'mpo'] # acceptable image suffixes
-vid_formats = ['mov', 'avi', 'mp4', 'mpg', 'mpeg', 'm4v', 'wmv', 'mkv'] # acceptable video suffixes
-logger = logging.getLogger(__name__)
-
-# Get orientation exif tag
-for orientation in ExifTags.TAGS.keys():
- if ExifTags.TAGS[orientation] == 'Orientation':
- break
-
-
-def get_hash(files):
- # Returns a single hash value of a list of files
- return sum(os.path.getsize(f) for f in files if os.path.isfile(f))
-
-
-def exif_size(img):
- # Returns exif-corrected PIL size
- s = img.size # (width, height)
- try:
- rotation = dict(img._getexif().items())[orientation]
- if rotation == 6: # rotation 270
- s = (s[1], s[0])
- elif rotation == 8: # rotation 90
- s = (s[1], s[0])
- except:
- pass
-
- return s
-
-
-def create_dataloader(path, imgsz, batch_size, stride, opt, hyp=None, augment=False, cache=False, pad=0.0, rect=False,
- rank=-1, world_size=1, workers=8, image_weights=False, quad=False, prefix=''):
- # Make sure only the first process in DDP process the dataset first, and the following others can use the cache
- with torch_distributed_zero_first(rank):
- dataset = LoadImagesAndLabels(path, imgsz, batch_size,
- augment=augment, # augment images
- hyp=hyp, # augmentation hyperparameters
- rect=rect, # rectangular training
- cache_images=cache,
- single_cls=opt.single_cls,
- stride=int(stride),
- pad=pad,
- image_weights=image_weights,
- prefix=prefix)
-
- batch_size = min(batch_size, len(dataset))
- nw = min([os.cpu_count() // world_size, batch_size if batch_size > 1 else 0, workers]) # number of workers
- sampler = torch.utils.data.distributed.DistributedSampler(dataset) if rank != -1 else None
- loader = torch.utils.data.DataLoader if image_weights else InfiniteDataLoader
- # Use torch.utils.data.DataLoader() if dataset.properties will update during training else InfiniteDataLoader()
- dataloader = loader(dataset,
- batch_size=batch_size,
- num_workers=nw,
- sampler=sampler,
- pin_memory=True,
- collate_fn=LoadImagesAndLabels.collate_fn4 if quad else LoadImagesAndLabels.collate_fn)
- return dataloader, dataset
-
-
-class InfiniteDataLoader(torch.utils.data.dataloader.DataLoader):
- """ Dataloader that reuses workers
-
- Uses same syntax as vanilla DataLoader
- """
-
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
- object.__setattr__(self, 'batch_sampler', _RepeatSampler(self.batch_sampler))
- self.iterator = super().__iter__()
-
- def __len__(self):
- return len(self.batch_sampler.sampler)
-
- def __iter__(self):
- for i in range(len(self)):
- yield next(self.iterator)
-
-
-class _RepeatSampler(object):
- """ Sampler that repeats forever
-
- Args:
- sampler (Sampler)
- """
-
- def __init__(self, sampler):
- self.sampler = sampler
-
- def __iter__(self):
- while True:
- yield from iter(self.sampler)
-
-
-class LoadImages: # for inference
- def __init__(self, path, img_size=640, stride=32):
- p = str(Path(path).absolute()) # os-agnostic absolute path
- if '*' in p:
- files = sorted(glob.glob(p, recursive=True)) # glob
- elif os.path.isdir(p):
- files = sorted(glob.glob(os.path.join(p, '*.*'))) # dir
- elif os.path.isfile(p):
- files = [p] # files
- else:
- raise Exception(f'ERROR: {p} does not exist')
-
- images = [x for x in files if x.split('.')[-1].lower() in img_formats]
- videos = [x for x in files if x.split('.')[-1].lower() in vid_formats]
- ni, nv = len(images), len(videos)
-
- self.img_size = img_size
- self.stride = stride
- self.files = images + videos
- self.nf = ni + nv # number of files
- self.video_flag = [False] * ni + [True] * nv
- self.mode = 'image'
- if any(videos):
- self.new_video(videos[0]) # new video
- else:
- self.cap = None
- assert self.nf > 0, f'No images or videos found in {p}. ' \
- f'Supported formats are:\nimages: {img_formats}\nvideos: {vid_formats}'
-
- def __iter__(self):
- self.count = 0
- return self
-
- def __next__(self):
- if self.count == self.nf:
- raise StopIteration
- path = self.files[self.count]
-
- if self.video_flag[self.count]:
- # Read video
- self.mode = 'video'
- ret_val, img0 = self.cap.read()
- if not ret_val:
- self.count += 1
- self.cap.release()
- if self.count == self.nf: # last video
- raise StopIteration
- else:
- path = self.files[self.count]
- self.new_video(path)
- ret_val, img0 = self.cap.read()
-
- self.frame += 1
- print(f'video {self.count + 1}/{self.nf} ({self.frame}/{self.frames}) {path}: ', end='')
-
- else:
- # Read image
- self.count += 1
- img0 = cv2.imread(path) # BGR
- assert img0 is not None, 'Image Not Found ' + path
- print(f'image {self.count}/{self.nf} {path}: ', end='')
-
- # Padded resize
- img = letterbox(img0, self.img_size, stride=self.stride)[0]
-
- # Convert
- img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416
- img = np.ascontiguousarray(img)
-
- return path, img, img0, self.cap
-
- def new_video(self, path):
- self.frame = 0
- self.cap = cv2.VideoCapture(path)
- self.frames = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT))
-
- def __len__(self):
- return self.nf # number of files
-
-
-class LoadWebcam: # for inference
- def __init__(self, pipe='0', img_size=640, stride=32):
- self.img_size = img_size
- self.stride = stride
-
- if pipe.isnumeric():
- pipe = eval(pipe) # local camera
- # pipe = 'rtsp://192.168.1.64/1' # IP camera
- # pipe = 'rtsp://username:password@192.168.1.64/1' # IP camera with login
- # pipe = 'http://wmccpinetop.axiscam.net/mjpg/video.mjpg' # IP golf camera
-
- self.pipe = pipe
- self.cap = cv2.VideoCapture(pipe) # video capture object
- self.cap.set(cv2.CAP_PROP_BUFFERSIZE, 3) # set buffer size
-
- def __iter__(self):
- self.count = -1
- return self
-
- def __next__(self):
- self.count += 1
- if cv2.waitKey(1) == ord('q'): # q to quit
- self.cap.release()
- cv2.destroyAllWindows()
- raise StopIteration
-
- # Read frame
- if self.pipe == 0: # local camera
- ret_val, img0 = self.cap.read()
- img0 = cv2.flip(img0, 1) # flip left-right
- else: # IP camera
- n = 0
- while True:
- n += 1
- self.cap.grab()
- if n % 30 == 0: # skip frames
- ret_val, img0 = self.cap.retrieve()
- if ret_val:
- break
-
- # Print
- assert ret_val, f'Camera Error {self.pipe}'
- img_path = 'webcam.jpg'
- print(f'webcam {self.count}: ', end='')
-
- # Padded resize
- img = letterbox(img0, self.img_size, stride=self.stride)[0]
-
- # Convert
- img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416
- img = np.ascontiguousarray(img)
-
- return img_path, img, img0, None
-
- def __len__(self):
- return 0
-
-
-class LoadStreams: # multiple IP or RTSP cameras
- def __init__(self, sources='streams.txt', img_size=640, stride=32):
- self.mode = 'stream'
- self.img_size = img_size
- self.stride = stride
-
- if os.path.isfile(sources):
- with open(sources, 'r') as f:
- sources = [x.strip() for x in f.read().strip().splitlines() if len(x.strip())]
- else:
- sources = [sources]
-
- n = len(sources)
- self.imgs, self.fps, self.frames, self.threads = [None] * n, [0] * n, [0] * n, [None] * n
- self.sources = [clean_str(x) for x in sources] # clean source names for later
- for i, s in enumerate(sources): # index, source
- # Start thread to read frames from video stream
- print(f'{i + 1}/{n}: {s}... ', end='')
- if 'youtube.com/' in s or 'youtu.be/' in s: # if source is YouTube video
- check_requirements(('pafy', 'youtube_dl'))
- import pafy
- s = pafy.new(s).getbest(preftype="mp4").url # YouTube URL
- s = eval(s) if s.isnumeric() else s # i.e. s = '0' local webcam
- cap = cv2.VideoCapture(s)
- assert cap.isOpened(), f'Failed to open {s}'
- w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
- h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
- self.fps[i] = max(cap.get(cv2.CAP_PROP_FPS) % 100, 0) or 30.0 # 30 FPS fallback
- self.frames[i] = max(int(cap.get(cv2.CAP_PROP_FRAME_COUNT)), 0) or float('inf') # infinite stream fallback
-
- _, self.imgs[i] = cap.read() # guarantee first frame
- self.threads[i] = Thread(target=self.update, args=([i, cap]), daemon=True)
- print(f" success ({self.frames[i]} frames {w}x{h} at {self.fps[i]:.2f} FPS)")
- self.threads[i].start()
- print('') # newline
-
- # check for common shapes
- s = np.stack([letterbox(x, self.img_size, stride=self.stride)[0].shape for x in self.imgs], 0) # shapes
- self.rect = np.unique(s, axis=0).shape[0] == 1 # rect inference if all shapes equal
- if not self.rect:
- print('WARNING: Different stream shapes detected. For optimal performance supply similarly-shaped streams.')
-
- def update(self, i, cap):
- # Read stream `i` frames in daemon thread
- n, f = 0, self.frames[i]
- while cap.isOpened() and n < f:
- n += 1
- # _, self.imgs[index] = cap.read()
- cap.grab()
- if n % 4: # read every 4th frame
- success, im = cap.retrieve()
- self.imgs[i] = im if success else self.imgs[i] * 0
- time.sleep(1 / self.fps[i]) # wait time
-
- def __iter__(self):
- self.count = -1
- return self
-
- def __next__(self):
- self.count += 1
- if not all(x.is_alive() for x in self.threads) or cv2.waitKey(1) == ord('q'): # q to quit
- cv2.destroyAllWindows()
- raise StopIteration
-
- # Letterbox
- img0 = self.imgs.copy()
- img = [letterbox(x, self.img_size, auto=self.rect, stride=self.stride)[0] for x in img0]
-
- # Stack
- img = np.stack(img, 0)
-
- # Convert
- img = img[:, :, :, ::-1].transpose(0, 3, 1, 2) # BGR to RGB, to bsx3x416x416
- img = np.ascontiguousarray(img)
-
- return self.sources, img, img0, None
-
- def __len__(self):
- return 0 # 1E12 frames = 32 streams at 30 FPS for 30 years
-
-
-def img2label_paths(img_paths):
- # Define label paths as a function of image paths
- sa, sb = os.sep + 'images' + os.sep, os.sep + 'labels' + os.sep # /images/, /labels/ substrings
- return ['txt'.join(x.replace(sa, sb, 1).rsplit(x.split('.')[-1], 1)) for x in img_paths]
-
-
-class LoadImagesAndLabels(Dataset): # for training/testing
- def __init__(self, path, img_size=640, batch_size=16, augment=False, hyp=None, rect=False, image_weights=False,
- cache_images=False, single_cls=False, stride=32, pad=0.0, prefix=''):
- self.img_size = img_size
- self.augment = augment
- self.hyp = hyp
- self.image_weights = image_weights
- self.rect = False if image_weights else rect
- self.mosaic = self.augment and not self.rect # load 4 images at a time into a mosaic (only during training)
- self.mosaic_border = [-img_size // 2, -img_size // 2]
- self.stride = stride
- self.path = path
-
- try:
- f = [] # image files
- for p in path if isinstance(path, list) else [path]:
- p = Path(p) # os-agnostic
- if p.is_dir(): # dir
- f += glob.glob(str(p / '**' / '*.*'), recursive=True)
- # f = list(p.rglob('**/*.*')) # pathlib
- elif p.is_file(): # file
- with open(p, 'r') as t:
- t = t.read().strip().splitlines()
- parent = str(p.parent) + os.sep
- f += [x.replace('./', parent) if x.startswith('./') else x for x in t] # local to global path
- # f += [p.parent / x.lstrip(os.sep) for x in t] # local to global path (pathlib)
- else:
- raise Exception(f'{prefix}{p} does not exist')
- self.img_files = sorted([x.replace('/', os.sep) for x in f if x.split('.')[-1].lower() in img_formats])
- # self.img_files = sorted([x for x in f if x.suffix[1:].lower() in img_formats]) # pathlib
- assert self.img_files, f'{prefix}No images found'
- except Exception as e:
- raise Exception(f'{prefix}Error loading data from {path}: {e}\nSee {help_url}')
-
- # Check cache
- self.label_files = img2label_paths(self.img_files) # labels
- cache_path = (p if p.is_file() else Path(self.label_files[0]).parent).with_suffix('.cache') # cached labels
- if cache_path.is_file():
- cache, exists = torch.load(cache_path), True # load
- if cache['hash'] != get_hash(self.label_files + self.img_files) or 'version' not in cache: # changed
- cache, exists = self.cache_labels(cache_path, prefix), False # re-cache
- else:
- cache, exists = self.cache_labels(cache_path, prefix), False # cache
-
- # Display cache
- nf, nm, ne, nc, n = cache.pop('results') # found, missing, empty, corrupted, total
- if exists:
- d = f"Scanning '{cache_path}' images and labels... {nf} found, {nm} missing, {ne} empty, {nc} corrupted"
- tqdm(None, desc=prefix + d, total=n, initial=n) # display cache results
- assert nf > 0 or not augment, f'{prefix}No labels in {cache_path}. Can not train without labels. See {help_url}'
-
- # Read cache
- cache.pop('hash') # remove hash
- cache.pop('version') # remove version
- labels, shapes, self.segments = zip(*cache.values())
- self.labels = list(labels)
- self.shapes = np.array(shapes, dtype=np.float64)
- self.img_files = list(cache.keys()) # update
- self.label_files = img2label_paths(cache.keys()) # update
- if single_cls:
- for x in self.labels:
- x[:, 0] = 0
-
- n = len(shapes) # number of images
- bi = np.floor(np.arange(n) / batch_size).astype(np.int) # batch index
- nb = bi[-1] + 1 # number of batches
- self.batch = bi # batch index of image
- self.n = n
- self.indices = range(n)
-
- # Rectangular Training
- if self.rect:
- # Sort by aspect ratio
- s = self.shapes # wh
- ar = s[:, 1] / s[:, 0] # aspect ratio
- irect = ar.argsort()
- self.img_files = [self.img_files[i] for i in irect]
- self.label_files = [self.label_files[i] for i in irect]
- self.labels = [self.labels[i] for i in irect]
- self.shapes = s[irect] # wh
- ar = ar[irect]
-
- # Set training image shapes
- shapes = [[1, 1]] * nb
- for i in range(nb):
- ari = ar[bi == i]
- mini, maxi = ari.min(), ari.max()
- if maxi < 1:
- shapes[i] = [maxi, 1]
- elif mini > 1:
- shapes[i] = [1, 1 / mini]
-
- self.batch_shapes = np.ceil(np.array(shapes) * img_size / stride + pad).astype(np.int) * stride
-
- # Cache images into memory for faster training (WARNING: large datasets may exceed system RAM)
- self.imgs = [None] * n
- if cache_images:
- gb = 0 # Gigabytes of cached images
- self.img_hw0, self.img_hw = [None] * n, [None] * n
- results = ThreadPool(8).imap(lambda x: load_image(*x), zip(repeat(self), range(n))) # 8 threads
- pbar = tqdm(enumerate(results), total=n)
- for i, x in pbar:
- self.imgs[i], self.img_hw0[i], self.img_hw[i] = x # img, hw_original, hw_resized = load_image(self, i)
- gb += self.imgs[i].nbytes
- pbar.desc = f'{prefix}Caching images ({gb / 1E9:.1f}GB)'
- pbar.close()
-
- def cache_labels(self, path=Path('./labels.cache'), prefix=''):
- # Cache dataset labels, check images and read shapes
- x = {} # dict
- nm, nf, ne, nc = 0, 0, 0, 0 # number missing, found, empty, duplicate
- pbar = tqdm(zip(self.img_files, self.label_files), desc='Scanning images', total=len(self.img_files))
- for i, (im_file, lb_file) in enumerate(pbar):
- try:
- # verify images
- im = Image.open(im_file)
- im.verify() # PIL verify
- shape = exif_size(im) # image size
- segments = [] # instance segments
- assert (shape[0] > 9) & (shape[1] > 9), f'image size {shape} <10 pixels'
- assert im.format.lower() in img_formats, f'invalid image format {im.format}'
-
- # verify labels
- if os.path.isfile(lb_file):
- nf += 1 # label found
- with open(lb_file, 'r') as f:
- l = [x.split() for x in f.read().strip().splitlines()]
- if any([len(x) > 8 for x in l]): # is segment
- classes = np.array([x[0] for x in l], dtype=np.float32)
- segments = [np.array(x[1:], dtype=np.float32).reshape(-1, 2) for x in l] # (cls, xy1...)
- l = np.concatenate((classes.reshape(-1, 1), segments2boxes(segments)), 1) # (cls, xywh)
- l = np.array(l, dtype=np.float32)
- if len(l):
- assert l.shape[1] == 5, 'labels require 5 columns each'
- assert (l >= 0).all(), 'negative labels'
- assert (l[:, 1:] <= 1).all(), 'non-normalized or out of bounds coordinate labels'
- assert np.unique(l, axis=0).shape[0] == l.shape[0], 'duplicate labels'
- else:
- ne += 1 # label empty
- l = np.zeros((0, 5), dtype=np.float32)
- else:
- nm += 1 # label missing
- l = np.zeros((0, 5), dtype=np.float32)
- x[im_file] = [l, shape, segments]
- except Exception as e:
- nc += 1
- logging.info(f'{prefix}WARNING: Ignoring corrupted image and/or label {im_file}: {e}')
-
- pbar.desc = f"{prefix}Scanning '{path.parent / path.stem}' images and labels... " \
- f"{nf} found, {nm} missing, {ne} empty, {nc} corrupted"
- pbar.close()
-
- if nf == 0:
- logging.info(f'{prefix}WARNING: No labels found in {path}. See {help_url}')
-
- x['hash'] = get_hash(self.label_files + self.img_files)
- x['results'] = nf, nm, ne, nc, i + 1
- x['version'] = 0.1 # cache version
- try:
- torch.save(x, path) # save for next time
- logging.info(f'{prefix}New cache created: {path}')
- except Exception as e:
- logging.info(f'{prefix}WARNING: Cache directory {path.parent} is not writeable: {e}') # path not writeable
- return x
-
- def __len__(self):
- return len(self.img_files)
-
- # def __iter__(self):
- # self.count = -1
- # print('ran dataset iter')
- # #self.shuffled_vector = np.random.permutation(self.nF) if self.augment else np.arange(self.nF)
- # return self
-
- def __getitem__(self, index):
- index = self.indices[index] # linear, shuffled, or image_weights
-
- hyp = self.hyp
- mosaic = self.mosaic and random.random() < hyp['mosaic']
- if mosaic:
- # Load mosaic
- img, labels = load_mosaic(self, index)
- shapes = None
-
- # MixUp https://arxiv.org/pdf/1710.09412.pdf
- if random.random() < hyp['mixup']:
- img2, labels2 = load_mosaic(self, random.randint(0, self.n - 1))
- r = np.random.beta(8.0, 8.0) # mixup ratio, alpha=beta=8.0
- img = (img * r + img2 * (1 - r)).astype(np.uint8)
- labels = np.concatenate((labels, labels2), 0)
-
- else:
- # Load image
- img, (h0, w0), (h, w) = load_image(self, index)
-
- # Letterbox
- shape = self.batch_shapes[self.batch[index]] if self.rect else self.img_size # final letterboxed shape
- img, ratio, pad = letterbox(img, shape, auto=False, scaleup=self.augment)
- shapes = (h0, w0), ((h / h0, w / w0), pad) # for COCO mAP rescaling
-
- labels = self.labels[index].copy()
- if labels.size: # normalized xywh to pixel xyxy format
- labels[:, 1:] = xywhn2xyxy(labels[:, 1:], ratio[0] * w, ratio[1] * h, padw=pad[0], padh=pad[1])
-
- if self.augment:
- # Augment imagespace
- if not mosaic:
- img, labels = random_perspective(img, labels,
- degrees=hyp['degrees'],
- translate=hyp['translate'],
- scale=hyp['scale'],
- shear=hyp['shear'],
- perspective=hyp['perspective'])
-
- # Augment colorspace
- augment_hsv(img, hgain=hyp['hsv_h'], sgain=hyp['hsv_s'], vgain=hyp['hsv_v'])
-
- # Apply cutouts
- # if random.random() < 0.9:
- # labels = cutout(img, labels)
-
- nL = len(labels) # number of labels
- if nL:
- labels[:, 1:5] = xyxy2xywh(labels[:, 1:5]) # convert xyxy to xywh
- labels[:, [2, 4]] /= img.shape[0] # normalized height 0-1
- labels[:, [1, 3]] /= img.shape[1] # normalized width 0-1
-
- if self.augment:
- # flip up-down
- if random.random() < hyp['flipud']:
- img = np.flipud(img)
- if nL:
- labels[:, 2] = 1 - labels[:, 2]
-
- # flip left-right
- if random.random() < hyp['fliplr']:
- img = np.fliplr(img)
- if nL:
- labels[:, 1] = 1 - labels[:, 1]
-
- labels_out = torch.zeros((nL, 6))
- if nL:
- labels_out[:, 1:] = torch.from_numpy(labels)
-
- # Convert
- img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416
- img = np.ascontiguousarray(img)
-
- return torch.from_numpy(img), labels_out, self.img_files[index], shapes
-
- @staticmethod
- def collate_fn(batch):
- img, label, path, shapes = zip(*batch) # transposed
- for i, l in enumerate(label):
- l[:, 0] = i # add target image index for build_targets()
- return torch.stack(img, 0), torch.cat(label, 0), path, shapes
-
- @staticmethod
- def collate_fn4(batch):
- img, label, path, shapes = zip(*batch) # transposed
- n = len(shapes) // 4
- img4, label4, path4, shapes4 = [], [], path[:n], shapes[:n]
-
- ho = torch.tensor([[0., 0, 0, 1, 0, 0]])
- wo = torch.tensor([[0., 0, 1, 0, 0, 0]])
- s = torch.tensor([[1, 1, .5, .5, .5, .5]]) # scale
- for i in range(n): # zidane torch.zeros(16,3,720,1280) # BCHW
- i *= 4
- if random.random() < 0.5:
- im = F.interpolate(img[i].unsqueeze(0).float(), scale_factor=2., mode='bilinear', align_corners=False)[
- 0].type(img[i].type())
- l = label[i]
- else:
- im = torch.cat((torch.cat((img[i], img[i + 1]), 1), torch.cat((img[i + 2], img[i + 3]), 1)), 2)
- l = torch.cat((label[i], label[i + 1] + ho, label[i + 2] + wo, label[i + 3] + ho + wo), 0) * s
- img4.append(im)
- label4.append(l)
-
- for i, l in enumerate(label4):
- l[:, 0] = i # add target image index for build_targets()
-
- return torch.stack(img4, 0), torch.cat(label4, 0), path4, shapes4
-
-
-# Ancillary functions --------------------------------------------------------------------------------------------------
-def load_image(self, index):
- # loads 1 image from dataset, returns img, original hw, resized hw
- img = self.imgs[index]
- if img is None: # not cached
- path = self.img_files[index]
- img = cv2.imread(path) # BGR
- assert img is not None, 'Image Not Found ' + path
- h0, w0 = img.shape[:2] # orig hw
- r = self.img_size / max(h0, w0) # ratio
- if r != 1: # if sizes are not equal
- img = cv2.resize(img, (int(w0 * r), int(h0 * r)),
- interpolation=cv2.INTER_AREA if r < 1 and not self.augment else cv2.INTER_LINEAR)
- return img, (h0, w0), img.shape[:2] # img, hw_original, hw_resized
- else:
- return self.imgs[index], self.img_hw0[index], self.img_hw[index] # img, hw_original, hw_resized
-
-
-def augment_hsv(img, hgain=0.5, sgain=0.5, vgain=0.5):
- r = np.random.uniform(-1, 1, 3) * [hgain, sgain, vgain] + 1 # random gains
- hue, sat, val = cv2.split(cv2.cvtColor(img, cv2.COLOR_BGR2HSV))
- dtype = img.dtype # uint8
-
- x = np.arange(0, 256, dtype=np.int16)
- lut_hue = ((x * r[0]) % 180).astype(dtype)
- lut_sat = np.clip(x * r[1], 0, 255).astype(dtype)
- lut_val = np.clip(x * r[2], 0, 255).astype(dtype)
-
- img_hsv = cv2.merge((cv2.LUT(hue, lut_hue), cv2.LUT(sat, lut_sat), cv2.LUT(val, lut_val))).astype(dtype)
- cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR, dst=img) # no return needed
-
-
-def hist_equalize(img, clahe=True, bgr=False):
- # Equalize histogram on BGR image 'img' with img.shape(n,m,3) and range 0-255
- yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV if bgr else cv2.COLOR_RGB2YUV)
- if clahe:
- c = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
- yuv[:, :, 0] = c.apply(yuv[:, :, 0])
- else:
- yuv[:, :, 0] = cv2.equalizeHist(yuv[:, :, 0]) # equalize Y channel histogram
- return cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR if bgr else cv2.COLOR_YUV2RGB) # convert YUV image to RGB
-
-
-def load_mosaic(self, index):
- # loads images in a 4-mosaic
-
- labels4, segments4 = [], []
- s = self.img_size
- yc, xc = [int(random.uniform(-x, 2 * s + x)) for x in self.mosaic_border] # mosaic center x, y
- indices = [index] + random.choices(self.indices, k=3) # 3 additional image indices
- for i, index in enumerate(indices):
- # Load image
- img, _, (h, w) = load_image(self, index)
-
- # place img in img4
- if i == 0: # top left
- img4 = np.full((s * 2, s * 2, img.shape[2]), 114, dtype=np.uint8) # base image with 4 tiles
- x1a, y1a, x2a, y2a = max(xc - w, 0), max(yc - h, 0), xc, yc # xmin, ymin, xmax, ymax (large image)
- x1b, y1b, x2b, y2b = w - (x2a - x1a), h - (y2a - y1a), w, h # xmin, ymin, xmax, ymax (small image)
- elif i == 1: # top right
- x1a, y1a, x2a, y2a = xc, max(yc - h, 0), min(xc + w, s * 2), yc
- x1b, y1b, x2b, y2b = 0, h - (y2a - y1a), min(w, x2a - x1a), h
- elif i == 2: # bottom left
- x1a, y1a, x2a, y2a = max(xc - w, 0), yc, xc, min(s * 2, yc + h)
- x1b, y1b, x2b, y2b = w - (x2a - x1a), 0, w, min(y2a - y1a, h)
- elif i == 3: # bottom right
- x1a, y1a, x2a, y2a = xc, yc, min(xc + w, s * 2), min(s * 2, yc + h)
- x1b, y1b, x2b, y2b = 0, 0, min(w, x2a - x1a), min(y2a - y1a, h)
-
- img4[y1a:y2a, x1a:x2a] = img[y1b:y2b, x1b:x2b] # img4[ymin:ymax, xmin:xmax]
- padw = x1a - x1b
- padh = y1a - y1b
-
- # Labels
- labels, segments = self.labels[index].copy(), self.segments[index].copy()
- if labels.size:
- labels[:, 1:] = xywhn2xyxy(labels[:, 1:], w, h, padw, padh) # normalized xywh to pixel xyxy format
- segments = [xyn2xy(x, w, h, padw, padh) for x in segments]
- labels4.append(labels)
- segments4.extend(segments)
-
- # Concat/clip labels
- labels4 = np.concatenate(labels4, 0)
- for x in (labels4[:, 1:], *segments4):
- np.clip(x, 0, 2 * s, out=x) # clip when using random_perspective()
- # img4, labels4 = replicate(img4, labels4) # replicate
-
- # Augment
- img4, labels4 = random_perspective(img4, labels4, segments4,
- degrees=self.hyp['degrees'],
- translate=self.hyp['translate'],
- scale=self.hyp['scale'],
- shear=self.hyp['shear'],
- perspective=self.hyp['perspective'],
- border=self.mosaic_border) # border to remove
-
- return img4, labels4
-
-
-def load_mosaic9(self, index):
- # loads images in a 9-mosaic
-
- labels9, segments9 = [], []
- s = self.img_size
- indices = [index] + random.choices(self.indices, k=8) # 8 additional image indices
- for i, index in enumerate(indices):
- # Load image
- img, _, (h, w) = load_image(self, index)
-
- # place img in img9
- if i == 0: # center
- img9 = np.full((s * 3, s * 3, img.shape[2]), 114, dtype=np.uint8) # base image with 4 tiles
- h0, w0 = h, w
- c = s, s, s + w, s + h # xmin, ymin, xmax, ymax (base) coordinates
- elif i == 1: # top
- c = s, s - h, s + w, s
- elif i == 2: # top right
- c = s + wp, s - h, s + wp + w, s
- elif i == 3: # right
- c = s + w0, s, s + w0 + w, s + h
- elif i == 4: # bottom right
- c = s + w0, s + hp, s + w0 + w, s + hp + h
- elif i == 5: # bottom
- c = s + w0 - w, s + h0, s + w0, s + h0 + h
- elif i == 6: # bottom left
- c = s + w0 - wp - w, s + h0, s + w0 - wp, s + h0 + h
- elif i == 7: # left
- c = s - w, s + h0 - h, s, s + h0
- elif i == 8: # top left
- c = s - w, s + h0 - hp - h, s, s + h0 - hp
-
- padx, pady = c[:2]
- x1, y1, x2, y2 = [max(x, 0) for x in c] # allocate coords
-
- # Labels
- labels, segments = self.labels[index].copy(), self.segments[index].copy()
- if labels.size:
- labels[:, 1:] = xywhn2xyxy(labels[:, 1:], w, h, padx, pady) # normalized xywh to pixel xyxy format
- segments = [xyn2xy(x, w, h, padx, pady) for x in segments]
- labels9.append(labels)
- segments9.extend(segments)
-
- # Image
- img9[y1:y2, x1:x2] = img[y1 - pady:, x1 - padx:] # img9[ymin:ymax, xmin:xmax]
- hp, wp = h, w # height, width previous
-
- # Offset
- yc, xc = [int(random.uniform(0, s)) for _ in self.mosaic_border] # mosaic center x, y
- img9 = img9[yc:yc + 2 * s, xc:xc + 2 * s]
-
- # Concat/clip labels
- labels9 = np.concatenate(labels9, 0)
- labels9[:, [1, 3]] -= xc
- labels9[:, [2, 4]] -= yc
- c = np.array([xc, yc]) # centers
- segments9 = [x - c for x in segments9]
-
- for x in (labels9[:, 1:], *segments9):
- np.clip(x, 0, 2 * s, out=x) # clip when using random_perspective()
- # img9, labels9 = replicate(img9, labels9) # replicate
-
- # Augment
- img9, labels9 = random_perspective(img9, labels9, segments9,
- degrees=self.hyp['degrees'],
- translate=self.hyp['translate'],
- scale=self.hyp['scale'],
- shear=self.hyp['shear'],
- perspective=self.hyp['perspective'],
- border=self.mosaic_border) # border to remove
-
- return img9, labels9
-
-
-def replicate(img, labels):
- # Replicate labels
- h, w = img.shape[:2]
- boxes = labels[:, 1:].astype(int)
- x1, y1, x2, y2 = boxes.T
- s = ((x2 - x1) + (y2 - y1)) / 2 # side length (pixels)
- for i in s.argsort()[:round(s.size * 0.5)]: # smallest indices
- x1b, y1b, x2b, y2b = boxes[i]
- bh, bw = y2b - y1b, x2b - x1b
- yc, xc = int(random.uniform(0, h - bh)), int(random.uniform(0, w - bw)) # offset x, y
- x1a, y1a, x2a, y2a = [xc, yc, xc + bw, yc + bh]
- img[y1a:y2a, x1a:x2a] = img[y1b:y2b, x1b:x2b] # img4[ymin:ymax, xmin:xmax]
- labels = np.append(labels, [[labels[i, 0], x1a, y1a, x2a, y2a]], axis=0)
-
- return img, labels
-
-
-def letterbox(img, new_shape=(640, 640), color=(114, 114, 114), auto=True, scaleFill=False, scaleup=True, stride=32):
- # Resize and pad image while meeting stride-multiple constraints
- shape = img.shape[:2] # current shape [height, width]
- if isinstance(new_shape, int):
- new_shape = (new_shape, new_shape)
-
- # Scale ratio (new / old)
- r = min(new_shape[0] / shape[0], new_shape[1] / shape[1])
- if not scaleup: # only scale down, do not scale up (for better test mAP)
- r = min(r, 1.0)
-
- # Compute padding
- ratio = r, r # width, height ratios
- new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r))
- dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1] # wh padding
- if auto: # minimum rectangle
- dw, dh = np.mod(dw, stride), np.mod(dh, stride) # wh padding
- elif scaleFill: # stretch
- dw, dh = 0.0, 0.0
- new_unpad = (new_shape[1], new_shape[0])
- ratio = new_shape[1] / shape[1], new_shape[0] / shape[0] # width, height ratios
-
- dw /= 2 # divide padding into 2 sides
- dh /= 2
-
- if shape[::-1] != new_unpad: # resize
- img = cv2.resize(img, new_unpad, interpolation=cv2.INTER_LINEAR)
- top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1))
- left, right = int(round(dw - 0.1)), int(round(dw + 0.1))
- img = cv2.copyMakeBorder(img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color) # add border
- return img, ratio, (dw, dh)
-
-
-def random_perspective(img, targets=(), segments=(), degrees=10, translate=.1, scale=.1, shear=10, perspective=0.0,
- border=(0, 0)):
- # torchvision.transforms.RandomAffine(degrees=(-10, 10), translate=(.1, .1), scale=(.9, 1.1), shear=(-10, 10))
- # targets = [cls, xyxy]
-
- height = img.shape[0] + border[0] * 2 # shape(h,w,c)
- width = img.shape[1] + border[1] * 2
-
- # Center
- C = np.eye(3)
- C[0, 2] = -img.shape[1] / 2 # x translation (pixels)
- C[1, 2] = -img.shape[0] / 2 # y translation (pixels)
-
- # Perspective
- P = np.eye(3)
- P[2, 0] = random.uniform(-perspective, perspective) # x perspective (about y)
- P[2, 1] = random.uniform(-perspective, perspective) # y perspective (about x)
-
- # Rotation and Scale
- R = np.eye(3)
- a = random.uniform(-degrees, degrees)
- # a += random.choice([-180, -90, 0, 90]) # add 90deg rotations to small rotations
- s = random.uniform(1 - scale, 1 + scale)
- # s = 2 ** random.uniform(-scale, scale)
- R[:2] = cv2.getRotationMatrix2D(angle=a, center=(0, 0), scale=s)
-
- # Shear
- S = np.eye(3)
- S[0, 1] = math.tan(random.uniform(-shear, shear) * math.pi / 180) # x shear (deg)
- S[1, 0] = math.tan(random.uniform(-shear, shear) * math.pi / 180) # y shear (deg)
-
- # Translation
- T = np.eye(3)
- T[0, 2] = random.uniform(0.5 - translate, 0.5 + translate) * width # x translation (pixels)
- T[1, 2] = random.uniform(0.5 - translate, 0.5 + translate) * height # y translation (pixels)
-
- # Combined rotation matrix
- M = T @ S @ R @ P @ C # order of operations (right to left) is IMPORTANT
- if (border[0] != 0) or (border[1] != 0) or (M != np.eye(3)).any(): # image changed
- if perspective:
- img = cv2.warpPerspective(img, M, dsize=(width, height), borderValue=(114, 114, 114))
- else: # affine
- img = cv2.warpAffine(img, M[:2], dsize=(width, height), borderValue=(114, 114, 114))
-
- # Visualize
- # import matplotlib.pyplot as plt
- # ax = plt.subplots(1, 2, figsize=(12, 6))[1].ravel()
- # ax[0].imshow(img[:, :, ::-1]) # base
- # ax[1].imshow(img2[:, :, ::-1]) # warped
-
- # Transform label coordinates
- n = len(targets)
- if n:
- use_segments = any(x.any() for x in segments)
- new = np.zeros((n, 4))
- if use_segments: # warp segments
- segments = resample_segments(segments) # upsample
- for i, segment in enumerate(segments):
- xy = np.ones((len(segment), 3))
- xy[:, :2] = segment
- xy = xy @ M.T # transform
- xy = xy[:, :2] / xy[:, 2:3] if perspective else xy[:, :2] # perspective rescale or affine
-
- # clip
- new[i] = segment2box(xy, width, height)
-
- else: # warp boxes
- xy = np.ones((n * 4, 3))
- xy[:, :2] = targets[:, [1, 2, 3, 4, 1, 4, 3, 2]].reshape(n * 4, 2) # x1y1, x2y2, x1y2, x2y1
- xy = xy @ M.T # transform
- xy = (xy[:, :2] / xy[:, 2:3] if perspective else xy[:, :2]).reshape(n, 8) # perspective rescale or affine
-
- # create new boxes
- x = xy[:, [0, 2, 4, 6]]
- y = xy[:, [1, 3, 5, 7]]
- new = np.concatenate((x.min(1), y.min(1), x.max(1), y.max(1))).reshape(4, n).T
-
- # clip
- new[:, [0, 2]] = new[:, [0, 2]].clip(0, width)
- new[:, [1, 3]] = new[:, [1, 3]].clip(0, height)
-
- # filter candidates
- i = box_candidates(box1=targets[:, 1:5].T * s, box2=new.T, area_thr=0.01 if use_segments else 0.10)
- targets = targets[i]
- targets[:, 1:5] = new[i]
-
- return img, targets
-
-
-def box_candidates(box1, box2, wh_thr=2, ar_thr=20, area_thr=0.1, eps=1e-16): # box1(4,n), box2(4,n)
- # Compute candidate boxes: box1 before augment, box2 after augment, wh_thr (pixels), aspect_ratio_thr, area_ratio
- w1, h1 = box1[2] - box1[0], box1[3] - box1[1]
- w2, h2 = box2[2] - box2[0], box2[3] - box2[1]
- ar = np.maximum(w2 / (h2 + eps), h2 / (w2 + eps)) # aspect ratio
- return (w2 > wh_thr) & (h2 > wh_thr) & (w2 * h2 / (w1 * h1 + eps) > area_thr) & (ar < ar_thr) # candidates
-
-
-def cutout(image, labels):
- # Applies image cutout augmentation https://arxiv.org/abs/1708.04552
- h, w = image.shape[:2]
-
- def bbox_ioa(box1, box2):
- # Returns the intersection over box2 area given box1, box2. box1 is 4, box2 is nx4. boxes are x1y1x2y2
- box2 = box2.transpose()
-
- # Get the coordinates of bounding boxes
- b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3]
- b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3]
-
- # Intersection area
- inter_area = (np.minimum(b1_x2, b2_x2) - np.maximum(b1_x1, b2_x1)).clip(0) * \
- (np.minimum(b1_y2, b2_y2) - np.maximum(b1_y1, b2_y1)).clip(0)
-
- # box2 area
- box2_area = (b2_x2 - b2_x1) * (b2_y2 - b2_y1) + 1e-16
-
- # Intersection over box2 area
- return inter_area / box2_area
-
- # create random masks
- scales = [0.5] * 1 + [0.25] * 2 + [0.125] * 4 + [0.0625] * 8 + [0.03125] * 16 # image size fraction
- for s in scales:
- mask_h = random.randint(1, int(h * s))
- mask_w = random.randint(1, int(w * s))
-
- # box
- xmin = max(0, random.randint(0, w) - mask_w // 2)
- ymin = max(0, random.randint(0, h) - mask_h // 2)
- xmax = min(w, xmin + mask_w)
- ymax = min(h, ymin + mask_h)
-
- # apply random color mask
- image[ymin:ymax, xmin:xmax] = [random.randint(64, 191) for _ in range(3)]
-
- # return unobscured labels
- if len(labels) and s > 0.03:
- box = np.array([xmin, ymin, xmax, ymax], dtype=np.float32)
- ioa = bbox_ioa(box, labels[:, 1:5]) # intersection over area
- labels = labels[ioa < 0.60] # remove >60% obscured labels
-
- return labels
-
-
-def create_folder(path='./new'):
- # Create folder
- if os.path.exists(path):
- shutil.rmtree(path) # delete output folder
- os.makedirs(path) # make new output folder
-
-
-def flatten_recursive(path='../coco128'):
- # Flatten a recursive directory by bringing all files to top level
- new_path = Path(path + '_flat')
- create_folder(new_path)
- for file in tqdm(glob.glob(str(Path(path)) + '/**/*.*', recursive=True)):
- shutil.copyfile(file, new_path / Path(file).name)
-
-
-def extract_boxes(path='../coco128/'): # from utils.datasets import *; extract_boxes('../coco128')
- # Convert detection dataset into classification dataset, with one directory per class
-
- path = Path(path) # images dir
- shutil.rmtree(path / 'classifier') if (path / 'classifier').is_dir() else None # remove existing
- files = list(path.rglob('*.*'))
- n = len(files) # number of files
- for im_file in tqdm(files, total=n):
- if im_file.suffix[1:] in img_formats:
- # image
- im = cv2.imread(str(im_file))[..., ::-1] # BGR to RGB
- h, w = im.shape[:2]
-
- # labels
- lb_file = Path(img2label_paths([str(im_file)])[0])
- if Path(lb_file).exists():
- with open(lb_file, 'r') as f:
- lb = np.array([x.split() for x in f.read().strip().splitlines()], dtype=np.float32) # labels
-
- for j, x in enumerate(lb):
- c = int(x[0]) # class
- f = (path / 'classifier') / f'{c}' / f'{path.stem}_{im_file.stem}_{j}.jpg' # new filename
- if not f.parent.is_dir():
- f.parent.mkdir(parents=True)
-
- b = x[1:] * [w, h, w, h] # box
- # b[2:] = b[2:].max() # rectangle to square
- b[2:] = b[2:] * 1.2 + 3 # pad
- b = xywh2xyxy(b.reshape(-1, 4)).ravel().astype(np.int)
-
- b[[0, 2]] = np.clip(b[[0, 2]], 0, w) # clip boxes outside of image
- b[[1, 3]] = np.clip(b[[1, 3]], 0, h)
- assert cv2.imwrite(str(f), im[b[1]:b[3], b[0]:b[2]]), f'box failure in {f}'
-
-
-def autosplit(path='../coco128', weights=(0.9, 0.1, 0.0), annotated_only=False):
- """ Autosplit a dataset into train/val/test splits and save path/autosplit_*.txt files
- Usage: from utils.datasets import *; autosplit('../coco128')
- Arguments
- path: Path to images directory
- weights: Train, val, test weights (list)
- annotated_only: Only use images with an annotated txt file
- """
- path = Path(path) # images dir
- files = sum([list(path.rglob(f"*.{img_ext}")) for img_ext in img_formats], []) # image files only
- n = len(files) # number of files
- indices = random.choices([0, 1, 2], weights=weights, k=n) # assign each image to a split
-
- txt = ['autosplit_train.txt', 'autosplit_val.txt', 'autosplit_test.txt'] # 3 txt files
- [(path / x).unlink() for x in txt if (path / x).exists()] # remove existing
-
- print(f'Autosplitting images from {path}' + ', using *.txt labeled images only' * annotated_only)
- for i, img in tqdm(zip(indices, files), total=n):
- if not annotated_only or Path(img2label_paths([str(img)])[0]).exists(): # check label
- with open(path / txt[i], 'a') as f:
- f.write(str(img) + '\n') # add image to txt file
diff --git a/Yolov5-Deepsort/utils/flask_rest_api/README.md b/Yolov5-Deepsort/utils/flask_rest_api/README.md
deleted file mode 100644
index 324c2416dcd9fa83b18286c33ce309f4f5573637..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/flask_rest_api/README.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# Flask REST API
-[REST](https://en.wikipedia.org/wiki/Representational_state_transfer) [API](https://en.wikipedia.org/wiki/API)s are commonly used to expose Machine Learning (ML) models to other services. This folder contains an example REST API created using Flask to expose the YOLOv5s model from [PyTorch Hub](https://pytorch.org/hub/ultralytics_yolov5/).
-
-## Requirements
-
-[Flask](https://palletsprojects.com/p/flask/) is required. Install with:
-```shell
-$ pip install Flask
-```
-
-## Run
-
-After Flask installation run:
-
-```shell
-$ python3 restapi.py --port 5000
-```
-
-Then use [curl](https://curl.se/) to perform a request:
-
-```shell
-$ curl -X POST -F image=@zidane.jpg 'http://localhost:5000/v1/object-detection/yolov5s'`
-```
-
-The model inference results are returned as a JSON response:
-
-```json
-[
- {
- "class": 0,
- "confidence": 0.8900438547,
- "height": 0.9318675399,
- "name": "person",
- "width": 0.3264600933,
- "xcenter": 0.7438579798,
- "ycenter": 0.5207948685
- },
- {
- "class": 0,
- "confidence": 0.8440024257,
- "height": 0.7155083418,
- "name": "person",
- "width": 0.6546785235,
- "xcenter": 0.427829951,
- "ycenter": 0.6334488392
- },
- {
- "class": 27,
- "confidence": 0.3771208823,
- "height": 0.3902671337,
- "name": "tie",
- "width": 0.0696444362,
- "xcenter": 0.3675483763,
- "ycenter": 0.7991207838
- },
- {
- "class": 27,
- "confidence": 0.3527112305,
- "height": 0.1540903747,
- "name": "tie",
- "width": 0.0336618312,
- "xcenter": 0.7814827561,
- "ycenter": 0.5065554976
- }
-]
-```
-
-An example python script to perform inference using [requests](https://docs.python-requests.org/en/master/) is given in `example_request.py`
diff --git a/Yolov5-Deepsort/utils/flask_rest_api/example_request.py b/Yolov5-Deepsort/utils/flask_rest_api/example_request.py
deleted file mode 100644
index ff21f30f93ca37578ce45366a1ddbe3f3eadaa79..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/flask_rest_api/example_request.py
+++ /dev/null
@@ -1,13 +0,0 @@
-"""Perform test request"""
-import pprint
-
-import requests
-
-DETECTION_URL = "http://localhost:5000/v1/object-detection/yolov5s"
-TEST_IMAGE = "zidane.jpg"
-
-image_data = open(TEST_IMAGE, "rb").read()
-
-response = requests.post(DETECTION_URL, files={"image": image_data}).json()
-
-pprint.pprint(response)
diff --git a/Yolov5-Deepsort/utils/flask_rest_api/restapi.py b/Yolov5-Deepsort/utils/flask_rest_api/restapi.py
deleted file mode 100644
index a54e2309715ce5d3d41e9e2e76a347db3cdb7ccb..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/flask_rest_api/restapi.py
+++ /dev/null
@@ -1,37 +0,0 @@
-"""
-Run a rest API exposing the yolov5s object detection model
-"""
-import argparse
-import io
-
-import torch
-from PIL import Image
-from flask import Flask, request
-
-app = Flask(__name__)
-
-DETECTION_URL = "/v1/object-detection/yolov5s"
-
-
-@app.route(DETECTION_URL, methods=["POST"])
-def predict():
- if not request.method == "POST":
- return
-
- if request.files.get("image"):
- image_file = request.files["image"]
- image_bytes = image_file.read()
-
- img = Image.open(io.BytesIO(image_bytes))
-
- results = model(img, size=640) # reduce size=320 for faster inference
- return results.pandas().xyxy[0].to_json(orient="records")
-
-
-if __name__ == "__main__":
- parser = argparse.ArgumentParser(description="Flask API exposing YOLOv5 model")
- parser.add_argument("--port", default=5000, type=int, help="port number")
- args = parser.parse_args()
-
- model = torch.hub.load("ultralytics/yolov5", "yolov5s", force_reload=True) # force_reload to recache
- app.run(host="0.0.0.0", port=args.port) # debug=True causes Restarting with stat
diff --git a/Yolov5-Deepsort/utils/general.py b/Yolov5-Deepsort/utils/general.py
deleted file mode 100644
index 9a882715f0ad43a0271252fca3aeb06f6169d1ff..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/general.py
+++ /dev/null
@@ -1,692 +0,0 @@
-# YOLOv5 general utils
-
-import glob
-import logging
-import math
-import os
-import platform
-import random
-import re
-import subprocess
-import time
-from itertools import repeat
-from multiprocessing.pool import ThreadPool
-from pathlib import Path
-
-import cv2
-import numpy as np
-import pandas as pd
-import pkg_resources as pkg
-import torch
-import torchvision
-import yaml
-
-from utils.google_utils import gsutil_getsize
-from utils.metrics import fitness
-from utils.torch_utils import init_torch_seeds
-
-# Settings
-torch.set_printoptions(linewidth=320, precision=5, profile='long')
-np.set_printoptions(linewidth=320, formatter={'float_kind': '{:11.5g}'.format}) # format short g, %precision=5
-pd.options.display.max_columns = 10
-cv2.setNumThreads(0) # prevent OpenCV from multithreading (incompatible with PyTorch DataLoader)
-os.environ['NUMEXPR_MAX_THREADS'] = str(min(os.cpu_count(), 8)) # NumExpr max threads
-
-
-def set_logging(rank=-1, verbose=True):
- logging.basicConfig(
- format="%(message)s",
- level=logging.INFO if (verbose and rank in [-1, 0]) else logging.WARN)
-
-
-def init_seeds(seed=0):
- # Initialize random number generator (RNG) seeds
- random.seed(seed)
- np.random.seed(seed)
- init_torch_seeds(seed)
-
-
-def get_latest_run(search_dir='.'):
- # Return path to most recent 'last.pt' in /runs (i.e. to --resume from)
- last_list = glob.glob(f'{search_dir}/**/last*.pt', recursive=True)
- return max(last_list, key=os.path.getctime) if last_list else ''
-
-
-def is_docker():
- # Is environment a Docker container
- return Path('/workspace').exists() # or Path('/.dockerenv').exists()
-
-
-def is_colab():
- # Is environment a Google Colab instance
- try:
- import google.colab
- return True
- except Exception as e:
- return False
-
-
-def emojis(str=''):
- # Return platform-dependent emoji-safe version of string
- return str.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else str
-
-
-def file_size(file):
- # Return file size in MB
- return Path(file).stat().st_size / 1e6
-
-
-def check_online():
- # Check internet connectivity
- import socket
- try:
- socket.create_connection(("1.1.1.1", 443), 5) # check host accesability
- return True
- except OSError:
- return False
-
-
-def check_git_status():
- # Recommend 'git pull' if code is out of date
- print(colorstr('github: '), end='')
- try:
- assert Path('.git').exists(), 'skipping check (not a git repository)'
- assert not is_docker(), 'skipping check (Docker image)'
- assert check_online(), 'skipping check (offline)'
-
- cmd = 'git fetch && git config --get remote.origin.url'
- url = subprocess.check_output(cmd, shell=True).decode().strip().rstrip('.git') # github repo url
- branch = subprocess.check_output('git rev-parse --abbrev-ref HEAD', shell=True).decode().strip() # checked out
- n = int(subprocess.check_output(f'git rev-list {branch}..origin/master --count', shell=True)) # commits behind
- if n > 0:
- s = f"⚠️ WARNING: code is out of date by {n} commit{'s' * (n > 1)}. " \
- f"Use 'git pull' to update or 'git clone {url}' to download latest."
- else:
- s = f'up to date with {url} ✅'
- print(emojis(s)) # emoji-safe
- except Exception as e:
- print(e)
-
-
-def check_python(minimum='3.7.0', required=True):
- # Check current python version vs. required python version
- current = platform.python_version()
- result = pkg.parse_version(current) >= pkg.parse_version(minimum)
- if required:
- assert result, f'Python {minimum} required by YOLOv5, but Python {current} is currently installed'
- return result
-
-
-def check_requirements(requirements='requirements.txt', exclude=()):
- # Check installed dependencies meet requirements (pass *.txt file or list of packages)
- prefix = colorstr('red', 'bold', 'requirements:')
- check_python() # check python version
- if isinstance(requirements, (str, Path)): # requirements.txt file
- file = Path(requirements)
- if not file.exists():
- print(f"{prefix} {file.resolve()} not found, check failed.")
- return
- requirements = [f'{x.name}{x.specifier}' for x in pkg.parse_requirements(file.open()) if x.name not in exclude]
- else: # list or tuple of packages
- requirements = [x for x in requirements if x not in exclude]
-
- n = 0 # number of packages updates
- for r in requirements:
- try:
- pkg.require(r)
- except Exception as e: # DistributionNotFound or VersionConflict if requirements not met
- n += 1
- print(f"{prefix} {r} not found and is required by YOLOv5, attempting auto-update...")
- try:
- print(subprocess.check_output(f"pip install '{r}'", shell=True).decode())
- except Exception as e:
- print(f'{prefix} {e}')
-
- if n: # if packages updated
- source = file.resolve() if 'file' in locals() else requirements
- s = f"{prefix} {n} package{'s' * (n > 1)} updated per {source}\n" \
- f"{prefix} ⚠️ {colorstr('bold', 'Restart runtime or rerun command for updates to take effect')}\n"
- print(emojis(s)) # emoji-safe
-
-
-def check_img_size(img_size, s=32):
- # Verify img_size is a multiple of stride s
- new_size = make_divisible(img_size, int(s)) # ceil gs-multiple
- if new_size != img_size:
- print('WARNING: --img-size %g must be multiple of max stride %g, updating to %g' % (img_size, s, new_size))
- return new_size
-
-
-def check_imshow():
- # Check if environment supports image displays
- try:
- assert not is_docker(), 'cv2.imshow() is disabled in Docker environments'
- assert not is_colab(), 'cv2.imshow() is disabled in Google Colab environments'
- cv2.imshow('test', np.zeros((1, 1, 3)))
- cv2.waitKey(1)
- cv2.destroyAllWindows()
- cv2.waitKey(1)
- return True
- except Exception as e:
- print(f'WARNING: Environment does not support cv2.imshow() or PIL Image.show() image displays\n{e}')
- return False
-
-
-def check_file(file):
- # Search for file if not found
- if Path(file).is_file() or file == '':
- return file
- else:
- files = glob.glob('./**/' + file, recursive=True) # find file
- assert len(files), f'File Not Found: {file}' # assert file was found
- assert len(files) == 1, f"Multiple files match '{file}', specify exact path: {files}" # assert unique
- return files[0] # return file
-
-
-def check_dataset(dict):
- # Download dataset if not found locally
- val, s = dict.get('val'), dict.get('download')
- if val and len(val):
- val = [Path(x).resolve() for x in (val if isinstance(val, list) else [val])] # val path
- if not all(x.exists() for x in val):
- print('\nWARNING: Dataset not found, nonexistent paths: %s' % [str(x) for x in val if not x.exists()])
- if s and len(s): # download script
- if s.startswith('http') and s.endswith('.zip'): # URL
- f = Path(s).name # filename
- print(f'Downloading {s} ...')
- torch.hub.download_url_to_file(s, f)
- r = os.system(f'unzip -q {f} -d ../ && rm {f}') # unzip
- elif s.startswith('bash '): # bash script
- print(f'Running {s} ...')
- r = os.system(s)
- else: # python script
- r = exec(s) # return None
- print('Dataset autodownload %s\n' % ('success' if r in (0, None) else 'failure')) # print result
- else:
- raise Exception('Dataset not found.')
-
-
-def download(url, dir='.', unzip=True, delete=True, curl=False, threads=1):
- # Multi-threaded file download and unzip function
- def download_one(url, dir):
- # Download 1 file
- f = dir / Path(url).name # filename
- if not f.exists():
- print(f'Downloading {url} to {f}...')
- if curl:
- os.system(f"curl -L '{url}' -o '{f}' --retry 9 -C -") # curl download, retry and resume on fail
- else:
- torch.hub.download_url_to_file(url, f, progress=True) # torch download
- if unzip and f.suffix in ('.zip', '.gz'):
- print(f'Unzipping {f}...')
- if f.suffix == '.zip':
- s = f'unzip -qo {f} -d {dir} && rm {f}' # unzip -quiet -overwrite
- elif f.suffix == '.gz':
- s = f'tar xfz {f} --directory {f.parent}' # unzip
- if delete: # delete zip file after unzip
- s += f' && rm {f}'
- os.system(s)
-
- dir = Path(dir)
- dir.mkdir(parents=True, exist_ok=True) # make directory
- if threads > 1:
- pool = ThreadPool(threads)
- pool.imap(lambda x: download_one(*x), zip(url, repeat(dir))) # multi-threaded
- pool.close()
- pool.join()
- else:
- for u in tuple(url) if isinstance(url, str) else url:
- download_one(u, dir)
-
-
-def make_divisible(x, divisor):
- # Returns x evenly divisible by divisor
- return math.ceil(x / divisor) * divisor
-
-
-def clean_str(s):
- # Cleans a string by replacing special characters with underscore _
- return re.sub(pattern="[|@#!¡·$€%&()=?¿^*;:,¨´><+]", repl="_", string=s)
-
-
-def one_cycle(y1=0.0, y2=1.0, steps=100):
- # lambda function for sinusoidal ramp from y1 to y2
- return lambda x: ((1 - math.cos(x * math.pi / steps)) / 2) * (y2 - y1) + y1
-
-
-def colorstr(*input):
- # Colors a string https://en.wikipedia.org/wiki/ANSI_escape_code, i.e. colorstr('blue', 'hello world')
- *args, string = input if len(input) > 1 else ('blue', 'bold', input[0]) # color arguments, string
- colors = {'black': '\033[30m', # basic colors
- 'red': '\033[31m',
- 'green': '\033[32m',
- 'yellow': '\033[33m',
- 'blue': '\033[34m',
- 'magenta': '\033[35m',
- 'cyan': '\033[36m',
- 'white': '\033[37m',
- 'bright_black': '\033[90m', # bright colors
- 'bright_red': '\033[91m',
- 'bright_green': '\033[92m',
- 'bright_yellow': '\033[93m',
- 'bright_blue': '\033[94m',
- 'bright_magenta': '\033[95m',
- 'bright_cyan': '\033[96m',
- 'bright_white': '\033[97m',
- 'end': '\033[0m', # misc
- 'bold': '\033[1m',
- 'underline': '\033[4m'}
- return ''.join(colors[x] for x in args) + f'{string}' + colors['end']
-
-
-def labels_to_class_weights(labels, nc=80):
- # Get class weights (inverse frequency) from training labels
- if labels[0] is None: # no labels loaded
- return torch.Tensor()
-
- labels = np.concatenate(labels, 0) # labels.shape = (866643, 5) for COCO
- classes = labels[:, 0].astype(np.int) # labels = [class xywh]
- weights = np.bincount(classes, minlength=nc) # occurrences per class
-
- # Prepend gridpoint count (for uCE training)
- # gpi = ((320 / 32 * np.array([1, 2, 4])) ** 2 * 3).sum() # gridpoints per image
- # weights = np.hstack([gpi * len(labels) - weights.sum() * 9, weights * 9]) ** 0.5 # prepend gridpoints to start
-
- weights[weights == 0] = 1 # replace empty bins with 1
- weights = 1 / weights # number of targets per class
- weights /= weights.sum() # normalize
- return torch.from_numpy(weights)
-
-
-def labels_to_image_weights(labels, nc=80, class_weights=np.ones(80)):
- # Produces image weights based on class_weights and image contents
- class_counts = np.array([np.bincount(x[:, 0].astype(np.int), minlength=nc) for x in labels])
- image_weights = (class_weights.reshape(1, nc) * class_counts).sum(1)
- # index = random.choices(range(n), weights=image_weights, k=1) # weight image sample
- return image_weights
-
-
-def coco80_to_coco91_class(): # converts 80-index (val2014) to 91-index (paper)
- # https://tech.amikelive.com/node-718/what-object-categories-labels-are-in-coco-dataset/
- # a = np.loadtxt('data/coco.names', dtype='str', delimiter='\n')
- # b = np.loadtxt('data/coco_paper.names', dtype='str', delimiter='\n')
- # x1 = [list(a[i] == b).index(True) + 1 for i in range(80)] # darknet to coco
- # x2 = [list(b[i] == a).index(True) if any(b[i] == a) else None for i in range(91)] # coco to darknet
- x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 67, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 90]
- return x
-
-
-def xyxy2xywh(x):
- # Convert nx4 boxes from [x1, y1, x2, y2] to [x, y, w, h] where xy1=top-left, xy2=bottom-right
- y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x)
- y[:, 0] = (x[:, 0] + x[:, 2]) / 2 # x center
- y[:, 1] = (x[:, 1] + x[:, 3]) / 2 # y center
- y[:, 2] = x[:, 2] - x[:, 0] # width
- y[:, 3] = x[:, 3] - x[:, 1] # height
- return y
-
-
-def xywh2xyxy(x):
- # Convert nx4 boxes from [x, y, w, h] to [x1, y1, x2, y2] where xy1=top-left, xy2=bottom-right
- y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x)
- y[:, 0] = x[:, 0] - x[:, 2] / 2 # top left x
- y[:, 1] = x[:, 1] - x[:, 3] / 2 # top left y
- y[:, 2] = x[:, 0] + x[:, 2] / 2 # bottom right x
- y[:, 3] = x[:, 1] + x[:, 3] / 2 # bottom right y
- return y
-
-
-def xywhn2xyxy(x, w=640, h=640, padw=0, padh=0):
- # Convert nx4 boxes from [x, y, w, h] normalized to [x1, y1, x2, y2] where xy1=top-left, xy2=bottom-right
- y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x)
- y[:, 0] = w * (x[:, 0] - x[:, 2] / 2) + padw # top left x
- y[:, 1] = h * (x[:, 1] - x[:, 3] / 2) + padh # top left y
- y[:, 2] = w * (x[:, 0] + x[:, 2] / 2) + padw # bottom right x
- y[:, 3] = h * (x[:, 1] + x[:, 3] / 2) + padh # bottom right y
- return y
-
-
-def xyn2xy(x, w=640, h=640, padw=0, padh=0):
- # Convert normalized segments into pixel segments, shape (n,2)
- y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x)
- y[:, 0] = w * x[:, 0] + padw # top left x
- y[:, 1] = h * x[:, 1] + padh # top left y
- return y
-
-
-def segment2box(segment, width=640, height=640):
- # Convert 1 segment label to 1 box label, applying inside-image constraint, i.e. (xy1, xy2, ...) to (xyxy)
- x, y = segment.T # segment xy
- inside = (x >= 0) & (y >= 0) & (x <= width) & (y <= height)
- x, y, = x[inside], y[inside]
- return np.array([x.min(), y.min(), x.max(), y.max()]) if any(x) else np.zeros((1, 4)) # xyxy
-
-
-def segments2boxes(segments):
- # Convert segment labels to box labels, i.e. (cls, xy1, xy2, ...) to (cls, xywh)
- boxes = []
- for s in segments:
- x, y = s.T # segment xy
- boxes.append([x.min(), y.min(), x.max(), y.max()]) # cls, xyxy
- return xyxy2xywh(np.array(boxes)) # cls, xywh
-
-
-def resample_segments(segments, n=1000):
- # Up-sample an (n,2) segment
- for i, s in enumerate(segments):
- x = np.linspace(0, len(s) - 1, n)
- xp = np.arange(len(s))
- segments[i] = np.concatenate([np.interp(x, xp, s[:, i]) for i in range(2)]).reshape(2, -1).T # segment xy
- return segments
-
-
-def scale_coords(img1_shape, coords, img0_shape, ratio_pad=None):
- # Rescale coords (xyxy) from img1_shape to img0_shape
- if ratio_pad is None: # calculate from img0_shape
- gain = min(img1_shape[0] / img0_shape[0], img1_shape[1] / img0_shape[1]) # gain = old / new
- pad = (img1_shape[1] - img0_shape[1] * gain) / 2, (img1_shape[0] - img0_shape[0] * gain) / 2 # wh padding
- else:
- gain = ratio_pad[0][0]
- pad = ratio_pad[1]
-
- coords[:, [0, 2]] -= pad[0] # x padding
- coords[:, [1, 3]] -= pad[1] # y padding
- coords[:, :4] /= gain
- clip_coords(coords, img0_shape)
- return coords
-
-
-def clip_coords(boxes, img_shape):
- # Clip bounding xyxy bounding boxes to image shape (height, width)
- boxes[:, 0].clamp_(0, img_shape[1]) # x1
- boxes[:, 1].clamp_(0, img_shape[0]) # y1
- boxes[:, 2].clamp_(0, img_shape[1]) # x2
- boxes[:, 3].clamp_(0, img_shape[0]) # y2
-
-
-def bbox_iou(box1, box2, x1y1x2y2=True, GIoU=False, DIoU=False, CIoU=False, eps=1e-7):
- # Returns the IoU of box1 to box2. box1 is 4, box2 is nx4
- box2 = box2.T
-
- # Get the coordinates of bounding boxes
- if x1y1x2y2: # x1, y1, x2, y2 = box1
- b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3]
- b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3]
- else: # transform from xywh to xyxy
- b1_x1, b1_x2 = box1[0] - box1[2] / 2, box1[0] + box1[2] / 2
- b1_y1, b1_y2 = box1[1] - box1[3] / 2, box1[1] + box1[3] / 2
- b2_x1, b2_x2 = box2[0] - box2[2] / 2, box2[0] + box2[2] / 2
- b2_y1, b2_y2 = box2[1] - box2[3] / 2, box2[1] + box2[3] / 2
-
- # Intersection area
- inter = (torch.min(b1_x2, b2_x2) - torch.max(b1_x1, b2_x1)).clamp(0) * \
- (torch.min(b1_y2, b2_y2) - torch.max(b1_y1, b2_y1)).clamp(0)
-
- # Union Area
- w1, h1 = b1_x2 - b1_x1, b1_y2 - b1_y1 + eps
- w2, h2 = b2_x2 - b2_x1, b2_y2 - b2_y1 + eps
- union = w1 * h1 + w2 * h2 - inter + eps
-
- iou = inter / union
- if GIoU or DIoU or CIoU:
- cw = torch.max(b1_x2, b2_x2) - torch.min(b1_x1, b2_x1) # convex (smallest enclosing box) width
- ch = torch.max(b1_y2, b2_y2) - torch.min(b1_y1, b2_y1) # convex height
- if CIoU or DIoU: # Distance or Complete IoU https://arxiv.org/abs/1911.08287v1
- c2 = cw ** 2 + ch ** 2 + eps # convex diagonal squared
- rho2 = ((b2_x1 + b2_x2 - b1_x1 - b1_x2) ** 2 +
- (b2_y1 + b2_y2 - b1_y1 - b1_y2) ** 2) / 4 # center distance squared
- if DIoU:
- return iou - rho2 / c2 # DIoU
- elif CIoU: # https://github.com/Zzh-tju/DIoU-SSD-pytorch/blob/master/utils/box/box_utils.py#L47
- v = (4 / math.pi ** 2) * torch.pow(torch.atan(w2 / h2) - torch.atan(w1 / h1), 2)
- with torch.no_grad():
- alpha = v / (v - iou + (1 + eps))
- return iou - (rho2 / c2 + v * alpha) # CIoU
- else: # GIoU https://arxiv.org/pdf/1902.09630.pdf
- c_area = cw * ch + eps # convex area
- return iou - (c_area - union) / c_area # GIoU
- else:
- return iou # IoU
-
-
-def box_iou(box1, box2):
- # https://github.com/pytorch/vision/blob/master/torchvision/ops/boxes.py
- """
- Return intersection-over-union (Jaccard index) of boxes.
- Both sets of boxes are expected to be in (x1, y1, x2, y2) format.
- Arguments:
- box1 (Tensor[N, 4])
- box2 (Tensor[M, 4])
- Returns:
- iou (Tensor[N, M]): the NxM matrix containing the pairwise
- IoU values for every element in boxes1 and boxes2
- """
-
- def box_area(box):
- # box = 4xn
- return (box[2] - box[0]) * (box[3] - box[1])
-
- area1 = box_area(box1.T)
- area2 = box_area(box2.T)
-
- # inter(N,M) = (rb(N,M,2) - lt(N,M,2)).clamp(0).prod(2)
- inter = (torch.min(box1[:, None, 2:], box2[:, 2:]) - torch.max(box1[:, None, :2], box2[:, :2])).clamp(0).prod(2)
- return inter / (area1[:, None] + area2 - inter) # iou = inter / (area1 + area2 - inter)
-
-
-def wh_iou(wh1, wh2):
- # Returns the nxm IoU matrix. wh1 is nx2, wh2 is mx2
- wh1 = wh1[:, None] # [N,1,2]
- wh2 = wh2[None] # [1,M,2]
- inter = torch.min(wh1, wh2).prod(2) # [N,M]
- return inter / (wh1.prod(2) + wh2.prod(2) - inter) # iou = inter / (area1 + area2 - inter)
-
-
-def non_max_suppression(prediction, conf_thres=0.25, iou_thres=0.45, classes=None, agnostic=False, multi_label=False,
- labels=(), max_det=300):
- """Runs Non-Maximum Suppression (NMS) on inference results
-
- Returns:
- list of detections, on (n,6) tensor per image [xyxy, conf, cls]
- """
-
- nc = prediction.shape[2] - 5 # number of classes
- xc = prediction[..., 4] > conf_thres # candidates
-
- # Checks
- assert 0 <= conf_thres <= 1, f'Invalid Confidence threshold {conf_thres}, valid values are between 0.0 and 1.0'
- assert 0 <= iou_thres <= 1, f'Invalid IoU {iou_thres}, valid values are between 0.0 and 1.0'
-
- # Settings
- min_wh, max_wh = 2, 4096 # (pixels) minimum and maximum box width and height
- max_nms = 30000 # maximum number of boxes into torchvision.ops.nms()
- time_limit = 10.0 # seconds to quit after
- redundant = True # require redundant detections
- multi_label &= nc > 1 # multiple labels per box (adds 0.5ms/img)
- merge = False # use merge-NMS
-
- t = time.time()
- output = [torch.zeros((0, 6), device=prediction.device)] * prediction.shape[0]
- for xi, x in enumerate(prediction): # image index, image inference
- # Apply constraints
- # x[((x[..., 2:4] < min_wh) | (x[..., 2:4] > max_wh)).any(1), 4] = 0 # width-height
- x = x[xc[xi]] # confidence
-
- # Cat apriori labels if autolabelling
- if labels and len(labels[xi]):
- l = labels[xi]
- v = torch.zeros((len(l), nc + 5), device=x.device)
- v[:, :4] = l[:, 1:5] # box
- v[:, 4] = 1.0 # conf
- v[range(len(l)), l[:, 0].long() + 5] = 1.0 # cls
- x = torch.cat((x, v), 0)
-
- # If none remain process next image
- if not x.shape[0]:
- continue
-
- # Compute conf
- x[:, 5:] *= x[:, 4:5] # conf = obj_conf * cls_conf
-
- # Box (center x, center y, width, height) to (x1, y1, x2, y2)
- box = xywh2xyxy(x[:, :4])
-
- # Detections matrix nx6 (xyxy, conf, cls)
- if multi_label:
- i, j = (x[:, 5:] > conf_thres).nonzero(as_tuple=False).T
- x = torch.cat((box[i], x[i, j + 5, None], j[:, None].float()), 1)
- else: # best class only
- conf, j = x[:, 5:].max(1, keepdim=True)
- x = torch.cat((box, conf, j.float()), 1)[conf.view(-1) > conf_thres]
-
- # Filter by class
- if classes is not None:
- x = x[(x[:, 5:6] == torch.tensor(classes, device=x.device)).any(1)]
-
- # Apply finite constraint
- # if not torch.isfinite(x).all():
- # x = x[torch.isfinite(x).all(1)]
-
- # Check shape
- n = x.shape[0] # number of boxes
- if not n: # no boxes
- continue
- elif n > max_nms: # excess boxes
- x = x[x[:, 4].argsort(descending=True)[:max_nms]] # sort by confidence
-
- # Batched NMS
- c = x[:, 5:6] * (0 if agnostic else max_wh) # classes
- boxes, scores = x[:, :4] + c, x[:, 4] # boxes (offset by class), scores
- i = torchvision.ops.nms(boxes, scores, iou_thres) # NMS
- if i.shape[0] > max_det: # limit detections
- i = i[:max_det]
- if merge and (1 < n < 3E3): # Merge NMS (boxes merged using weighted mean)
- # update boxes as boxes(i,4) = weights(i,n) * boxes(n,4)
- iou = box_iou(boxes[i], boxes) > iou_thres # iou matrix
- weights = iou * scores[None] # box weights
- x[i, :4] = torch.mm(weights, x[:, :4]).float() / weights.sum(1, keepdim=True) # merged boxes
- if redundant:
- i = i[iou.sum(1) > 1] # require redundancy
-
- output[xi] = x[i]
- if (time.time() - t) > time_limit:
- print(f'WARNING: NMS time limit {time_limit}s exceeded')
- break # time limit exceeded
-
- return output
-
-
-def strip_optimizer(f='best.pt', s=''): # from utils.general import *; strip_optimizer()
- # Strip optimizer from 'f' to finalize training, optionally save as 's'
- x = torch.load(f, map_location=torch.device('cpu'))
- if x.get('ema'):
- x['model'] = x['ema'] # replace model with ema
- for k in 'optimizer', 'training_results', 'wandb_id', 'ema', 'updates': # keys
- x[k] = None
- x['epoch'] = -1
- x['model'].half() # to FP16
- for p in x['model'].parameters():
- p.requires_grad = False
- torch.save(x, s or f)
- mb = os.path.getsize(s or f) / 1E6 # filesize
- print(f"Optimizer stripped from {f},{(' saved as %s,' % s) if s else ''} {mb:.1f}MB")
-
-
-def print_mutation(hyp, results, yaml_file='hyp_evolved.yaml', bucket=''):
- # Print mutation results to evolve.txt (for use with train.py --evolve)
- a = '%10s' * len(hyp) % tuple(hyp.keys()) # hyperparam keys
- b = '%10.3g' * len(hyp) % tuple(hyp.values()) # hyperparam values
- c = '%10.4g' * len(results) % results # results (P, R, mAP@0.5, mAP@0.5:0.95, val_losses x 3)
- print('\n%s\n%s\nEvolved fitness: %s\n' % (a, b, c))
-
- if bucket:
- url = 'gs://%s/evolve.txt' % bucket
- if gsutil_getsize(url) > (os.path.getsize('evolve.txt') if os.path.exists('evolve.txt') else 0):
- os.system('gsutil cp %s .' % url) # download evolve.txt if larger than local
-
- with open('evolve.txt', 'a') as f: # append result
- f.write(c + b + '\n')
- x = np.unique(np.loadtxt('evolve.txt', ndmin=2), axis=0) # load unique rows
- x = x[np.argsort(-fitness(x))] # sort
- np.savetxt('evolve.txt', x, '%10.3g') # save sort by fitness
-
- # Save yaml
- for i, k in enumerate(hyp.keys()):
- hyp[k] = float(x[0, i + 7])
- with open(yaml_file, 'w') as f:
- results = tuple(x[0, :7])
- c = '%10.4g' * len(results) % results # results (P, R, mAP@0.5, mAP@0.5:0.95, val_losses x 3)
- f.write('# Hyperparameter Evolution Results\n# Generations: %g\n# Metrics: ' % len(x) + c + '\n\n')
- yaml.safe_dump(hyp, f, sort_keys=False)
-
- if bucket:
- os.system('gsutil cp evolve.txt %s gs://%s' % (yaml_file, bucket)) # upload
-
-
-def apply_classifier(x, model, img, im0):
- # Apply a second stage classifier to yolo outputs
- im0 = [im0] if isinstance(im0, np.ndarray) else im0
- for i, d in enumerate(x): # per image
- if d is not None and len(d):
- d = d.clone()
-
- # Reshape and pad cutouts
- b = xyxy2xywh(d[:, :4]) # boxes
- b[:, 2:] = b[:, 2:].max(1)[0].unsqueeze(1) # rectangle to square
- b[:, 2:] = b[:, 2:] * 1.3 + 30 # pad
- d[:, :4] = xywh2xyxy(b).long()
-
- # Rescale boxes from img_size to im0 size
- scale_coords(img.shape[2:], d[:, :4], im0[i].shape)
-
- # Classes
- pred_cls1 = d[:, 5].long()
- ims = []
- for j, a in enumerate(d): # per item
- cutout = im0[i][int(a[1]):int(a[3]), int(a[0]):int(a[2])]
- im = cv2.resize(cutout, (224, 224)) # BGR
- # cv2.imwrite('test%i.jpg' % j, cutout)
-
- im = im[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416
- im = np.ascontiguousarray(im, dtype=np.float32) # uint8 to float32
- im /= 255.0 # 0 - 255 to 0.0 - 1.0
- ims.append(im)
-
- pred_cls2 = model(torch.Tensor(ims).to(d.device)).argmax(1) # classifier prediction
- x[i] = x[i][pred_cls1 == pred_cls2] # retain matching class detections
-
- return x
-
-
-def save_one_box(xyxy, im, file='image.jpg', gain=1.02, pad=10, square=False, BGR=False, save=True):
- # Save image crop as {file} with crop size multiple {gain} and {pad} pixels. Save and/or return crop
- xyxy = torch.tensor(xyxy).view(-1, 4)
- b = xyxy2xywh(xyxy) # boxes
- if square:
- b[:, 2:] = b[:, 2:].max(1)[0].unsqueeze(1) # attempt rectangle to square
- b[:, 2:] = b[:, 2:] * gain + pad # box wh * gain + pad
- xyxy = xywh2xyxy(b).long()
- clip_coords(xyxy, im.shape)
- crop = im[int(xyxy[0, 1]):int(xyxy[0, 3]), int(xyxy[0, 0]):int(xyxy[0, 2]), ::(1 if BGR else -1)]
- if save:
- cv2.imwrite(str(increment_path(file, mkdir=True).with_suffix('.jpg')), crop)
- return crop
-
-
-def increment_path(path, exist_ok=False, sep='', mkdir=False):
- # Increment file or directory path, i.e. runs/exp --> runs/exp{sep}2, runs/exp{sep}3, ... etc.
- path = Path(path) # os-agnostic
- if path.exists() and not exist_ok:
- suffix = path.suffix
- path = path.with_suffix('')
- dirs = glob.glob(f"{path}{sep}*") # similar paths
- matches = [re.search(rf"%s{sep}(\d+)" % path.stem, d) for d in dirs]
- i = [int(m.groups()[0]) for m in matches if m] # indices
- n = max(i) + 1 if i else 2 # increment number
- path = Path(f"{path}{sep}{n}{suffix}") # update path
- dir = path if path.suffix == '' else path.parent # directory
- if not dir.exists() and mkdir:
- dir.mkdir(parents=True, exist_ok=True) # make directory
- return path
diff --git a/Yolov5-Deepsort/utils/google_app_engine/Dockerfile b/Yolov5-Deepsort/utils/google_app_engine/Dockerfile
deleted file mode 100644
index 0155618f475104e9858b81470339558156c94e13..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/google_app_engine/Dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-FROM gcr.io/google-appengine/python
-
-# Create a virtualenv for dependencies. This isolates these packages from
-# system-level packages.
-# Use -p python3 or -p python3.7 to select python version. Default is version 2.
-RUN virtualenv /env -p python3
-
-# Setting these environment variables are the same as running
-# source /env/bin/activate.
-ENV VIRTUAL_ENV /env
-ENV PATH /env/bin:$PATH
-
-RUN apt-get update && apt-get install -y python-opencv
-
-# Copy the application's requirements.txt and run pip to install all
-# dependencies into the virtualenv.
-ADD requirements.txt /app/requirements.txt
-RUN pip install -r /app/requirements.txt
-
-# Add the application source code.
-ADD . /app
-
-# Run a WSGI server to serve the application. gunicorn must be declared as
-# a dependency in requirements.txt.
-CMD gunicorn -b :$PORT main:app
diff --git a/Yolov5-Deepsort/utils/google_app_engine/additional_requirements.txt b/Yolov5-Deepsort/utils/google_app_engine/additional_requirements.txt
deleted file mode 100644
index 5fcc30524a59ca2d3356b07725df7e2b64f81422..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/google_app_engine/additional_requirements.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# add these requirements in your app on top of the existing ones
-pip==18.1
-Flask==1.0.2
-gunicorn==19.9.0
diff --git a/Yolov5-Deepsort/utils/google_app_engine/app.yaml b/Yolov5-Deepsort/utils/google_app_engine/app.yaml
deleted file mode 100644
index ac29d104b144abd634482b35282725d694e84a2b..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/google_app_engine/app.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-runtime: custom
-env: flex
-
-service: yolov5app
-
-liveness_check:
- initial_delay_sec: 600
-
-manual_scaling:
- instances: 1
-resources:
- cpu: 1
- memory_gb: 4
- disk_size_gb: 20
\ No newline at end of file
diff --git a/Yolov5-Deepsort/utils/google_utils.py b/Yolov5-Deepsort/utils/google_utils.py
deleted file mode 100644
index 63d3e5b212f3813847eeeb5cd6524155a7058f27..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/google_utils.py
+++ /dev/null
@@ -1,127 +0,0 @@
-# Google utils: https://cloud.google.com/storage/docs/reference/libraries
-
-import os
-import platform
-import subprocess
-import time
-from pathlib import Path
-
-import requests
-import torch
-
-
-def gsutil_getsize(url=''):
- # gs://bucket/file size https://cloud.google.com/storage/docs/gsutil/commands/du
- s = subprocess.check_output(f'gsutil du {url}', shell=True).decode('utf-8')
- return eval(s.split(' ')[0]) if len(s) else 0 # bytes
-
-
-def attempt_download(file, repo='ultralytics/yolov5'):
- # Attempt file download if does not exist
- file = Path(str(file).strip().replace("'", ''))
-
- if not file.exists():
- file.parent.mkdir(parents=True, exist_ok=True) # make parent dir (if required)
- try:
- response = requests.get(f'https://api.github.com/repos/{repo}/releases/latest').json() # github api
- assets = [x['name'] for x in response['assets']] # release assets, i.e. ['yolov5s.pt', 'yolov5m.pt', ...]
- tag = response['tag_name'] # i.e. 'v1.0'
- except: # fallback plan
- assets = ['yolov5s.pt', 'yolov5m.pt', 'yolov5l.pt', 'yolov5x.pt',
- 'yolov5s6.pt', 'yolov5m6.pt', 'yolov5l6.pt', 'yolov5x6.pt']
- try:
- tag = subprocess.check_output('git tag', shell=True, stderr=subprocess.STDOUT).decode().split()[-1]
- except:
- tag = 'v5.0' # current release
-
- name = file.name
- if name in assets:
- msg = f'{file} missing, try downloading from https://github.com/{repo}/releases/'
- redundant = False # second download option
- try: # GitHub
- url = f'https://github.com/{repo}/releases/download/{tag}/{name}'
- print(f'Downloading {url} to {file}...')
- torch.hub.download_url_to_file(url, file)
- assert file.exists() and file.stat().st_size > 1E6 # check
- except Exception as e: # GCP
- print(f'Download error: {e}')
- assert redundant, 'No secondary mirror'
- url = f'https://storage.googleapis.com/{repo}/ckpt/{name}'
- print(f'Downloading {url} to {file}...')
- os.system(f"curl -L '{url}' -o '{file}' --retry 3 -C -") # curl download, retry and resume on fail
- finally:
- if not file.exists() or file.stat().st_size < 1E6: # check
- file.unlink(missing_ok=True) # remove partial downloads
- print(f'ERROR: Download failure: {msg}')
- print('')
- return
-
-
-def gdrive_download(id='16TiPfZj7htmTyhntwcZyEEAejOUxuT6m', file='tmp.zip'):
- # Downloads a file from Google Drive. from yolov5.utils.google_utils import *; gdrive_download()
- t = time.time()
- file = Path(file)
- cookie = Path('cookie') # gdrive cookie
- print(f'Downloading https://drive.google.com/uc?export=download&id={id} as {file}... ', end='')
- file.unlink(missing_ok=True) # remove existing file
- cookie.unlink(missing_ok=True) # remove existing cookie
-
- # Attempt file download
- out = "NUL" if platform.system() == "Windows" else "/dev/null"
- os.system(f'curl -c ./cookie -s -L "drive.google.com/uc?export=download&id={id}" > {out}')
- if os.path.exists('cookie'): # large file
- s = f'curl -Lb ./cookie "drive.google.com/uc?export=download&confirm={get_token()}&id={id}" -o {file}'
- else: # small file
- s = f'curl -s -L -o {file} "drive.google.com/uc?export=download&id={id}"'
- r = os.system(s) # execute, capture return
- cookie.unlink(missing_ok=True) # remove existing cookie
-
- # Error check
- if r != 0:
- file.unlink(missing_ok=True) # remove partial
- print('Download error ') # raise Exception('Download error')
- return r
-
- # Unzip if archive
- if file.suffix == '.zip':
- print('unzipping... ', end='')
- os.system(f'unzip -q {file}') # unzip
- file.unlink() # remove zip to free space
-
- print(f'Done ({time.time() - t:.1f}s)')
- return r
-
-
-def get_token(cookie="./cookie"):
- with open(cookie) as f:
- for line in f:
- if "download" in line:
- return line.split()[-1]
- return ""
-
-# def upload_blob(bucket_name, source_file_name, destination_blob_name):
-# # Uploads a file to a bucket
-# # https://cloud.google.com/storage/docs/uploading-objects#storage-upload-object-python
-#
-# storage_client = storage.Client()
-# bucket = storage_client.get_bucket(bucket_name)
-# blob = bucket.blob(destination_blob_name)
-#
-# blob.upload_from_filename(source_file_name)
-#
-# print('File {} uploaded to {}.'.format(
-# source_file_name,
-# destination_blob_name))
-#
-#
-# def download_blob(bucket_name, source_blob_name, destination_file_name):
-# # Uploads a blob from a bucket
-# storage_client = storage.Client()
-# bucket = storage_client.get_bucket(bucket_name)
-# blob = bucket.blob(source_blob_name)
-#
-# blob.download_to_filename(destination_file_name)
-#
-# print('Blob {} downloaded to {}.'.format(
-# source_blob_name,
-# destination_file_name))
diff --git a/Yolov5-Deepsort/utils/loss.py b/Yolov5-Deepsort/utils/loss.py
deleted file mode 100644
index 9e78df17fdf31c23c70a5d1fce8b17fb7b78726a..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/loss.py
+++ /dev/null
@@ -1,216 +0,0 @@
-# Loss functions
-
-import torch
-import torch.nn as nn
-
-from utils.general import bbox_iou
-from utils.torch_utils import is_parallel
-
-
-def smooth_BCE(eps=0.1): # https://github.com/ultralytics/yolov3/issues/238#issuecomment-598028441
- # return positive, negative label smoothing BCE targets
- return 1.0 - 0.5 * eps, 0.5 * eps
-
-
-class BCEBlurWithLogitsLoss(nn.Module):
- # BCEwithLogitLoss() with reduced missing label effects.
- def __init__(self, alpha=0.05):
- super(BCEBlurWithLogitsLoss, self).__init__()
- self.loss_fcn = nn.BCEWithLogitsLoss(reduction='none') # must be nn.BCEWithLogitsLoss()
- self.alpha = alpha
-
- def forward(self, pred, true):
- loss = self.loss_fcn(pred, true)
- pred = torch.sigmoid(pred) # prob from logits
- dx = pred - true # reduce only missing label effects
- # dx = (pred - true).abs() # reduce missing label and false label effects
- alpha_factor = 1 - torch.exp((dx - 1) / (self.alpha + 1e-4))
- loss *= alpha_factor
- return loss.mean()
-
-
-class FocalLoss(nn.Module):
- # Wraps focal loss around existing loss_fcn(), i.e. criteria = FocalLoss(nn.BCEWithLogitsLoss(), gamma=1.5)
- def __init__(self, loss_fcn, gamma=1.5, alpha=0.25):
- super(FocalLoss, self).__init__()
- self.loss_fcn = loss_fcn # must be nn.BCEWithLogitsLoss()
- self.gamma = gamma
- self.alpha = alpha
- self.reduction = loss_fcn.reduction
- self.loss_fcn.reduction = 'none' # required to apply FL to each element
-
- def forward(self, pred, true):
- loss = self.loss_fcn(pred, true)
- # p_t = torch.exp(-loss)
- # loss *= self.alpha * (1.000001 - p_t) ** self.gamma # non-zero power for gradient stability
-
- # TF implementation https://github.com/tensorflow/addons/blob/v0.7.1/tensorflow_addons/losses/focal_loss.py
- pred_prob = torch.sigmoid(pred) # prob from logits
- p_t = true * pred_prob + (1 - true) * (1 - pred_prob)
- alpha_factor = true * self.alpha + (1 - true) * (1 - self.alpha)
- modulating_factor = (1.0 - p_t) ** self.gamma
- loss *= alpha_factor * modulating_factor
-
- if self.reduction == 'mean':
- return loss.mean()
- elif self.reduction == 'sum':
- return loss.sum()
- else: # 'none'
- return loss
-
-
-class QFocalLoss(nn.Module):
- # Wraps Quality focal loss around existing loss_fcn(), i.e. criteria = FocalLoss(nn.BCEWithLogitsLoss(), gamma=1.5)
- def __init__(self, loss_fcn, gamma=1.5, alpha=0.25):
- super(QFocalLoss, self).__init__()
- self.loss_fcn = loss_fcn # must be nn.BCEWithLogitsLoss()
- self.gamma = gamma
- self.alpha = alpha
- self.reduction = loss_fcn.reduction
- self.loss_fcn.reduction = 'none' # required to apply FL to each element
-
- def forward(self, pred, true):
- loss = self.loss_fcn(pred, true)
-
- pred_prob = torch.sigmoid(pred) # prob from logits
- alpha_factor = true * self.alpha + (1 - true) * (1 - self.alpha)
- modulating_factor = torch.abs(true - pred_prob) ** self.gamma
- loss *= alpha_factor * modulating_factor
-
- if self.reduction == 'mean':
- return loss.mean()
- elif self.reduction == 'sum':
- return loss.sum()
- else: # 'none'
- return loss
-
-
-class ComputeLoss:
- # Compute losses
- def __init__(self, model, autobalance=False):
- super(ComputeLoss, self).__init__()
- device = next(model.parameters()).device # get model device
- h = model.hyp # hyperparameters
-
- # Define criteria
- BCEcls = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['cls_pw']], device=device))
- BCEobj = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['obj_pw']], device=device))
-
- # Class label smoothing https://arxiv.org/pdf/1902.04103.pdf eqn 3
- self.cp, self.cn = smooth_BCE(eps=h.get('label_smoothing', 0.0)) # positive, negative BCE targets
-
- # Focal loss
- g = h['fl_gamma'] # focal loss gamma
- if g > 0:
- BCEcls, BCEobj = FocalLoss(BCEcls, g), FocalLoss(BCEobj, g)
-
- det = model.module.model[-1] if is_parallel(model) else model.model[-1] # Detect() module
- self.balance = {3: [4.0, 1.0, 0.4]}.get(det.nl, [4.0, 1.0, 0.25, 0.06, .02]) # P3-P7
- self.ssi = list(det.stride).index(16) if autobalance else 0 # stride 16 index
- self.BCEcls, self.BCEobj, self.gr, self.hyp, self.autobalance = BCEcls, BCEobj, model.gr, h, autobalance
- for k in 'na', 'nc', 'nl', 'anchors':
- setattr(self, k, getattr(det, k))
-
- def __call__(self, p, targets): # predictions, targets, model
- device = targets.device
- lcls, lbox, lobj = torch.zeros(1, device=device), torch.zeros(1, device=device), torch.zeros(1, device=device)
- tcls, tbox, indices, anchors = self.build_targets(p, targets) # targets
-
- # Losses
- for i, pi in enumerate(p): # layer index, layer predictions
- b, a, gj, gi = indices[i] # image, anchor, gridy, gridx
- tobj = torch.zeros_like(pi[..., 0], device=device) # target obj
-
- n = b.shape[0] # number of targets
- if n:
- ps = pi[b, a, gj, gi] # prediction subset corresponding to targets
-
- # Regression
- pxy = ps[:, :2].sigmoid() * 2. - 0.5
- pwh = (ps[:, 2:4].sigmoid() * 2) ** 2 * anchors[i]
- pbox = torch.cat((pxy, pwh), 1) # predicted box
- iou = bbox_iou(pbox.T, tbox[i], x1y1x2y2=False, CIoU=True) # iou(prediction, target)
- lbox += (1.0 - iou).mean() # iou loss
-
- # Objectness
- tobj[b, a, gj, gi] = (1.0 - self.gr) + self.gr * iou.detach().clamp(0).type(tobj.dtype) # iou ratio
-
- # Classification
- if self.nc > 1: # cls loss (only if multiple classes)
- t = torch.full_like(ps[:, 5:], self.cn, device=device) # targets
- t[range(n), tcls[i]] = self.cp
- lcls += self.BCEcls(ps[:, 5:], t) # BCE
-
- # Append targets to text file
- # with open('targets.txt', 'a') as file:
- # [file.write('%11.5g ' * 4 % tuple(x) + '\n') for x in torch.cat((txy[i], twh[i]), 1)]
-
- obji = self.BCEobj(pi[..., 4], tobj)
- lobj += obji * self.balance[i] # obj loss
- if self.autobalance:
- self.balance[i] = self.balance[i] * 0.9999 + 0.0001 / obji.detach().item()
-
- if self.autobalance:
- self.balance = [x / self.balance[self.ssi] for x in self.balance]
- lbox *= self.hyp['box']
- lobj *= self.hyp['obj']
- lcls *= self.hyp['cls']
- bs = tobj.shape[0] # batch size
-
- loss = lbox + lobj + lcls
- return loss * bs, torch.cat((lbox, lobj, lcls, loss)).detach()
-
- def build_targets(self, p, targets):
- # Build targets for compute_loss(), input targets(image,class,x,y,w,h)
- na, nt = self.na, targets.shape[0] # number of anchors, targets
- tcls, tbox, indices, anch = [], [], [], []
- gain = torch.ones(7, device=targets.device) # normalized to gridspace gain
- ai = torch.arange(na, device=targets.device).float().view(na, 1).repeat(1, nt) # same as .repeat_interleave(nt)
- targets = torch.cat((targets.repeat(na, 1, 1), ai[:, :, None]), 2) # append anchor indices
-
- g = 0.5 # bias
- off = torch.tensor([[0, 0],
- [1, 0], [0, 1], [-1, 0], [0, -1], # j,k,l,m
- # [1, 1], [1, -1], [-1, 1], [-1, -1], # jk,jm,lk,lm
- ], device=targets.device).float() * g # offsets
-
- for i in range(self.nl):
- anchors = self.anchors[i]
- gain[2:6] = torch.tensor(p[i].shape)[[3, 2, 3, 2]] # xyxy gain
-
- # Match targets to anchors
- t = targets * gain
- if nt:
- # Matches
- r = t[:, :, 4:6] / anchors[:, None] # wh ratio
- j = torch.max(r, 1. / r).max(2)[0] < self.hyp['anchor_t'] # compare
- # j = wh_iou(anchors, t[:, 4:6]) > model.hyp['iou_t'] # iou(3,n)=wh_iou(anchors(3,2), gwh(n,2))
- t = t[j] # filter
-
- # Offsets
- gxy = t[:, 2:4] # grid xy
- gxi = gain[[2, 3]] - gxy # inverse
- j, k = ((gxy % 1. < g) & (gxy > 1.)).T
- l, m = ((gxi % 1. < g) & (gxi > 1.)).T
- j = torch.stack((torch.ones_like(j), j, k, l, m))
- t = t.repeat((5, 1, 1))[j]
- offsets = (torch.zeros_like(gxy)[None] + off[:, None])[j]
- else:
- t = targets[0]
- offsets = 0
-
- # Define
- b, c = t[:, :2].long().T # image, class
- gxy = t[:, 2:4] # grid xy
- gwh = t[:, 4:6] # grid wh
- gij = (gxy - offsets).long()
- gi, gj = gij.T # grid xy indices
-
- # Append
- a = t[:, 6].long() # anchor indices
- indices.append((b, a, gj.clamp_(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1))) # image, anchor, grid indices
- tbox.append(torch.cat((gxy - gij, gwh), 1)) # box
- anch.append(anchors[a]) # anchors
- tcls.append(c) # class
-
- return tcls, tbox, indices, anch
diff --git a/Yolov5-Deepsort/utils/metrics.py b/Yolov5-Deepsort/utils/metrics.py
deleted file mode 100644
index 323c84b6c873c87a3530a3caec60982a7d83a3b8..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/metrics.py
+++ /dev/null
@@ -1,223 +0,0 @@
-# Model validation metrics
-
-from pathlib import Path
-
-import matplotlib.pyplot as plt
-import numpy as np
-import torch
-
-from . import general
-
-
-def fitness(x):
- # Model fitness as a weighted combination of metrics
- w = [0.0, 0.0, 0.1, 0.9] # weights for [P, R, mAP@0.5, mAP@0.5:0.95]
- return (x[:, :4] * w).sum(1)
-
-
-def ap_per_class(tp, conf, pred_cls, target_cls, plot=False, save_dir='.', names=()):
- """ Compute the average precision, given the recall and precision curves.
- Source: https://github.com/rafaelpadilla/Object-Detection-Metrics.
- # Arguments
- tp: True positives (nparray, nx1 or nx10).
- conf: Objectness value from 0-1 (nparray).
- pred_cls: Predicted object classes (nparray).
- target_cls: True object classes (nparray).
- plot: Plot precision-recall curve at mAP@0.5
- save_dir: Plot save directory
- # Returns
- The average precision as computed in py-faster-rcnn.
- """
-
- # Sort by objectness
- i = np.argsort(-conf)
- tp, conf, pred_cls = tp[i], conf[i], pred_cls[i]
-
- # Find unique classes
- unique_classes = np.unique(target_cls)
- nc = unique_classes.shape[0] # number of classes, number of detections
-
- # Create Precision-Recall curve and compute AP for each class
- px, py = np.linspace(0, 1, 1000), [] # for plotting
- ap, p, r = np.zeros((nc, tp.shape[1])), np.zeros((nc, 1000)), np.zeros((nc, 1000))
- for ci, c in enumerate(unique_classes):
- i = pred_cls == c
- n_l = (target_cls == c).sum() # number of labels
- n_p = i.sum() # number of predictions
-
- if n_p == 0 or n_l == 0:
- continue
- else:
- # Accumulate FPs and TPs
- fpc = (1 - tp[i]).cumsum(0)
- tpc = tp[i].cumsum(0)
-
- # Recall
- recall = tpc / (n_l + 1e-16) # recall curve
- r[ci] = np.interp(-px, -conf[i], recall[:, 0], left=0) # negative x, xp because xp decreases
-
- # Precision
- precision = tpc / (tpc + fpc) # precision curve
- p[ci] = np.interp(-px, -conf[i], precision[:, 0], left=1) # p at pr_score
-
- # AP from recall-precision curve
- for j in range(tp.shape[1]):
- ap[ci, j], mpre, mrec = compute_ap(recall[:, j], precision[:, j])
- if plot and j == 0:
- py.append(np.interp(px, mrec, mpre)) # precision at mAP@0.5
-
- # Compute F1 (harmonic mean of precision and recall)
- f1 = 2 * p * r / (p + r + 1e-16)
- if plot:
- plot_pr_curve(px, py, ap, Path(save_dir) / 'PR_curve.png', names)
- plot_mc_curve(px, f1, Path(save_dir) / 'F1_curve.png', names, ylabel='F1')
- plot_mc_curve(px, p, Path(save_dir) / 'P_curve.png', names, ylabel='Precision')
- plot_mc_curve(px, r, Path(save_dir) / 'R_curve.png', names, ylabel='Recall')
-
- i = f1.mean(0).argmax() # max F1 index
- return p[:, i], r[:, i], ap, f1[:, i], unique_classes.astype('int32')
-
-
-def compute_ap(recall, precision):
- """ Compute the average precision, given the recall and precision curves
- # Arguments
- recall: The recall curve (list)
- precision: The precision curve (list)
- # Returns
- Average precision, precision curve, recall curve
- """
-
- # Append sentinel values to beginning and end
- mrec = np.concatenate(([0.], recall, [recall[-1] + 0.01]))
- mpre = np.concatenate(([1.], precision, [0.]))
-
- # Compute the precision envelope
- mpre = np.flip(np.maximum.accumulate(np.flip(mpre)))
-
- # Integrate area under curve
- method = 'interp' # methods: 'continuous', 'interp'
- if method == 'interp':
- x = np.linspace(0, 1, 101) # 101-point interp (COCO)
- ap = np.trapz(np.interp(x, mrec, mpre), x) # integrate
- else: # 'continuous'
- i = np.where(mrec[1:] != mrec[:-1])[0] # points where x axis (recall) changes
- ap = np.sum((mrec[i + 1] - mrec[i]) * mpre[i + 1]) # area under curve
-
- return ap, mpre, mrec
-
-
-class ConfusionMatrix:
- # Updated version of https://github.com/kaanakan/object_detection_confusion_matrix
- def __init__(self, nc, conf=0.25, iou_thres=0.45):
- self.matrix = np.zeros((nc + 1, nc + 1))
- self.nc = nc # number of classes
- self.conf = conf
- self.iou_thres = iou_thres
-
- def process_batch(self, detections, labels):
- """
- Return intersection-over-union (Jaccard index) of boxes.
- Both sets of boxes are expected to be in (x1, y1, x2, y2) format.
- Arguments:
- detections (Array[N, 6]), x1, y1, x2, y2, conf, class
- labels (Array[M, 5]), class, x1, y1, x2, y2
- Returns:
- None, updates confusion matrix accordingly
- """
- detections = detections[detections[:, 4] > self.conf]
- gt_classes = labels[:, 0].int()
- detection_classes = detections[:, 5].int()
- iou = general.box_iou(labels[:, 1:], detections[:, :4])
-
- x = torch.where(iou > self.iou_thres)
- if x[0].shape[0]:
- matches = torch.cat((torch.stack(x, 1), iou[x[0], x[1]][:, None]), 1).cpu().numpy()
- if x[0].shape[0] > 1:
- matches = matches[matches[:, 2].argsort()[::-1]]
- matches = matches[np.unique(matches[:, 1], return_index=True)[1]]
- matches = matches[matches[:, 2].argsort()[::-1]]
- matches = matches[np.unique(matches[:, 0], return_index=True)[1]]
- else:
- matches = np.zeros((0, 3))
-
- n = matches.shape[0] > 0
- m0, m1, _ = matches.transpose().astype(np.int16)
- for i, gc in enumerate(gt_classes):
- j = m0 == i
- if n and sum(j) == 1:
- self.matrix[detection_classes[m1[j]], gc] += 1 # correct
- else:
- self.matrix[self.nc, gc] += 1 # background FP
-
- if n:
- for i, dc in enumerate(detection_classes):
- if not any(m1 == i):
- self.matrix[dc, self.nc] += 1 # background FN
-
- def matrix(self):
- return self.matrix
-
- def plot(self, save_dir='', names=()):
- try:
- import seaborn as sn
-
- array = self.matrix / (self.matrix.sum(0).reshape(1, self.nc + 1) + 1E-6) # normalize
- array[array < 0.005] = np.nan # don't annotate (would appear as 0.00)
-
- fig = plt.figure(figsize=(12, 9), tight_layout=True)
- sn.set(font_scale=1.0 if self.nc < 50 else 0.8) # for label size
- labels = (0 < len(names) < 99) and len(names) == self.nc # apply names to ticklabels
- sn.heatmap(array, annot=self.nc < 30, annot_kws={"size": 8}, cmap='Blues', fmt='.2f', square=True,
- xticklabels=names + ['background FP'] if labels else "auto",
- yticklabels=names + ['background FN'] if labels else "auto").set_facecolor((1, 1, 1))
- fig.axes[0].set_xlabel('True')
- fig.axes[0].set_ylabel('Predicted')
- fig.savefig(Path(save_dir) / 'confusion_matrix.png', dpi=250)
- except Exception as e:
- pass
-
- def print(self):
- for i in range(self.nc + 1):
- print(' '.join(map(str, self.matrix[i])))
-
-
-# Plots ----------------------------------------------------------------------------------------------------------------
-
-def plot_pr_curve(px, py, ap, save_dir='pr_curve.png', names=()):
- # Precision-recall curve
- fig, ax = plt.subplots(1, 1, figsize=(9, 6), tight_layout=True)
- py = np.stack(py, axis=1)
-
- if 0 < len(names) < 21: # display per-class legend if < 21 classes
- for i, y in enumerate(py.T):
- ax.plot(px, y, linewidth=1, label=f'{names[i]} {ap[i, 0]:.3f}') # plot(recall, precision)
- else:
- ax.plot(px, py, linewidth=1, color='grey') # plot(recall, precision)
-
- ax.plot(px, py.mean(1), linewidth=3, color='blue', label='all classes %.3f mAP@0.5' % ap[:, 0].mean())
- ax.set_xlabel('Recall')
- ax.set_ylabel('Precision')
- ax.set_xlim(0, 1)
- ax.set_ylim(0, 1)
- plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left")
- fig.savefig(Path(save_dir), dpi=250)
-
-
-def plot_mc_curve(px, py, save_dir='mc_curve.png', names=(), xlabel='Confidence', ylabel='Metric'):
- # Metric-confidence curve
- fig, ax = plt.subplots(1, 1, figsize=(9, 6), tight_layout=True)
-
- if 0 < len(names) < 21: # display per-class legend if < 21 classes
- for i, y in enumerate(py):
- ax.plot(px, y, linewidth=1, label=f'{names[i]}') # plot(confidence, metric)
- else:
- ax.plot(px, py.T, linewidth=1, color='grey') # plot(confidence, metric)
-
- y = py.mean(0)
- ax.plot(px, y, linewidth=3, color='blue', label=f'all classes {y.max():.2f} at {px[y.argmax()]:.3f}')
- ax.set_xlabel(xlabel)
- ax.set_ylabel(ylabel)
- ax.set_xlim(0, 1)
- ax.set_ylim(0, 1)
- plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left")
- fig.savefig(Path(save_dir), dpi=250)
diff --git a/Yolov5-Deepsort/utils/plots.py b/Yolov5-Deepsort/utils/plots.py
deleted file mode 100644
index 8313ef210f9047c327cea7ac63c59e6f6140f2d1..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/plots.py
+++ /dev/null
@@ -1,446 +0,0 @@
-# Plotting utils
-
-import glob
-import math
-import os
-import random
-from copy import copy
-from pathlib import Path
-
-import cv2
-import matplotlib
-import matplotlib.pyplot as plt
-import numpy as np
-import pandas as pd
-import seaborn as sns
-import torch
-import yaml
-from PIL import Image, ImageDraw, ImageFont
-
-from utils.general import xywh2xyxy, xyxy2xywh
-from utils.metrics import fitness
-
-# Settings
-matplotlib.rc('font', **{'size': 11})
-matplotlib.use('Agg') # for writing to files only
-
-
-class Colors:
- # Ultralytics color palette https://ultralytics.com/
- def __init__(self):
- # hex = matplotlib.colors.TABLEAU_COLORS.values()
- hex = ('FF3838', 'FF9D97', 'FF701F', 'FFB21D', 'CFD231', '48F90A', '92CC17', '3DDB86', '1A9334', '00D4BB',
- '2C99A8', '00C2FF', '344593', '6473FF', '0018EC', '8438FF', '520085', 'CB38FF', 'FF95C8', 'FF37C7')
- self.palette = [self.hex2rgb('#' + c) for c in hex]
- self.n = len(self.palette)
-
- def __call__(self, i, bgr=False):
- c = self.palette[int(i) % self.n]
- return (c[2], c[1], c[0]) if bgr else c
-
- @staticmethod
- def hex2rgb(h): # rgb order (PIL)
- return tuple(int(h[1 + i:1 + i + 2], 16) for i in (0, 2, 4))
-
-
-colors = Colors() # create instance for 'from utils.plots import colors'
-
-
-def hist2d(x, y, n=100):
- # 2d histogram used in labels.png and evolve.png
- xedges, yedges = np.linspace(x.min(), x.max(), n), np.linspace(y.min(), y.max(), n)
- hist, xedges, yedges = np.histogram2d(x, y, (xedges, yedges))
- xidx = np.clip(np.digitize(x, xedges) - 1, 0, hist.shape[0] - 1)
- yidx = np.clip(np.digitize(y, yedges) - 1, 0, hist.shape[1] - 1)
- return np.log(hist[xidx, yidx])
-
-
-def butter_lowpass_filtfilt(data, cutoff=1500, fs=50000, order=5):
- from scipy.signal import butter, filtfilt
-
- # https://stackoverflow.com/questions/28536191/how-to-filter-smooth-with-scipy-numpy
- def butter_lowpass(cutoff, fs, order):
- nyq = 0.5 * fs
- normal_cutoff = cutoff / nyq
- return butter(order, normal_cutoff, btype='low', analog=False)
-
- b, a = butter_lowpass(cutoff, fs, order=order)
- return filtfilt(b, a, data) # forward-backward filter
-
-
-def plot_one_box(x, im, color=(128, 128, 128), label=None, line_thickness=3):
- # Plots one bounding box on image 'im' using OpenCV
- assert im.data.contiguous, 'Image not contiguous. Apply np.ascontiguousarray(im) to plot_on_box() input image.'
- tl = line_thickness or round(0.002 * (im.shape[0] + im.shape[1]) / 2) + 1 # line/font thickness
- c1, c2 = (int(x[0]), int(x[1])), (int(x[2]), int(x[3]))
- cv2.rectangle(im, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA)
- if label:
- tf = max(tl - 1, 1) # font thickness
- t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0]
- c2 = c1[0] + t_size[0], c1[1] - t_size[1] - 3
- cv2.rectangle(im, c1, c2, color, -1, cv2.LINE_AA) # filled
- cv2.putText(im, label, (c1[0], c1[1] - 2), 0, tl / 3, [225, 255, 255], thickness=tf, lineType=cv2.LINE_AA)
-
-
-def plot_one_box_PIL(box, im, color=(128, 128, 128), label=None, line_thickness=None):
- # Plots one bounding box on image 'im' using PIL
- im = Image.fromarray(im)
- draw = ImageDraw.Draw(im)
- line_thickness = line_thickness or max(int(min(im.size) / 200), 2)
- draw.rectangle(box, width=line_thickness, outline=color) # plot
- if label:
- font = ImageFont.truetype("Arial.ttf", size=max(round(max(im.size) / 40), 12))
- txt_width, txt_height = font.getsize(label)
- draw.rectangle([box[0], box[1] - txt_height + 4, box[0] + txt_width, box[1]], fill=color)
- draw.text((box[0], box[1] - txt_height + 1), label, fill=(255, 255, 255), font=font)
- return np.asarray(im)
-
-
-def plot_wh_methods(): # from utils.plots import *; plot_wh_methods()
- # Compares the two methods for width-height anchor multiplication
- # https://github.com/ultralytics/yolov3/issues/168
- x = np.arange(-4.0, 4.0, .1)
- ya = np.exp(x)
- yb = torch.sigmoid(torch.from_numpy(x)).numpy() * 2
-
- fig = plt.figure(figsize=(6, 3), tight_layout=True)
- plt.plot(x, ya, '.-', label='YOLOv3')
- plt.plot(x, yb ** 2, '.-', label='YOLOv5 ^2')
- plt.plot(x, yb ** 1.6, '.-', label='YOLOv5 ^1.6')
- plt.xlim(left=-4, right=4)
- plt.ylim(bottom=0, top=6)
- plt.xlabel('input')
- plt.ylabel('output')
- plt.grid()
- plt.legend()
- fig.savefig('comparison.png', dpi=200)
-
-
-def output_to_target(output):
- # Convert model output to target format [batch_id, class_id, x, y, w, h, conf]
- targets = []
- for i, o in enumerate(output):
- for *box, conf, cls in o.cpu().numpy():
- targets.append([i, cls, *list(*xyxy2xywh(np.array(box)[None])), conf])
- return np.array(targets)
-
-
-def plot_images(images, targets, paths=None, fname='images.jpg', names=None, max_size=640, max_subplots=16):
- # Plot image grid with labels
-
- if isinstance(images, torch.Tensor):
- images = images.cpu().float().numpy()
- if isinstance(targets, torch.Tensor):
- targets = targets.cpu().numpy()
-
- # un-normalise
- if np.max(images[0]) <= 1:
- images *= 255
-
- tl = 3 # line thickness
- tf = max(tl - 1, 1) # font thickness
- bs, _, h, w = images.shape # batch size, _, height, width
- bs = min(bs, max_subplots) # limit plot images
- ns = np.ceil(bs ** 0.5) # number of subplots (square)
-
- # Check if we should resize
- scale_factor = max_size / max(h, w)
- if scale_factor < 1:
- h = math.ceil(scale_factor * h)
- w = math.ceil(scale_factor * w)
-
- mosaic = np.full((int(ns * h), int(ns * w), 3), 255, dtype=np.uint8) # init
- for i, img in enumerate(images):
- if i == max_subplots: # if last batch has fewer images than we expect
- break
-
- block_x = int(w * (i // ns))
- block_y = int(h * (i % ns))
-
- img = img.transpose(1, 2, 0)
- if scale_factor < 1:
- img = cv2.resize(img, (w, h))
-
- mosaic[block_y:block_y + h, block_x:block_x + w, :] = img
- if len(targets) > 0:
- image_targets = targets[targets[:, 0] == i]
- boxes = xywh2xyxy(image_targets[:, 2:6]).T
- classes = image_targets[:, 1].astype('int')
- labels = image_targets.shape[1] == 6 # labels if no conf column
- conf = None if labels else image_targets[:, 6] # check for confidence presence (label vs pred)
-
- if boxes.shape[1]:
- if boxes.max() <= 1.01: # if normalized with tolerance 0.01
- boxes[[0, 2]] *= w # scale to pixels
- boxes[[1, 3]] *= h
- elif scale_factor < 1: # absolute coords need scale if image scales
- boxes *= scale_factor
- boxes[[0, 2]] += block_x
- boxes[[1, 3]] += block_y
- for j, box in enumerate(boxes.T):
- cls = int(classes[j])
- color = colors(cls)
- cls = names[cls] if names else cls
- if labels or conf[j] > 0.25: # 0.25 conf thresh
- label = '%s' % cls if labels else '%s %.1f' % (cls, conf[j])
- plot_one_box(box, mosaic, label=label, color=color, line_thickness=tl)
-
- # Draw image filename labels
- if paths:
- label = Path(paths[i]).name[:40] # trim to 40 char
- t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0]
- cv2.putText(mosaic, label, (block_x + 5, block_y + t_size[1] + 5), 0, tl / 3, [220, 220, 220], thickness=tf,
- lineType=cv2.LINE_AA)
-
- # Image border
- cv2.rectangle(mosaic, (block_x, block_y), (block_x + w, block_y + h), (255, 255, 255), thickness=3)
-
- if fname:
- r = min(1280. / max(h, w) / ns, 1.0) # ratio to limit image size
- mosaic = cv2.resize(mosaic, (int(ns * w * r), int(ns * h * r)), interpolation=cv2.INTER_AREA)
- # cv2.imwrite(fname, cv2.cvtColor(mosaic, cv2.COLOR_BGR2RGB)) # cv2 save
- Image.fromarray(mosaic).save(fname) # PIL save
- return mosaic
-
-
-def plot_lr_scheduler(optimizer, scheduler, epochs=300, save_dir=''):
- # Plot LR simulating training for full epochs
- optimizer, scheduler = copy(optimizer), copy(scheduler) # do not modify originals
- y = []
- for _ in range(epochs):
- scheduler.step()
- y.append(optimizer.param_groups[0]['lr'])
- plt.plot(y, '.-', label='LR')
- plt.xlabel('epoch')
- plt.ylabel('LR')
- plt.grid()
- plt.xlim(0, epochs)
- plt.ylim(0)
- plt.savefig(Path(save_dir) / 'LR.png', dpi=200)
- plt.close()
-
-
-def plot_test_txt(): # from utils.plots import *; plot_test()
- # Plot test.txt histograms
- x = np.loadtxt('test.txt', dtype=np.float32)
- box = xyxy2xywh(x[:, :4])
- cx, cy = box[:, 0], box[:, 1]
-
- fig, ax = plt.subplots(1, 1, figsize=(6, 6), tight_layout=True)
- ax.hist2d(cx, cy, bins=600, cmax=10, cmin=0)
- ax.set_aspect('equal')
- plt.savefig('hist2d.png', dpi=300)
-
- fig, ax = plt.subplots(1, 2, figsize=(12, 6), tight_layout=True)
- ax[0].hist(cx, bins=600)
- ax[1].hist(cy, bins=600)
- plt.savefig('hist1d.png', dpi=200)
-
-
-def plot_targets_txt(): # from utils.plots import *; plot_targets_txt()
- # Plot targets.txt histograms
- x = np.loadtxt('targets.txt', dtype=np.float32).T
- s = ['x targets', 'y targets', 'width targets', 'height targets']
- fig, ax = plt.subplots(2, 2, figsize=(8, 8), tight_layout=True)
- ax = ax.ravel()
- for i in range(4):
- ax[i].hist(x[i], bins=100, label='%.3g +/- %.3g' % (x[i].mean(), x[i].std()))
- ax[i].legend()
- ax[i].set_title(s[i])
- plt.savefig('targets.jpg', dpi=200)
-
-
-def plot_study_txt(path='', x=None): # from utils.plots import *; plot_study_txt()
- # Plot study.txt generated by test.py
- fig, ax = plt.subplots(2, 4, figsize=(10, 6), tight_layout=True)
- # ax = ax.ravel()
-
- fig2, ax2 = plt.subplots(1, 1, figsize=(8, 4), tight_layout=True)
- # for f in [Path(path) / f'study_coco_{x}.txt' for x in ['yolov5s6', 'yolov5m6', 'yolov5l6', 'yolov5x6']]:
- for f in sorted(Path(path).glob('study*.txt')):
- y = np.loadtxt(f, dtype=np.float32, usecols=[0, 1, 2, 3, 7, 8, 9], ndmin=2).T
- x = np.arange(y.shape[1]) if x is None else np.array(x)
- s = ['P', 'R', 'mAP@.5', 'mAP@.5:.95', 't_inference (ms/img)', 't_NMS (ms/img)', 't_total (ms/img)']
- # for i in range(7):
- # ax[i].plot(x, y[i], '.-', linewidth=2, markersize=8)
- # ax[i].set_title(s[i])
-
- j = y[3].argmax() + 1
- ax2.plot(y[6, 1:j], y[3, 1:j] * 1E2, '.-', linewidth=2, markersize=8,
- label=f.stem.replace('study_coco_', '').replace('yolo', 'YOLO'))
-
- ax2.plot(1E3 / np.array([209, 140, 97, 58, 35, 18]), [34.6, 40.5, 43.0, 47.5, 49.7, 51.5],
- 'k.-', linewidth=2, markersize=8, alpha=.25, label='EfficientDet')
-
- ax2.grid(alpha=0.2)
- ax2.set_yticks(np.arange(20, 60, 5))
- ax2.set_xlim(0, 57)
- ax2.set_ylim(30, 55)
- ax2.set_xlabel('GPU Speed (ms/img)')
- ax2.set_ylabel('COCO AP val')
- ax2.legend(loc='lower right')
- plt.savefig(str(Path(path).name) + '.png', dpi=300)
-
-
-def plot_labels(labels, names=(), save_dir=Path(''), loggers=None):
- # plot dataset labels
- print('Plotting labels... ')
- c, b = labels[:, 0], labels[:, 1:].transpose() # classes, boxes
- nc = int(c.max() + 1) # number of classes
- x = pd.DataFrame(b.transpose(), columns=['x', 'y', 'width', 'height'])
-
- # seaborn correlogram
- sns.pairplot(x, corner=True, diag_kind='auto', kind='hist', diag_kws=dict(bins=50), plot_kws=dict(pmax=0.9))
- plt.savefig(save_dir / 'labels_correlogram.jpg', dpi=200)
- plt.close()
-
- # matplotlib labels
- matplotlib.use('svg') # faster
- ax = plt.subplots(2, 2, figsize=(8, 8), tight_layout=True)[1].ravel()
- y = ax[0].hist(c, bins=np.linspace(0, nc, nc + 1) - 0.5, rwidth=0.8)
- # [y[2].patches[i].set_color([x / 255 for x in colors(i)]) for i in range(nc)] # update colors bug #3195
- ax[0].set_ylabel('instances')
- if 0 < len(names) < 30:
- ax[0].set_xticks(range(len(names)))
- ax[0].set_xticklabels(names, rotation=90, fontsize=10)
- else:
- ax[0].set_xlabel('classes')
- sns.histplot(x, x='x', y='y', ax=ax[2], bins=50, pmax=0.9)
- sns.histplot(x, x='width', y='height', ax=ax[3], bins=50, pmax=0.9)
-
- # rectangles
- labels[:, 1:3] = 0.5 # center
- labels[:, 1:] = xywh2xyxy(labels[:, 1:]) * 2000
- img = Image.fromarray(np.ones((2000, 2000, 3), dtype=np.uint8) * 255)
- for cls, *box in labels[:1000]:
- ImageDraw.Draw(img).rectangle(box, width=1, outline=colors(cls)) # plot
- ax[1].imshow(img)
- ax[1].axis('off')
-
- for a in [0, 1, 2, 3]:
- for s in ['top', 'right', 'left', 'bottom']:
- ax[a].spines[s].set_visible(False)
-
- plt.savefig(save_dir / 'labels.jpg', dpi=200)
- matplotlib.use('Agg')
- plt.close()
-
- # loggers
- for k, v in loggers.items() or {}:
- if k == 'wandb' and v:
- v.log({"Labels": [v.Image(str(x), caption=x.name) for x in save_dir.glob('*labels*.jpg')]}, commit=False)
-
-
-def plot_evolution(yaml_file='data/hyp.finetune.yaml'): # from utils.plots import *; plot_evolution()
- # Plot hyperparameter evolution results in evolve.txt
- with open(yaml_file) as f:
- hyp = yaml.safe_load(f)
- x = np.loadtxt('evolve.txt', ndmin=2)
- f = fitness(x)
- # weights = (f - f.min()) ** 2 # for weighted results
- plt.figure(figsize=(10, 12), tight_layout=True)
- matplotlib.rc('font', **{'size': 8})
- for i, (k, v) in enumerate(hyp.items()):
- y = x[:, i + 7]
- # mu = (y * weights).sum() / weights.sum() # best weighted result
- mu = y[f.argmax()] # best single result
- plt.subplot(6, 5, i + 1)
- plt.scatter(y, f, c=hist2d(y, f, 20), cmap='viridis', alpha=.8, edgecolors='none')
- plt.plot(mu, f.max(), 'k+', markersize=15)
- plt.title('%s = %.3g' % (k, mu), fontdict={'size': 9}) # limit to 40 characters
- if i % 5 != 0:
- plt.yticks([])
- print('%15s: %.3g' % (k, mu))
- plt.savefig('evolve.png', dpi=200)
- print('\nPlot saved as evolve.png')
-
-
-def profile_idetection(start=0, stop=0, labels=(), save_dir=''):
- # Plot iDetection '*.txt' per-image logs. from utils.plots import *; profile_idetection()
- ax = plt.subplots(2, 4, figsize=(12, 6), tight_layout=True)[1].ravel()
- s = ['Images', 'Free Storage (GB)', 'RAM Usage (GB)', 'Battery', 'dt_raw (ms)', 'dt_smooth (ms)', 'real-world FPS']
- files = list(Path(save_dir).glob('frames*.txt'))
- for fi, f in enumerate(files):
- try:
- results = np.loadtxt(f, ndmin=2).T[:, 90:-30] # clip first and last rows
- n = results.shape[1] # number of rows
- x = np.arange(start, min(stop, n) if stop else n)
- results = results[:, x]
- t = (results[0] - results[0].min()) # set t0=0s
- results[0] = x
- for i, a in enumerate(ax):
- if i < len(results):
- label = labels[fi] if len(labels) else f.stem.replace('frames_', '')
- a.plot(t, results[i], marker='.', label=label, linewidth=1, markersize=5)
- a.set_title(s[i])
- a.set_xlabel('time (s)')
- # if fi == len(files) - 1:
- # a.set_ylim(bottom=0)
- for side in ['top', 'right']:
- a.spines[side].set_visible(False)
- else:
- a.remove()
- except Exception as e:
- print('Warning: Plotting error for %s; %s' % (f, e))
-
- ax[1].legend()
- plt.savefig(Path(save_dir) / 'idetection_profile.png', dpi=200)
-
-
-def plot_results_overlay(start=0, stop=0): # from utils.plots import *; plot_results_overlay()
- # Plot training 'results*.txt', overlaying train and val losses
- s = ['train', 'train', 'train', 'Precision', 'mAP@0.5', 'val', 'val', 'val', 'Recall', 'mAP@0.5:0.95'] # legends
- t = ['Box', 'Objectness', 'Classification', 'P-R', 'mAP-F1'] # titles
- for f in sorted(glob.glob('results*.txt') + glob.glob('../../Downloads/results*.txt')):
- results = np.loadtxt(f, usecols=[2, 3, 4, 8, 9, 12, 13, 14, 10, 11], ndmin=2).T
- n = results.shape[1] # number of rows
- x = range(start, min(stop, n) if stop else n)
- fig, ax = plt.subplots(1, 5, figsize=(14, 3.5), tight_layout=True)
- ax = ax.ravel()
- for i in range(5):
- for j in [i, i + 5]:
- y = results[j, x]
- ax[i].plot(x, y, marker='.', label=s[j])
- # y_smooth = butter_lowpass_filtfilt(y)
- # ax[i].plot(x, np.gradient(y_smooth), marker='.', label=s[j])
-
- ax[i].set_title(t[i])
- ax[i].legend()
- ax[i].set_ylabel(f) if i == 0 else None # add filename
- fig.savefig(f.replace('.txt', '.png'), dpi=200)
-
-
-def plot_results(start=0, stop=0, bucket='', id=(), labels=(), save_dir=''):
- # Plot training 'results*.txt'. from utils.plots import *; plot_results(save_dir='runs/train/exp')
- fig, ax = plt.subplots(2, 5, figsize=(12, 6), tight_layout=True)
- ax = ax.ravel()
- s = ['Box', 'Objectness', 'Classification', 'Precision', 'Recall',
- 'val Box', 'val Objectness', 'val Classification', 'mAP@0.5', 'mAP@0.5:0.95']
- if bucket:
- # files = ['https://storage.googleapis.com/%s/results%g.txt' % (bucket, x) for x in id]
- files = ['results%g.txt' % x for x in id]
- c = ('gsutil cp ' + '%s ' * len(files) + '.') % tuple('gs://%s/results%g.txt' % (bucket, x) for x in id)
- os.system(c)
- else:
- files = list(Path(save_dir).glob('results*.txt'))
- assert len(files), 'No results.txt files found in %s, nothing to plot.' % os.path.abspath(save_dir)
- for fi, f in enumerate(files):
- try:
- results = np.loadtxt(f, usecols=[2, 3, 4, 8, 9, 12, 13, 14, 10, 11], ndmin=2).T
- n = results.shape[1] # number of rows
- x = range(start, min(stop, n) if stop else n)
- for i in range(10):
- y = results[i, x]
- if i in [0, 1, 2, 5, 6, 7]:
- y[y == 0] = np.nan # don't show zero loss values
- # y /= y[0] # normalize
- label = labels[fi] if len(labels) else f.stem
- ax[i].plot(x, y, marker='.', label=label, linewidth=2, markersize=8)
- ax[i].set_title(s[i])
- # if i in [5, 6, 7]: # share train and val loss y axes
- # ax[i].get_shared_y_axes().join(ax[i], ax[i - 5])
- except Exception as e:
- print('Warning: Plotting error for %s; %s' % (f, e))
-
- ax[1].legend()
- fig.savefig(Path(save_dir) / 'results.png', dpi=200)
diff --git a/Yolov5-Deepsort/utils/torch_utils.py b/Yolov5-Deepsort/utils/torch_utils.py
deleted file mode 100644
index 5074fa95ae4be7118a8de66b729192887058285f..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/torch_utils.py
+++ /dev/null
@@ -1,304 +0,0 @@
-# YOLOv5 PyTorch utils
-
-import datetime
-import logging
-import math
-import os
-import platform
-import subprocess
-import time
-from contextlib import contextmanager
-from copy import deepcopy
-from pathlib import Path
-
-import torch
-import torch.backends.cudnn as cudnn
-import torch.nn as nn
-import torch.nn.functional as F
-import torchvision
-
-try:
- import thop # for FLOPS computation
-except ImportError:
- thop = None
-logger = logging.getLogger(__name__)
-
-
-@contextmanager
-def torch_distributed_zero_first(local_rank: int):
- """
- Decorator to make all processes in distributed training wait for each local_master to do something.
- """
- if local_rank not in [-1, 0]:
- torch.distributed.barrier()
- yield
- if local_rank == 0:
- torch.distributed.barrier()
-
-
-def init_torch_seeds(seed=0):
- # Speed-reproducibility tradeoff https://pytorch.org/docs/stable/notes/randomness.html
- torch.manual_seed(seed)
- if seed == 0: # slower, more reproducible
- cudnn.benchmark, cudnn.deterministic = False, True
- else: # faster, less reproducible
- cudnn.benchmark, cudnn.deterministic = True, False
-
-
-def date_modified(path=__file__):
- # return human-readable file modification date, i.e. '2021-3-26'
- t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime)
- return f'{t.year}-{t.month}-{t.day}'
-
-
-def git_describe(path=Path(__file__).parent): # path must be a directory
- # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe
- s = f'git -C {path} describe --tags --long --always'
- try:
- return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1]
- except subprocess.CalledProcessError as e:
- return '' # not a git repository
-
-
-def select_device(device='', batch_size=None):
- # device = 'cpu' or '0' or '0,1,2,3'
- s = f'YOLOv5 🚀 {git_describe() or date_modified()} torch {torch.__version__} ' # string
- cpu = device.lower() == 'cpu'
- if cpu:
- os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False
- elif device: # non-cpu device requested
- os.environ['CUDA_VISIBLE_DEVICES'] = device # set environment variable
- assert torch.cuda.is_available(), f'CUDA unavailable, invalid device {device} requested' # check availability
-
- cuda = not cpu and torch.cuda.is_available()
- if cuda:
- devices = device.split(',') if device else range(torch.cuda.device_count()) # i.e. 0,1,6,7
- n = len(devices) # device count
- if n > 1 and batch_size: # check batch_size is divisible by device_count
- assert batch_size % n == 0, f'batch-size {batch_size} not multiple of GPU count {n}'
- space = ' ' * len(s)
- for i, d in enumerate(devices):
- p = torch.cuda.get_device_properties(i)
- s += f"{'' if i == 0 else space}CUDA:{d} ({p.name}, {p.total_memory / 1024 ** 2}MB)\n" # bytes to MB
- else:
- s += 'CPU\n'
-
- logger.info(s.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else s) # emoji-safe
- return torch.device('cuda:0' if cuda else 'cpu')
-
-
-def time_synchronized():
- # pytorch-accurate time
- if torch.cuda.is_available():
- torch.cuda.synchronize()
- return time.time()
-
-
-def profile(x, ops, n=100, device=None):
- # profile a pytorch module or list of modules. Example usage:
- # x = torch.randn(16, 3, 640, 640) # input
- # m1 = lambda x: x * torch.sigmoid(x)
- # m2 = nn.SiLU()
- # profile(x, [m1, m2], n=100) # profile speed over 100 iterations
-
- device = device or torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
- x = x.to(device)
- x.requires_grad = True
- print(torch.__version__, device.type, torch.cuda.get_device_properties(0) if device.type == 'cuda' else '')
- print(f"\n{'Params':>12s}{'GFLOPS':>12s}{'forward (ms)':>16s}{'backward (ms)':>16s}{'input':>24s}{'output':>24s}")
- for m in ops if isinstance(ops, list) else [ops]:
- m = m.to(device) if hasattr(m, 'to') else m # device
- m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m # type
- dtf, dtb, t = 0., 0., [0., 0., 0.] # dt forward, backward
- try:
- flops = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 # GFLOPS
- except:
- flops = 0
-
- for _ in range(n):
- t[0] = time_synchronized()
- y = m(x)
- t[1] = time_synchronized()
- try:
- _ = y.sum().backward()
- t[2] = time_synchronized()
- except: # no backward method
- t[2] = float('nan')
- dtf += (t[1] - t[0]) * 1000 / n # ms per op forward
- dtb += (t[2] - t[1]) * 1000 / n # ms per op backward
-
- s_in = tuple(x.shape) if isinstance(x, torch.Tensor) else 'list'
- s_out = tuple(y.shape) if isinstance(y, torch.Tensor) else 'list'
- p = sum(list(x.numel() for x in m.parameters())) if isinstance(m, nn.Module) else 0 # parameters
- print(f'{p:12}{flops:12.4g}{dtf:16.4g}{dtb:16.4g}{str(s_in):>24s}{str(s_out):>24s}')
-
-
-def is_parallel(model):
- return type(model) in (nn.parallel.DataParallel, nn.parallel.DistributedDataParallel)
-
-
-def intersect_dicts(da, db, exclude=()):
- # Dictionary intersection of matching keys and shapes, omitting 'exclude' keys, using da values
- return {k: v for k, v in da.items() if k in db and not any(x in k for x in exclude) and v.shape == db[k].shape}
-
-
-def initialize_weights(model):
- for m in model.modules():
- t = type(m)
- if t is nn.Conv2d:
- pass # nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu')
- elif t is nn.BatchNorm2d:
- m.eps = 1e-3
- m.momentum = 0.03
- elif t in [nn.Hardswish, nn.LeakyReLU, nn.ReLU, nn.ReLU6]:
- m.inplace = True
-
-
-def find_modules(model, mclass=nn.Conv2d):
- # Finds layer indices matching module class 'mclass'
- return [i for i, m in enumerate(model.module_list) if isinstance(m, mclass)]
-
-
-def sparsity(model):
- # Return global model sparsity
- a, b = 0., 0.
- for p in model.parameters():
- a += p.numel()
- b += (p == 0).sum()
- return b / a
-
-
-def prune(model, amount=0.3):
- # Prune model to requested global sparsity
- import torch.nn.utils.prune as prune
- print('Pruning model... ', end='')
- for name, m in model.named_modules():
- if isinstance(m, nn.Conv2d):
- prune.l1_unstructured(m, name='weight', amount=amount) # prune
- prune.remove(m, 'weight') # make permanent
- print(' %.3g global sparsity' % sparsity(model))
-
-
-def fuse_conv_and_bn(conv, bn):
- # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/
- fusedconv = nn.Conv2d(conv.in_channels,
- conv.out_channels,
- kernel_size=conv.kernel_size,
- stride=conv.stride,
- padding=conv.padding,
- groups=conv.groups,
- bias=True).requires_grad_(False).to(conv.weight.device)
-
- # prepare filters
- w_conv = conv.weight.clone().view(conv.out_channels, -1)
- w_bn = torch.diag(bn.weight.div(torch.sqrt(bn.eps + bn.running_var)))
- fusedconv.weight.copy_(torch.mm(w_bn, w_conv).view(fusedconv.weight.shape))
-
- # prepare spatial bias
- b_conv = torch.zeros(conv.weight.size(0), device=conv.weight.device) if conv.bias is None else conv.bias
- b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps))
- fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn)
-
- return fusedconv
-
-
-def model_info(model, verbose=False, img_size=640):
- # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320]
- n_p = sum(x.numel() for x in model.parameters()) # number parameters
- n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients
- if verbose:
- print('%5s %40s %9s %12s %20s %10s %10s' % ('layer', 'name', 'gradient', 'parameters', 'shape', 'mu', 'sigma'))
- for i, (name, p) in enumerate(model.named_parameters()):
- name = name.replace('module_list.', '')
- print('%5g %40s %9s %12g %20s %10.3g %10.3g' %
- (i, name, p.requires_grad, p.numel(), list(p.shape), p.mean(), p.std()))
-
- try: # FLOPS
- from thop import profile
- stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32
- img = torch.zeros((1, model.yaml.get('ch', 3), stride, stride), device=next(model.parameters()).device) # input
- flops = profile(deepcopy(model), inputs=(img,), verbose=False)[0] / 1E9 * 2 # stride GFLOPS
- img_size = img_size if isinstance(img_size, list) else [img_size, img_size] # expand if int/float
- fs = ', %.1f GFLOPS' % (flops * img_size[0] / stride * img_size[1] / stride) # 640x640 GFLOPS
- except (ImportError, Exception):
- fs = ''
-
- logger.info(f"Model Summary: {len(list(model.modules()))} layers, {n_p} parameters, {n_g} gradients{fs}")
-
-
-def load_classifier(name='resnet101', n=2):
- # Loads a pretrained model reshaped to n-class output
- model = torchvision.models.__dict__[name](pretrained=True)
-
- # ResNet model properties
- # input_size = [3, 224, 224]
- # input_space = 'RGB'
- # input_range = [0, 1]
- # mean = [0.485, 0.456, 0.406]
- # std = [0.229, 0.224, 0.225]
-
- # Reshape output to n classes
- filters = model.fc.weight.shape[1]
- model.fc.bias = nn.Parameter(torch.zeros(n), requires_grad=True)
- model.fc.weight = nn.Parameter(torch.zeros(n, filters), requires_grad=True)
- model.fc.out_features = n
- return model
-
-
-def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416)
- # scales img(bs,3,y,x) by ratio constrained to gs-multiple
- if ratio == 1.0:
- return img
- else:
- h, w = img.shape[2:]
- s = (int(h * ratio), int(w * ratio)) # new size
- img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize
- if not same_shape: # pad/crop img
- h, w = [math.ceil(x * ratio / gs) * gs for x in (h, w)]
- return F.pad(img, [0, w - s[1], 0, h - s[0]], value=0.447) # value = imagenet mean
-
-
-def copy_attr(a, b, include=(), exclude=()):
- # Copy attributes from b to a, options to only include [...] and to exclude [...]
- for k, v in b.__dict__.items():
- if (len(include) and k not in include) or k.startswith('_') or k in exclude:
- continue
- else:
- setattr(a, k, v)
-
-
-class ModelEMA:
- """ Model Exponential Moving Average from https://github.com/rwightman/pytorch-image-models
- Keep a moving average of everything in the model state_dict (parameters and buffers).
- This is intended to allow functionality like
- https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage
- A smoothed version of the weights is necessary for some training schemes to perform well.
- This class is sensitive where it is initialized in the sequence of model init,
- GPU assignment and distributed training wrappers.
- """
-
- def __init__(self, model, decay=0.9999, updates=0):
- # Create EMA
- self.ema = deepcopy(model.module if is_parallel(model) else model).eval() # FP32 EMA
- # if next(model.parameters()).device.type != 'cpu':
- # self.ema.half() # FP16 EMA
- self.updates = updates # number of EMA updates
- self.decay = lambda x: decay * (1 - math.exp(-x / 2000)) # decay exponential ramp (to help early epochs)
- for p in self.ema.parameters():
- p.requires_grad_(False)
-
- def update(self, model):
- # Update EMA parameters
- with torch.no_grad():
- self.updates += 1
- d = self.decay(self.updates)
-
- msd = model.module.state_dict() if is_parallel(model) else model.state_dict() # model state_dict
- for k, v in self.ema.state_dict().items():
- if v.dtype.is_floating_point:
- v *= d
- v += (1. - d) * msd[k].detach()
-
- def update_attr(self, model, include=(), exclude=('process_group', 'reducer')):
- # Update EMA attributes
- copy_attr(self.ema, model, include, exclude)
diff --git a/Yolov5-Deepsort/utils/wandb_logging/__init__.py b/Yolov5-Deepsort/utils/wandb_logging/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/Yolov5-Deepsort/utils/wandb_logging/log_dataset.py b/Yolov5-Deepsort/utils/wandb_logging/log_dataset.py
deleted file mode 100644
index f45a23011f15920e0cee33783504299337604a8d..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/wandb_logging/log_dataset.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import argparse
-
-import yaml
-
-from wandb_utils import WandbLogger
-
-WANDB_ARTIFACT_PREFIX = 'wandb-artifact://'
-
-
-def create_dataset_artifact(opt):
- with open(opt.data) as f:
- data = yaml.safe_load(f) # data dict
- logger = WandbLogger(opt, '', None, data, job_type='Dataset Creation')
-
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser()
- parser.add_argument('--data', type=str, default='data/coco128.yaml', help='data.yaml path')
- parser.add_argument('--single-cls', action='store_true', help='train as single-class dataset')
- parser.add_argument('--project', type=str, default='YOLOv5', help='name of W&B Project')
- opt = parser.parse_args()
- opt.resume = False # Explicitly disallow resume check for dataset upload job
-
- create_dataset_artifact(opt)
diff --git a/Yolov5-Deepsort/utils/wandb_logging/wandb_utils.py b/Yolov5-Deepsort/utils/wandb_logging/wandb_utils.py
deleted file mode 100644
index 57ce9035a77736b744d9f74186cec592aba25200..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/utils/wandb_logging/wandb_utils.py
+++ /dev/null
@@ -1,318 +0,0 @@
-"""Utilities and tools for tracking runs with Weights & Biases."""
-import json
-import sys
-from pathlib import Path
-
-import torch
-import yaml
-from tqdm import tqdm
-
-sys.path.append(str(Path(__file__).parent.parent.parent)) # add utils/ to path
-from utils.datasets import LoadImagesAndLabels
-from utils.datasets import img2label_paths
-from utils.general import colorstr, xywh2xyxy, check_dataset, check_file
-
-try:
- import wandb
- from wandb import init, finish
-except ImportError:
- wandb = None
-
-WANDB_ARTIFACT_PREFIX = 'wandb-artifact://'
-
-
-def remove_prefix(from_string, prefix=WANDB_ARTIFACT_PREFIX):
- return from_string[len(prefix):]
-
-
-def check_wandb_config_file(data_config_file):
- wandb_config = '_wandb.'.join(data_config_file.rsplit('.', 1)) # updated data.yaml path
- if Path(wandb_config).is_file():
- return wandb_config
- return data_config_file
-
-
-def get_run_info(run_path):
- run_path = Path(remove_prefix(run_path, WANDB_ARTIFACT_PREFIX))
- run_id = run_path.stem
- project = run_path.parent.stem
- entity = run_path.parent.parent.stem
- model_artifact_name = 'run_' + run_id + '_model'
- return entity, project, run_id, model_artifact_name
-
-
-def check_wandb_resume(opt):
- process_wandb_config_ddp_mode(opt) if opt.global_rank not in [-1, 0] else None
- if isinstance(opt.resume, str):
- if opt.resume.startswith(WANDB_ARTIFACT_PREFIX):
- if opt.global_rank not in [-1, 0]: # For resuming DDP runs
- entity, project, run_id, model_artifact_name = get_run_info(opt.resume)
- api = wandb.Api()
- artifact = api.artifact(entity + '/' + project + '/' + model_artifact_name + ':latest')
- modeldir = artifact.download()
- opt.weights = str(Path(modeldir) / "last.pt")
- return True
- return None
-
-
-def process_wandb_config_ddp_mode(opt):
- with open(check_file(opt.data)) as f:
- data_dict = yaml.safe_load(f) # data dict
- train_dir, val_dir = None, None
- if isinstance(data_dict['train'], str) and data_dict['train'].startswith(WANDB_ARTIFACT_PREFIX):
- api = wandb.Api()
- train_artifact = api.artifact(remove_prefix(data_dict['train']) + ':' + opt.artifact_alias)
- train_dir = train_artifact.download()
- train_path = Path(train_dir) / 'data/images/'
- data_dict['train'] = str(train_path)
-
- if isinstance(data_dict['val'], str) and data_dict['val'].startswith(WANDB_ARTIFACT_PREFIX):
- api = wandb.Api()
- val_artifact = api.artifact(remove_prefix(data_dict['val']) + ':' + opt.artifact_alias)
- val_dir = val_artifact.download()
- val_path = Path(val_dir) / 'data/images/'
- data_dict['val'] = str(val_path)
- if train_dir or val_dir:
- ddp_data_path = str(Path(val_dir) / 'wandb_local_data.yaml')
- with open(ddp_data_path, 'w') as f:
- yaml.safe_dump(data_dict, f)
- opt.data = ddp_data_path
-
-
-class WandbLogger():
- """Log training runs, datasets, models, and predictions to Weights & Biases.
-
- This logger sends information to W&B at wandb.ai. By default, this information
- includes hyperparameters, system configuration and metrics, model metrics,
- and basic data metrics and analyses.
-
- By providing additional command line arguments to train.py, datasets,
- models and predictions can also be logged.
-
- For more on how this logger is used, see the Weights & Biases documentation:
- https://docs.wandb.com/guides/integrations/yolov5
- """
- def __init__(self, opt, name, run_id, data_dict, job_type='Training'):
- # Pre-training routine --
- self.job_type = job_type
- self.wandb, self.wandb_run, self.data_dict = wandb, None if not wandb else wandb.run, data_dict
- # It's more elegant to stick to 1 wandb.init call, but useful config data is overwritten in the WandbLogger's wandb.init call
- if isinstance(opt.resume, str): # checks resume from artifact
- if opt.resume.startswith(WANDB_ARTIFACT_PREFIX):
- entity, project, run_id, model_artifact_name = get_run_info(opt.resume)
- model_artifact_name = WANDB_ARTIFACT_PREFIX + model_artifact_name
- assert wandb, 'install wandb to resume wandb runs'
- # Resume wandb-artifact:// runs here| workaround for not overwriting wandb.config
- self.wandb_run = wandb.init(id=run_id, project=project, entity=entity, resume='allow')
- opt.resume = model_artifact_name
- elif self.wandb:
- self.wandb_run = wandb.init(config=opt,
- resume="allow",
- project='YOLOv5' if opt.project == 'runs/train' else Path(opt.project).stem,
- entity=opt.entity,
- name=name,
- job_type=job_type,
- id=run_id) if not wandb.run else wandb.run
- if self.wandb_run:
- if self.job_type == 'Training':
- if not opt.resume:
- wandb_data_dict = self.check_and_upload_dataset(opt) if opt.upload_dataset else data_dict
- # Info useful for resuming from artifacts
- self.wandb_run.config.opt = vars(opt)
- self.wandb_run.config.data_dict = wandb_data_dict
- self.data_dict = self.setup_training(opt, data_dict)
- if self.job_type == 'Dataset Creation':
- self.data_dict = self.check_and_upload_dataset(opt)
- else:
- prefix = colorstr('wandb: ')
- print(f"{prefix}Install Weights & Biases for YOLOv5 logging with 'pip install wandb' (recommended)")
-
- def check_and_upload_dataset(self, opt):
- assert wandb, 'Install wandb to upload dataset'
- check_dataset(self.data_dict)
- config_path = self.log_dataset_artifact(check_file(opt.data),
- opt.single_cls,
- 'YOLOv5' if opt.project == 'runs/train' else Path(opt.project).stem)
- print("Created dataset config file ", config_path)
- with open(config_path) as f:
- wandb_data_dict = yaml.safe_load(f)
- return wandb_data_dict
-
- def setup_training(self, opt, data_dict):
- self.log_dict, self.current_epoch, self.log_imgs = {}, 0, 16 # Logging Constants
- self.bbox_interval = opt.bbox_interval
- if isinstance(opt.resume, str):
- modeldir, _ = self.download_model_artifact(opt)
- if modeldir:
- self.weights = Path(modeldir) / "last.pt"
- config = self.wandb_run.config
- opt.weights, opt.save_period, opt.batch_size, opt.bbox_interval, opt.epochs, opt.hyp = str(
- self.weights), config.save_period, config.total_batch_size, config.bbox_interval, config.epochs, \
- config.opt['hyp']
- data_dict = dict(self.wandb_run.config.data_dict) # eliminates the need for config file to resume
- if 'val_artifact' not in self.__dict__: # If --upload_dataset is set, use the existing artifact, don't download
- self.train_artifact_path, self.train_artifact = self.download_dataset_artifact(data_dict.get('train'),
- opt.artifact_alias)
- self.val_artifact_path, self.val_artifact = self.download_dataset_artifact(data_dict.get('val'),
- opt.artifact_alias)
- self.result_artifact, self.result_table, self.val_table, self.weights = None, None, None, None
- if self.train_artifact_path is not None:
- train_path = Path(self.train_artifact_path) / 'data/images/'
- data_dict['train'] = str(train_path)
- if self.val_artifact_path is not None:
- val_path = Path(self.val_artifact_path) / 'data/images/'
- data_dict['val'] = str(val_path)
- self.val_table = self.val_artifact.get("val")
- self.map_val_table_path()
- if self.val_artifact is not None:
- self.result_artifact = wandb.Artifact("run_" + wandb.run.id + "_progress", "evaluation")
- self.result_table = wandb.Table(["epoch", "id", "prediction", "avg_confidence"])
- if opt.bbox_interval == -1:
- self.bbox_interval = opt.bbox_interval = (opt.epochs // 10) if opt.epochs > 10 else 1
- return data_dict
-
- def download_dataset_artifact(self, path, alias):
- if isinstance(path, str) and path.startswith(WANDB_ARTIFACT_PREFIX):
- artifact_path = Path(remove_prefix(path, WANDB_ARTIFACT_PREFIX) + ":" + alias)
- dataset_artifact = wandb.use_artifact(artifact_path.as_posix())
- assert dataset_artifact is not None, "'Error: W&B dataset artifact doesn\'t exist'"
- datadir = dataset_artifact.download()
- return datadir, dataset_artifact
- return None, None
-
- def download_model_artifact(self, opt):
- if opt.resume.startswith(WANDB_ARTIFACT_PREFIX):
- model_artifact = wandb.use_artifact(remove_prefix(opt.resume, WANDB_ARTIFACT_PREFIX) + ":latest")
- assert model_artifact is not None, 'Error: W&B model artifact doesn\'t exist'
- modeldir = model_artifact.download()
- epochs_trained = model_artifact.metadata.get('epochs_trained')
- total_epochs = model_artifact.metadata.get('total_epochs')
- is_finished = total_epochs is None
- assert not is_finished, 'training is finished, can only resume incomplete runs.'
- return modeldir, model_artifact
- return None, None
-
- def log_model(self, path, opt, epoch, fitness_score, best_model=False):
- model_artifact = wandb.Artifact('run_' + wandb.run.id + '_model', type='model', metadata={
- 'original_url': str(path),
- 'epochs_trained': epoch + 1,
- 'save period': opt.save_period,
- 'project': opt.project,
- 'total_epochs': opt.epochs,
- 'fitness_score': fitness_score
- })
- model_artifact.add_file(str(path / 'last.pt'), name='last.pt')
- wandb.log_artifact(model_artifact,
- aliases=['latest', 'last', 'epoch ' + str(self.current_epoch), 'best' if best_model else ''])
- print("Saving model artifact on epoch ", epoch + 1)
-
- def log_dataset_artifact(self, data_file, single_cls, project, overwrite_config=False):
- with open(data_file) as f:
- data = yaml.safe_load(f) # data dict
- nc, names = (1, ['item']) if single_cls else (int(data['nc']), data['names'])
- names = {k: v for k, v in enumerate(names)} # to index dictionary
- self.train_artifact = self.create_dataset_table(LoadImagesAndLabels(
- data['train'], rect=True, batch_size=1), names, name='train') if data.get('train') else None
- self.val_artifact = self.create_dataset_table(LoadImagesAndLabels(
- data['val'], rect=True, batch_size=1), names, name='val') if data.get('val') else None
- if data.get('train'):
- data['train'] = WANDB_ARTIFACT_PREFIX + str(Path(project) / 'train')
- if data.get('val'):
- data['val'] = WANDB_ARTIFACT_PREFIX + str(Path(project) / 'val')
- path = data_file if overwrite_config else '_wandb.'.join(data_file.rsplit('.', 1)) # updated data.yaml path
- data.pop('download', None)
- with open(path, 'w') as f:
- yaml.safe_dump(data, f)
-
- if self.job_type == 'Training': # builds correct artifact pipeline graph
- self.wandb_run.use_artifact(self.val_artifact)
- self.wandb_run.use_artifact(self.train_artifact)
- self.val_artifact.wait()
- self.val_table = self.val_artifact.get('val')
- self.map_val_table_path()
- else:
- self.wandb_run.log_artifact(self.train_artifact)
- self.wandb_run.log_artifact(self.val_artifact)
- return path
-
- def map_val_table_path(self):
- self.val_table_map = {}
- print("Mapping dataset")
- for i, data in enumerate(tqdm(self.val_table.data)):
- self.val_table_map[data[3]] = data[0]
-
- def create_dataset_table(self, dataset, class_to_id, name='dataset'):
- # TODO: Explore multiprocessing to slpit this loop parallely| This is essential for speeding up the the logging
- artifact = wandb.Artifact(name=name, type="dataset")
- img_files = tqdm([dataset.path]) if isinstance(dataset.path, str) and Path(dataset.path).is_dir() else None
- img_files = tqdm(dataset.img_files) if not img_files else img_files
- for img_file in img_files:
- if Path(img_file).is_dir():
- artifact.add_dir(img_file, name='data/images')
- labels_path = 'labels'.join(dataset.path.rsplit('images', 1))
- artifact.add_dir(labels_path, name='data/labels')
- else:
- artifact.add_file(img_file, name='data/images/' + Path(img_file).name)
- label_file = Path(img2label_paths([img_file])[0])
- artifact.add_file(str(label_file),
- name='data/labels/' + label_file.name) if label_file.exists() else None
- table = wandb.Table(columns=["id", "train_image", "Classes", "name"])
- class_set = wandb.Classes([{'id': id, 'name': name} for id, name in class_to_id.items()])
- for si, (img, labels, paths, shapes) in enumerate(tqdm(dataset)):
- box_data, img_classes = [], {}
- for cls, *xywh in labels[:, 1:].tolist():
- cls = int(cls)
- box_data.append({"position": {"middle": [xywh[0], xywh[1]], "width": xywh[2], "height": xywh[3]},
- "class_id": cls,
- "box_caption": "%s" % (class_to_id[cls])})
- img_classes[cls] = class_to_id[cls]
- boxes = {"ground_truth": {"box_data": box_data, "class_labels": class_to_id}} # inference-space
- table.add_data(si, wandb.Image(paths, classes=class_set, boxes=boxes), json.dumps(img_classes),
- Path(paths).name)
- artifact.add(table, name)
- return artifact
-
- def log_training_progress(self, predn, path, names):
- if self.val_table and self.result_table:
- class_set = wandb.Classes([{'id': id, 'name': name} for id, name in names.items()])
- box_data = []
- total_conf = 0
- for *xyxy, conf, cls in predn.tolist():
- if conf >= 0.25:
- box_data.append(
- {"position": {"minX": xyxy[0], "minY": xyxy[1], "maxX": xyxy[2], "maxY": xyxy[3]},
- "class_id": int(cls),
- "box_caption": "%s %.3f" % (names[cls], conf),
- "scores": {"class_score": conf},
- "domain": "pixel"})
- total_conf = total_conf + conf
- boxes = {"predictions": {"box_data": box_data, "class_labels": names}} # inference-space
- id = self.val_table_map[Path(path).name]
- self.result_table.add_data(self.current_epoch,
- id,
- wandb.Image(self.val_table.data[id][1], boxes=boxes, classes=class_set),
- total_conf / max(1, len(box_data))
- )
-
- def log(self, log_dict):
- if self.wandb_run:
- for key, value in log_dict.items():
- self.log_dict[key] = value
-
- def end_epoch(self, best_result=False):
- if self.wandb_run:
- wandb.log(self.log_dict)
- self.log_dict = {}
- if self.result_artifact:
- train_results = wandb.JoinedTable(self.val_table, self.result_table, "id")
- self.result_artifact.add(train_results, 'result')
- wandb.log_artifact(self.result_artifact, aliases=['latest', 'last', 'epoch ' + str(self.current_epoch),
- ('best' if best_result else '')])
- self.result_table = wandb.Table(["epoch", "id", "prediction", "avg_confidence"])
- self.result_artifact = wandb.Artifact("run_" + wandb.run.id + "_progress", "evaluation")
-
- def finish_run(self):
- if self.wandb_run:
- if self.log_dict:
- wandb.log(self.log_dict)
- wandb.run.finish()
diff --git a/Yolov5-Deepsort/weights/yolov5s.pt b/Yolov5-Deepsort/weights/yolov5s.pt
deleted file mode 100644
index a58e3fcde809e747c541b532cda255034e18e7e3..0000000000000000000000000000000000000000
--- a/Yolov5-Deepsort/weights/yolov5s.pt
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f1610cfd81f8cab94254b35f6b7da2981fa40f93ad1bd3dd1803c52e7f44753e
-size 14795158
diff --git a/Yolov5-Deepsort/zhoushao.mp4 b/Yolov5-Deepsort/zhoushao.mp4
deleted file mode 100644
index cd5e0135133b90765a9eaab74a37286318f8c351..0000000000000000000000000000000000000000
Binary files a/Yolov5-Deepsort/zhoushao.mp4 and /dev/null differ