(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 4.2' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 523163, 10805]*) (*NotebookOutlinePosition[ 558953, 12034]*) (* CellTagsIndexPosition[ 558909, 12030]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell["Fast Fourier Transforms", "Title", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ R.G. Palmer July 7, 2004\ \>", "Subsubtitle", Evaluatable->False, TextAlignment->Center, AspectRatioFixed->True], Cell[CellGroupData[{ Cell["Background and Copyright", "Subsection"], Cell[TextData[{ "This ", StyleBox["Mathematica", FontSlant->"Italic"], " Notebook was written by Richard G. Palmer (Physics Department, Duke \ University) for use in a course he taught (from Phy 230, \"", "Mathematical Method in Physics", "\"). As of 1999, it has been made available for general non-profit use \ under the following copyright provision." }], "Text"], Cell[TextData[{ StyleBox["This Mathematica Notebook is Copyright Richard G. Palmer, 1997", FontWeight->"Bold"], ". It may be freely used by individuals, and by classes at academic \ institutions, provided:\n1. Credit is given to Richard Palmer as the original \ author; and\n2. It is not bought or sold or exchanged for profit, or \ incorporated into material that is bought or sold or exchanged for profit.\n\ Any other use requires the written permission of Richard Palmer, Dept. of \ Physics, Box 90305, Duke University, Durham, NC 27708, USA. ", "See ", StyleBox["http://www.phy.duke.edu/~palmer", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " for the email address." }], "Text"], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " Version: 4.2." }], "Text"], Cell[TextData[{ "See ", StyleBox["http://www.phy.duke.edu/~palmer/notebooks/", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " for other ", StyleBox["Mathematica", FontSlant->"Italic"], " noteboks by Richard Palmer." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Preface", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "This notebook is about discrete Fourier transforms, using the Fast Fourier \ Transform (FFT) algorithm built into ", StyleBox["Mathematica", FontSlant->"Italic"], "." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["There are 4 problems embedded in the Notebook.", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ StyleBox["Prerequisite:", Background->RGBColor[1, 1, 0]], " Basic knowledge of Fourier transforms, including the convolution theorem \ for sections 3 and 4." }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Acknowledgments", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["In writing this Notebook I used material from:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "1. \"Fourier Methods in Diffraction Theory\", (", StyleBox["Mathematica", FontSlant->"Italic"], " Notebook), A.F. Behof and J.I. Mirecki." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ 2. \"Mathematica for the Sciences\", R.E. Crandall (Addison-Wesley, \ 1991).\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ 3. \"Signal Processing Packages and Notebooks\", Brian Evans, James \ McClellan, Kevin West, Wallace McClure, Lena Karam, and Jim Proctor.\ \>", \ "Text", Evaluatable->False, AspectRatioFixed->True], Cell["4. Webster's dictionary.", "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["1. Introduction to the Discrete Fourier Transform (DFT)", "Section", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell["Differences from the Continuous Fourier Transform (CFT)", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Given a function f(t) there are really two differences between \ taking an ordinary Continuous Fourier Transform (CFT) and a Discrete Fourier \ Transform (DFT):\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "1. When we use the DFT, we always use only a finite length of data, say \ from time t=0 until time t=T. On the other hand, the CFT is (in principle at \ least) defined for functions stretching from -", StyleBox["\[Infinity]", FontFamily->"Symbol"], " to ", StyleBox["\[Infinity]", FontFamily->"Symbol"], "." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ 2. We only sample f(t) at a discrete set of N times. Henceforth \ we'll take N to be even, and will take the times to be\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(t\ = \ 0, \ T\/N, \ \(2 T\)\/N, \ \(3 T\)\/N, \ \[Ellipsis] \(\((N - 1)\) \ T\)\/N\)], "DisplayFormula", FontSize->14], Cell["\<\ Note that the last one is just short of T, but that we do have N \ points in all. If we define\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\[CapitalDelta]\ = \ T\/N\)], "DisplayFormula", FontSize->14], Cell[TextData[{ "to be the sample spacing in time, the times are just n", StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], " with n = 0, 1, ... N-1." }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Defining the DFT", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Whereas the CFT is defined (besides 2", StyleBox["\[Pi] ", FontVariations->{"CompatibilityType"->0}], "factors outside) by" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(g \((\[Omega])\)\ = \ \[Integral]\_\(-\[Infinity]\)\%\[Infinity] f \((t)\) \(e\^i\[Omega]t\) dt\)], "DisplayFormula", FontSize->14, FontWeight->"Plain"], Cell["we'll define the DFT by", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(g \((\[Omega])\)\ = \ \[Sum]\+\(n = 0\)\%\(N - 1\)f \ \((n\[CapitalDelta])\) e\^i\[Omega]n\[CapitalDelta]\)], "DisplayFormula", FontSize->14, FontWeight->"Plain"], Cell[TextData[{ "for a set of (angular) frequencies ", StyleBox["\[Omega]", FontFamily->"Symbol", FontSize->12], " to be determined shortly." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ StyleBox["Note that some authors have a different convention to changing \ from ", ""], Cell[BoxData[ \(e\^i\[Omega]t\)], FontSize->14], "to ", Cell[BoxData[ \(e\^\(-i\[Omega]t\)\)], FontSize->14], " (and vice-versa for the inverse). It doesn't matter in the end, and I \ want to use the ", StyleBox["Mathematica", FontSlant->"Italic"], " default. We could use a different choice in ", StyleBox["Mathematica", FontSlant->"Italic"], " (see ", StyleBox["FourierParameters", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "), but it is better to leave it alone." }], "Text"], Cell["\<\ Note what we've done so far---points 1 and 2 above. One way of \ thinking about this is to say that we multiplied our original function by a \ sequence of equally spaced delta functions, as suggested by the following \ illustration for N=10, T=10:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.261905 0.047619 0.014715 0.218771 [ [(-5)] .02381 .01472 0 2 Msboxa [(5)] .5 .01472 0 2 Msboxa [(10)] .7381 .01472 0 2 Msboxa [(15)] .97619 .01472 0 2 Msboxa [(0.5)] .2494 .1241 1 0 Msboxa [(1)] .2494 .23349 1 0 Msboxa [(1.5)] .2494 .34287 1 0 Msboxa [(2)] .2494 .45226 1 0 Msboxa [(2.5)] .2494 .56164 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .02381 .01472 m .02381 .02097 L s P [(-5)] .02381 .01472 0 2 Mshowa p .002 w .5 .01472 m .5 .02097 L s P [(5)] .5 .01472 0 2 Mshowa p .002 w .7381 .01472 m .7381 .02097 L s P [(10)] .7381 .01472 0 2 Mshowa p .002 w .97619 .01472 m .97619 .02097 L s P [(15)] .97619 .01472 0 2 Mshowa p .001 w .07143 .01472 m .07143 .01847 L s P p .001 w .11905 .01472 m .11905 .01847 L s P p .001 w .16667 .01472 m .16667 .01847 L s P p .001 w .21429 .01472 m .21429 .01847 L s P p .001 w .30952 .01472 m .30952 .01847 L s P p .001 w .35714 .01472 m .35714 .01847 L s P p .001 w .40476 .01472 m .40476 .01847 L s P p .001 w .45238 .01472 m .45238 .01847 L s P p .001 w .54762 .01472 m .54762 .01847 L s P p .001 w .59524 .01472 m .59524 .01847 L s P p .001 w .64286 .01472 m .64286 .01847 L s P p .001 w .69048 .01472 m .69048 .01847 L s P p .001 w .78571 .01472 m .78571 .01847 L s P p .001 w .83333 .01472 m .83333 .01847 L s P p .001 w .88095 .01472 m .88095 .01847 L s P p .001 w .92857 .01472 m .92857 .01847 L s P p .002 w 0 .01472 m 1 .01472 L s P p .002 w .2619 .1241 m .26815 .1241 L s P [(0.5)] .2494 .1241 1 0 Mshowa p .002 w .2619 .23349 m .26815 .23349 L s P [(1)] .2494 .23349 1 0 Mshowa p .002 w .2619 .34287 m .26815 .34287 L s P [(1.5)] .2494 .34287 1 0 Mshowa p .002 w .2619 .45226 m .26815 .45226 L s P [(2)] .2494 .45226 1 0 Mshowa p .002 w .2619 .56164 m .26815 .56164 L s P [(2.5)] .2494 .56164 1 0 Mshowa p .001 w .2619 .03659 m .26565 .03659 L s P p .001 w .2619 .05847 m .26565 .05847 L s P p .001 w .2619 .08035 m .26565 .08035 L s P p .001 w .2619 .10222 m .26565 .10222 L s P p .001 w .2619 .14598 m .26565 .14598 L s P p .001 w .2619 .16785 m .26565 .16785 L s P p .001 w .2619 .18973 m .26565 .18973 L s P p .001 w .2619 .21161 m .26565 .21161 L s P p .001 w .2619 .25536 m .26565 .25536 L s P p .001 w .2619 .27724 m .26565 .27724 L s P p .001 w .2619 .29912 m .26565 .29912 L s P p .001 w .2619 .32099 m .26565 .32099 L s P p .001 w .2619 .36475 m .26565 .36475 L s P p .001 w .2619 .38663 m .26565 .38663 L s P p .001 w .2619 .4085 m .26565 .4085 L s P p .001 w .2619 .43038 m .26565 .43038 L s P p .001 w .2619 .47413 m .26565 .47413 L s P p .001 w .2619 .49601 m .26565 .49601 L s P p .001 w .2619 .51789 m .26565 .51789 L s P p .001 w .2619 .53976 m .26565 .53976 L s P p .001 w .2619 .58352 m .26565 .58352 L s P p .001 w .2619 .6054 m .26565 .6054 L s P p .002 w .2619 0 m .2619 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p p .004 w .02381 .58569 m .02505 .59083 L .02629 .59513 L .02753 .59855 L .02877 .60106 L .03001 .60266 L .03125 .60332 L .03249 .60305 L .03373 .60187 L .03497 .59978 L .03621 .59683 L .03745 .59305 L .03869 .58848 L .04365 .56353 L .05357 .49744 L .05853 .46688 L .06101 .45427 L .06349 .44396 L .06597 .43619 L .06721 .4333 L .06845 .43107 L .06969 .42948 L .07093 .42852 L .07217 .42816 L .07341 .42836 L .07465 .42908 L .07589 .43025 L .07837 .43374 L .08085 .43829 L .08333 .44328 L .08581 .44806 L .08705 .45016 L .08829 .45198 L .08953 .45341 L .09077 .4544 L .09201 .45487 L .09325 .45476 L .09449 .45402 L .09573 .45258 L .09697 .45042 L .09821 .44748 L .09945 .44376 L .10069 .43922 L .10317 .4277 L .10813 .39522 L .1131 .35215 L .12302 .25178 L .12798 .20537 L .13046 .18537 L .13294 .16818 L Mistroke .13542 .15415 L .13666 .14839 L .1379 .14348 L .13914 .13943 L .14038 .13624 L .14162 .13388 L .14286 .13233 L .1441 .13156 L .14534 .13153 L .14658 .13219 L .14782 .13348 L .1503 .13769 L .15278 .14359 L .15774 .15795 L .16022 .16508 L .1627 .17134 L .16518 .17615 L .16642 .17787 L .16766 .17907 L .1689 .17969 L .17014 .17972 L .17138 .17912 L .17262 .17788 L .17386 .17601 L .1751 .17349 L .17634 .17035 L .17758 .16661 L .18254 .14635 L .1875 .12033 L .19246 .09327 L .19742 .07051 L .19866 .0661 L .1999 .06234 L .20114 .05929 L .20238 .05701 L .20362 .05555 L .20486 .05493 L .2061 .0552 L .20734 .05638 L .20858 .05847 L .20982 .06148 L .2123 .07021 L .21478 .08241 L .21726 .09775 L .22222 .13604 L .23214 .22541 L .2371 .26567 L .23958 .28266 L .24206 .29703 L .24454 .30857 L Mistroke .24578 .31324 L .24702 .31719 L .24826 .32042 L .2495 .32297 L .25074 .32485 L .25198 .32612 L .2619 .32099 L .26438 .31814 L .26563 .31692 L .26687 .31594 L .26811 .31527 L .26935 .31499 L .27059 .31517 L .27183 .31587 L .27307 .31713 L .27431 .31902 L .27679 .3248 L .27803 .32875 L .27927 .33342 L .28175 .34495 L .28671 .37631 L .29167 .41658 L .30159 .50595 L .30655 .54423 L .30903 .55958 L .31151 .57178 L .31275 .57659 L .31399 .58051 L .31523 .58352 L .31647 .58561 L .31771 .58678 L .31895 .58705 L .32019 .58644 L .32143 .58498 L .32391 .57965 L .32515 .57589 L .32639 .57148 L .33135 .54872 L .33631 .52166 L .34127 .49564 L .34375 .48455 L .34623 .47538 L .34871 .4685 L .34995 .46598 L .35119 .4641 L .35243 .46287 L .35367 .46227 L .35491 .4623 L .35615 .46292 L .35739 .46412 L Mistroke .35863 .46583 L .35987 .46803 L .36111 .47065 L .37103 .49839 L .37351 .5043 L .37475 .50666 L .37599 .50851 L .37723 .5098 L .37847 .51046 L .37971 .51043 L .38095 .50966 L .38219 .50811 L .38343 .50575 L .38591 .49851 L .38715 .4936 L .38839 .48784 L .39087 .4738 L .39583 .43662 L .40079 .39021 L .41071 .28984 L .41567 .24677 L .41815 .22902 L .42063 .21429 L .42312 .20277 L .42436 .19823 L .4256 .19451 L .42684 .19157 L .42808 .18941 L .42932 .18797 L .43056 .18722 L .4318 .18712 L .43304 .18759 L .43428 .18858 L .43552 .19001 L .438 .19393 L .44048 .19871 L .44544 .20825 L .44668 .21016 L .44792 .21174 L .44916 .21291 L .4504 .21363 L .45164 .21383 L .45288 .21347 L .45412 .21251 L .45536 .21092 L .4566 .20869 L .45784 .2058 L .46032 .19803 L .47024 .14455 L .4752 .11058 L Mistroke .48016 .07846 L .48264 .06478 L .48512 .05351 L .48636 .04894 L .4876 .04516 L .48884 .0422 L .49008 .04012 L .49132 .03894 L .49256 .03867 L .4938 .03933 L .49504 .04092 L .49628 .04344 L .49752 .04686 L .5 .0563 L .50248 .06892 L .50496 .08429 L .50992 .12098 L .51488 .16118 L .51984 .19943 L .52232 .21629 L .5248 .23099 L .52728 .24318 L .52976 .25268 L .531 .25639 L .53224 .25941 L .53348 .26176 L .53472 .26348 L .53596 .26458 L .5372 .26511 L .53844 .26512 L .53968 .26468 L .57937 .38507 L .58929 .48013 L .59177 .50029 L .59425 .5178 L .59673 .53223 L .59797 .5382 L .59921 .54329 L .60045 .54749 L .60169 .5508 L .60293 .55323 L .60417 .55477 L .60541 .55546 L .60665 .55532 L .60789 .5544 L .60913 .55274 L .61905 .52069 L .62401 .50027 L .62649 .49123 L .62897 .48372 L Mistroke .63021 .48068 L .63145 .47818 L .63269 .47626 L .63393 .47494 L .63517 .47425 L .63641 .47419 L .63765 .47476 L .63889 .47597 L .64881 .50427 L .65377 .52487 L .65625 .53466 L .65873 .54321 L .65997 .54682 L .66121 .5499 L .66245 .55236 L .66369 .55415 L .66493 .55521 L .66617 .5555 L .66741 .55496 L .66865 .55358 L .66989 .55132 L .67113 .54818 L .67237 .54414 L .67361 .53921 L .67857 .51102 L .68353 .47129 L .68849 .42424 L .69345 .3752 L .69841 .32971 L .70089 .30984 L .70337 .2925 L .70585 .27803 L .70833 .26661 L .70957 .26206 L .71081 .25827 L .71205 .25523 L .71329 .2529 L .71453 .25125 L .71577 .25023 L .71701 .2498 L .71825 .2499 L .71949 .25045 L .72073 .2514 L .72321 .25416 L .72569 .25755 L .72817 .26093 L .72941 .2624 L .73065 .26363 L .73189 .26455 L .73313 .26507 L Mistroke .73438 .26515 L .73562 .26472 L .73686 .26373 L .7381 .26213 L .73934 .2599 L .74058 .257 L .74306 .24915 L .74554 .23854 L .74802 .22529 L .75794 .15298 L .7629 .11304 L .76786 .07774 L .77034 .06343 L .77282 .05205 L .77406 .04759 L .7753 .04401 L .77654 .04132 L .77778 .03956 L .79762 .11752 L .80258 .1512 L .80754 .1805 L .81002 .19221 L .8125 .20151 L .81374 .20518 L .81498 .2082 L .81622 .21056 L .81746 .21226 L .8187 .21333 L .81994 .2138 L .82118 .2137 L .82242 .21308 L .82738 .20649 L .83234 .1967 L .83482 .1922 L .83606 .19032 L .8373 .18881 L .83854 .18773 L .83978 .18716 L .84102 .18716 L .84226 .18778 L .8435 .18908 L .84474 .19111 L .84598 .1939 L .84722 .19748 L .8497 .20706 L .85218 .21991 L .85714 .25479 L .86706 .34984 L .87202 .40018 L .87698 .44507 L Mistroke .87946 .46397 L .88194 .47991 L .88442 .4926 L .8869 .50187 L .88814 .50522 L .88938 .50774 L .89063 .50943 L .89187 .51034 L .89311 .5105 L .89435 .50997 L .89559 .5088 L .89683 .50704 L .90675 .48107 L .90923 .47422 L .91171 .46849 L .91295 .46621 L .91419 .4644 L .91543 .4631 L .91667 .46237 L .91791 .46223 L .91915 .46271 L .92039 .46383 L .92163 .46558 L .92411 .47101 L .92535 .47464 L .92659 .47885 L .93651 .52726 L .94147 .55388 L .94395 .56549 L .94643 .57512 L .94767 .579 L .94891 .58219 L .95015 .58461 L .95139 .58623 L .95263 .58701 L .95387 .5869 L .95511 .5859 L .95635 .58398 L .95759 .58114 L .95883 .57739 L .96131 .56722 L .96379 .55369 L .96627 .53718 L .97619 .45227 L Mfstroke P P p .00741 w .2619 .01472 m .2619 .32099 L s .02224 w .2619 .32099 Mdot .00741 w .30952 .01472 m .30952 .56229 L s .02224 w .30952 .56229 Mdot .00741 w .35714 .01472 m .35714 .46383 L s .02224 w .35714 .46383 Mdot .00741 w .40476 .01472 m .40476 .34966 L s .02224 w .40476 .34966 Mdot .00741 w .45238 .01472 m .45238 .21368 L s .02224 w .45238 .21368 Mdot .00741 w .5 .01472 m .5 .0563 L s .02224 w .5 .0563 Mdot .00741 w .54762 .01472 m .54762 .25546 L s .02224 w .54762 .25546 Mdot .00741 w .59524 .01472 m .59524 .52396 L s .02224 w .59524 .52396 Mdot .00741 w .64286 .01472 m .64286 .48377 L s .02224 w .64286 .48377 Mdot .00741 w .69048 .01472 m .69048 .40454 L s .02224 w .69048 .40454 Mdot P P % End of Graphics MathPictureEnd\ \>"], "Graphics", Evaluatable->False, AspectRatioFixed->True, ImageSize->{282, 174}, ImageMargins->{{50, Inherited}, {Inherited, 3}}, ImageCache->GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHgOWifm_Kh00 03SXh^;R`00<`00IP00V@00c00c000c<`0cIP0cV@0cc00co`1V 001V<`1VIP1VV@1Vc01Vo`2I002I<`2IIP2IV@2Ic03<003<<`3I03>II IS>IVC>Ic3>Ioc?<03?<P4400<10P0f0@@00P4300/1000A0@03004107T100<00@40>@401@010@40008100<00@40=@400`01 0@040@03004100P1000A0@03004107T100<00@40>@401@010@40008100<00@40=@400`010@040@03 004100P100080@@00P4307T10`0l0@0500410@000P400`010@0e0@0400410@<02`4000h100<00@40 N@400`010@0l0@0500410@000P400`010@0e0@0500410@003@4000h100<00@40>`400`010@0k0@03 004103X10`030@04004103D10`030@03004100/1000>0@@0>P400`010@0k0@@0>`400`010@020@80 >04010010@4400X1001<0@0300410`400`010@020@03004100T100<00@40 2P400`010@0:0@03004100X100<00@402@400`010@050@03004100<100<00@402@400`010@090@03 004100X100<00@402P400`010@0A0@030041008100<00@40?`4003X10P040@03004100T10P0;0@03 004100X100<00@402P400`010@090@03004100D100<00@400`400`010@090@03004100T100<00@40 2P400`010@0:0@030041014100<00@400`400`010@0n0@00>P400`010@030@03004100T100<00@40 2P400`010@0:0@03004100X100<00@402@400`010@050@03004100<100<00@402@400`010@090@03 004100X100<00@402P400`010@0A0@03004100<100<00@40?P4003X100<00@400`4200X100<00@40 2P400`010@0:0@03004100X100<00@402@400`010@040@03004100@100<00@402@400`010@090@03 004100X100<00@402P400`010@0A0@03004100<100<00@40?P4003X100<00@4010400`010@080@03 004100X100<00@402P400`010@0:0@03004100T100<00@4010400`010@040@03004100T100<00@40 2@400`010@0:0@03004100X100<00@404@400`010@030@03004103h1000j0@03004100@100<00@40 20400`010@0:0@03004100X100<00@402P400`010@090@03004100@100<00@401@400`010@080@03 004100T100<00@402P400`010@0:0@030041010100<00@401@400`010@0m0@00>P400`010@040@03 004100P100<00@402P400`010@0:0@03004100X100<00@402@400`010@040@03004100D100<00@40 20400`010@090@03004100X100<00@402P400`010@0@0@03004100D100<00@40?@4003X100<00@40 10400`010@080@802`400`010@0:0@03004100X100<00@402@400`010@030@03004100H100<00@40 20400`010@090@03004100X100<00@402P400`010@0@0@03004100D100<00@40?@4003T100<00@40 1@400`010@080@03004100X100<00@402P400`010@0:0@03004100T100<00@400`400`010@060@03 004100P100<00@402@400`010@0:0@03004100X100<00@4040400`010@050@03004103d1000i0@03 004100D100<00@4020400`010@0:0@03004100X100<00@402P400`010@090@03004100<100<00@40 1P400`010@080@03004100T100<00@402P400`010@0:0@030041010100<00@401P400`010@0l0@00 >@400`010@050@03004100P100<00@402P400`010@0:0@03004100X100<00@402@400`010@030@03 004100L100<00@401`400`010@090@03004100X100<00@402P400`010@0@0@03004100H100<00@40 ?04003T10P040@05004100400`050@03004100X100<00@402P400`010@0:0@03004100T100<00@40 0`400`010@070@03004100L100<00@402@400`010@0:0@03004100X100<00@4040400`010@060@03 004103`1000h0@8000<100401@400`010@020@03004100810`0:0@03004100X100<00@402P400`01 0@090@03004100<100<00@401`400`010@070@03004100T100<00@402P400`010@0:0@0300410101 00<00@401P400`010@0l0@00>04010010@060@030041008100<00@400P400`010@0:0@03004100X1 00<00@402P400`010@090@03004100<100<00@401`400`010@070@03004100T100<00@402P400`01 0@0:0@030041010100<00@401P400`010@0l0@00;@400`010@080@04004100H100<00@000P050@03 004100X100<00@402P400`010@0:0@03004100T100<00@400P400`010@080@03004100L100<00@40 2@400`010@0:0@03004100X100<00@4040400`010@070@03004103/1000/0@<02@4010010@060@03 004000L100<00@402P400`010@0:0@03004100X100<00@402@400`010@020@03004100P100<00@40 1`400`010@090@03004100X100<00@402P400`010@0?0@03004100P100<00@40>`4002`100@00@40 204010010@060@03004000L100<00@402P400`010@0:0@03004100X100<00@402@400`010@020@03 004100P100<00@401`400`010@090@03004100X100<00@402P400`010@0?0@03004100P100<00@40 >`4002`100@00@401`40100100070@03004000<010400`010@0:0@03004100X100<00@402P400`01 0@090@030041008100<00@40204200P100<00@402@400`010@0:0@03004100X100<00@403`400`01 0@080@03004103/1000[0@0500410@001`400`010@080@03004100L10P0;0@03004100X100<00@40 2P400`010@090@030041008100<00@402@400`010@060@03004100T100<00@402P400`010@0:0@03 004100l100<00@402@400`010@0j0@00:`400`010@020@03004100@100<00@4020400`010@070@03 004100X100<00@402P400`010@0:0@03004100T100<00@400P400`010@090@03004100H100<00@40 2@400`010@0:0@03004100X100<00@403`400`010@090@03004103X1000[0@030041008100<00@40 10400`010@090@03004100H100<00@402P400`010@0:0@03004100X100<00@402@400`010@020@03 004100T100<00@401P400`010@090@03004100X100<00@402P400`010@0?0@03004100T100<00@40 >P4002/100<00@400`400`010@020@802`400`010@060@03004100X100<00@402P400`010@0:0@03 004100T100D00@41000<0@03004100H100<00@402@400`010@0:0@03004100X100<00@403`400`01 0@090@03004103X1000Z0@801@400`010@020@03004100X100<00@401P400`010@0:0@03004100X1 00<00@402P400`010@090@0500410@0030400`010@060@03004100T100<00@402P400`010@0:0@03 004100l100<00@402@400`010@0j0@00:P400`010@040@030041008100<00@402P400`010@060@03 004100X100<00@402P400`010@0:0@03004100T100D00@41000<0@03004100H100<00@402@400`01 0@0:0@03004100X100<00@403`400`010@090@03004103X1000Z0@03004100@10P030@03004100X1 00<00@401P4200/100<00@402P400`010@0:0@03004100T100D00@41000<0@03004100H100<00@40 2@400`010@0:0@03004100X100<00@403P400`010@0;0@03004103T1000Z0@03004100D100D00@41 000<0@03004100H100<00@402P400`010@0:0@03004100X100<00@402@400`010@0200`100<00@40 1P400`010@090@03004100X100<00@402P400`010@0>0@03004100/100<00@40>@4002X100<00@40 1P400`01000=0@03004100H100<00@402P400`010@0:0@03004100X100<00@402@4010010@0=0@03 004100H100<00@402@400`010@0:0@03004100X100<00@403P400`010@0;0@03004103T1000Y0@03 004100L10`0=0@03004100H100<00@402P400`010@0:0@03004100X100<00@402@4010010@0=0@03 004100H100<00@402@400`010@0:0@03004100X100<00@403P400`010@0;0@03004103T1000Y0@03 004101P100<00@401@400`010@0:0@03004100X100<00@402P400`010@090@04004100h100<00@40 1@400`010@090@03004100X100<00@402P400`010@0>0@03004100/100<00@40>@4002T100<00@40 60400`010@050@03004100X100<00@402P400`010@0:0@03004100<10P040@04004100h100<00@40 1@400`010@090@03004100X100<00@402P400`010@0>0@03004100/10P060@800@04004000D100<00@40;P4002T100<00@406@400`01 0@040@802`400`010@0:0@03004100X100D00@4100060@@040400`010@040@03004100T100<00@40 2P400`010@0:0@03004100`100<00@40404200H100<00@40;P4002P10P0K0@03004100@100<00@40 2P400`010@0:0@03004100X100D00@4100060@@040400`010@040@03004100T100<00@402P400`01 0@0:0@03004100`100<00@406@400`010@0]0@00:0400`010@0J0@03004100@100<00@402P400`01 0@0:0@03004100X100<00@400P060@@040400`010@040@03004100T100<00@402P400`010@0:0@03 004100`100<00@406@400`010@0]0@00:0400`010@0J0@03004100@100<00@402P400`010@0:0@03 004100X100@00@406`4200D100<00@402@400`010@0:0@03004100X100<00@4030400`010@0I0@03 004102d1000X0@03004101T110040@03004100X100<00@402P400`010@0:0@04004101`100<00@40 0`400`010@090@03004100X100<00@402P400`010@0<0@03004101T100<00@40;@4002P100<00@40 6P4200D100<00@402P400`010@0:0@03004100X100@00@4070400`010@030@03004100T100<00@40 2P400`010@0:0@03004100`100<00@406@400`010@0]0@00:0400`010@0J0@801@4300X100<00@40 2P400`010@0:0@04004101`100<00@400`400`010@090@03004100X100<00@402P400`010@0<0@03 004101T100<00@40;@4002L10P0L0@801@400`010@0:0@03004100X100<00@402P400`01000M0@03 004100<100<00@402@400`010@0:0@03004100X100<00@4030400`010@0J0@03004102`1000W0@03 004101/10P050@03004100X100<00@402P400`010@0:0@03004001d100<00@400`400`010@090@03 004100X100<00@402P400`010@0<0@03004101X100<00@40;04002L100<00@406P4300D100<00@40 2P400`010@0:0@03004100X100<00@007@400`010@030@03004100T100<00@402P400`010@0:0@03 004100/100<00@406`400`010@0/0@009`400`010@0L0@03004100<100<00@402P400`010@0:0@03 004100X100<00@007P400`010@0400X100<00@402P400`010@0:0@03004100<10`050@03004101/1 00<00@40;04002L100<00@4070400`010@030@802`400`010@0:0@03004100X100<00@007P400`01 0@0400X100<00@402P400`010@0:0@03004100<100@00@400`4201d100<00@40;04002L100<00@40 70400`010@030@03004100X100<00@402P400`010@0:0@03004001h100<00@40100:0@03004100X1 00<00@402P400`010@020@0500410@000`400`010@0L0@03004102`1000W0@03004101`100<00@40 0`400`010@0:0@03004100X100<00@402P400`01000O0@03004000<02P400`010@0:0@03004100X1 00<00@400P400`010@020@04004101h100<00@40;04002L100<00@4070400`010@030@03004100X1 00<00@402P400`010@0:0@03004001l10`0=0@03004100X100<00@402P400`010@020@03004100<1 0P0O0@03004102`1000W0@03004101`100<00@400`400`010@0:0@03004100X100<00@402P430241 00<00@402`400`010@0:0@03004100X100<00@400P400`010@0T0@03004102`1000W0@03004101`1 00<00@400`400`010@0:0@03004100X100<00@402P4202<100<00@402P400`010@0:0@03004100X1 00D00@41000X0@03004102/1000V0@03004101h100<00@400P4200/100<00@402P400`010@0:0@80 8`400`010@0:0@03004100X100<00@402P401@010@4002P100<00@40:`4002H100<00@407P400`01 0@020@03004100X100<00@402P400`010@0:0@808`400`010@0:0@03004100X100<00@402P401@01 0@4002P100<00@40:`4002H100<00@407P400`010@020@03004100X100<00@402P400`010@0:0@80 90400`010@090@03004100X100<00@402P400`010@0202P100<00@40:`4002H100<00@407P400`01 0@020@03004100X100<00@402P400`010@0:0@8090400`010@090@03004100X100<00@402P401001 0@0Y0@03004102/1000V0@03004101h100<00@400P400`010@0:0@03004100X100<00@402P4202@1 00<00@402@400`010@0:0@03004100X100@00@40:@400`010@0[0@009P400`010@0N0@0300410081 00<00@402P400`010@0:0@03004100X10P0T0@802P400`010@0:0@03004100X100@00@40:@400`01 0@0[0@009P400`010@0N0@03004100810P0;0@03004100X100<00@402P4202D100<00@4020400`01 0@0:0@03004100X100@00@40:@400`010@0[0@009P400`010@0N0@030041008100<00@402P400`01 0@0:0@03004100X10P0U0@03004100P100<00@402P400`010@0:0@04004102T10P0/0@009P400`01 0@0O0@0500410@0030400`010@0:0@03004100X10P0U0@03004100P100<00@402P400`010@0:0@04 004102X100<00@40:P4002H100<00@407`401@010@4000`100<00@402P400`010@0:0@809P400`01 0@070@03004100X100<00@402P4010010@0Z0@03004102X1000V0@03004101l100<00@401@090@03 004100X100<00@402P4202H100<00@401`400`010@0:0@03004100X100@00@40:P400`010@0Z0@00 9P400`010@0O0@03004100H020400`010@0:0@03004100X100<00@409@400`010@070@03004100X1 00<00@402P4010010@0Z0@03004102X1000V0@030041020100<00@000`000`400@070@03004100X1 00<00@402P400`010@0V0@03004100H100<00@402P400`010@0:0@03004002/100<00@40:P4002H1 00<00@40804600030@0100L100<00@402P400`010@0:0@03004102H100<00@401P400`010@0:0@03 004100X100<00@00:`400`010@0Z0@009@400`010@0T0@030041008100<00@401@400`010@0:0@03 004100X100<00@409P400`010@060@03004100X100<00@402P400`01000[0@03004102X1000U0@03 004102@100<00@400P400`010@050@03004100X100<00@402P400`010@0W0@03004100D100<00@40 2P400`010@0:0@03004002/100<00@40:P4002D100<00@40404400<100<00@400P4300D100<00@40 0P400`010@050@03004100X100<00@402P400`010@0W0@03004100D100<00@402P400`010@0:0@03 004002`100<00@40:@4002D100<00@404P400`010@0:0@030041008100<00@400`400`010@040@03 004100X100<00@402P400`010@0W0@03004100D100<00@402P400`010@0:0@03004002`100<00@40 :@4002D100<00@404P400`010@0:0@03004100810`030@03004100@100<00@402P400`010@080@@0 :@400`010@040@03004100X100<00@402P400`01000/0@03004102T1000U0@030041018100<00@40 1`4300D100<00@400`400`010@040@03004100X100<00@40204402T100<00@4010400`010@0:0@03 004100X100<00@00;0400`010@0Y0@009@400`010@0B0@03004100L100<00@401@400`010@030@03 004100@100<00@402P400`010@080@@0:@400`010@040@03004100X100<00@402P4302`100<00@40 :@4002D100<00@40404300T100<00@401@400`010@030@03004100@100<00@402P400`010@080@@0 :@4200D100<00@402P400`010@0:0@80;@400`010@0Y0@009@400`010@0B0@03004100L110040@03 004100<100<00@4010400`010@0:0@03004100X100<00@40:@400`010@030@03004100X100<00@40 2P4202d100<00@40:@4002@10P0V0@03004100@100<00@400`400`010@0:0@03004100X100<00@40 :@400`010@030@03004100X100<00@402P4202d100<00@40:@4002@100<00@409@4200D100<00@40 0`400`010@0:0@03004100T100<00@40:P400`010@030@03004100X100<00@402P4202d100<00@40 :@4002@100<00@409@400`010@040@03004100<100<00@402P400`010@090@03004102/100<00@40 0P400`010@0:0@03004100X10P0]0@03004102T1000T0@03004102D100<00@4010400`010@030@03 004100X100<00@402@400`010@0[0@030041008100<00@402P400`010@0:0@80;@400`010@0Y0@00 90400`010@0U0@03004100@100<00@400`400`010@0:0@03004100T100<00@40:`400`010@020@03 004100X100<00@402P4202h100<00@40:04002@100<00@409@400`010@040@03004100<100<00@40 2P400`010@090@03004102`100D00@41000<0@03004100X10P0^0@03004102P1000S0@809`4200D1 00<00@400`400`010@0:0@03004100T100<00@40;0401@010@4000`100<00@402P4202h100<00@40 :04002<100<00@409P400`010@040@03004100<100<00@402P400`010@090@03004102`100D00@41 000<0@03004100X100<00@40;@400`010@0X0@008`400`010@0V0@03004100@100<00@400`400`01 0@0:0@03004100T100<00@40;0401@010@4000`100<00@402P400`010@0]0@03004102P1000S0@03 004102H100<00@40104200@100<00@402P400`010@090@03004102`100D00@41000<0@03004100X1 00<00@40;@400`010@0X0@008`400`010@0V0@03004100D100<00@400P400`010@0:0@03004100T1 00<00@40;0401@010@4000`100<00@40204402h100<00@40:04002<100<00@409P400`010@050@03 0041008100<00@402P400`010@080@03004102h100@00@4030400`010@080@@0;P400`010@0X0@00 8`400`010@0V0@801P400`010@020@03004100X100<00@4020400`010@0^0@04004100`100<00@40 204402h100<00@40:04002810P0X0@03004100D100<00@400P400`010@0:0@03004100P100<00@40 ;P4010010@0<0@03004100P1100^0@80:@40028100<00@409`400`010@050@030041008100<00@40 2P400`010@080@03004102h100@00@4030400`010@090@03004102l100<00@409`40028100<00@40 9`400`010@050@030041008100<00@402P400`010@080@03004102h100@00@4030400`010@090@03 004102l100<00@409`40028100<00@409`400`010@050@030041008100<00@402P400`010@080@03 004102h100@00@4030400`010@090@03004102l100<00@409`40028100<00@409`400`010@050@03 0041008100<00@402P400`010@070@03004102l100@00@4030400`010@090@03004102l100<00@40 9`4001T10`060@03004102L10P060@800`400`010@0:0@03004100L100<00@40;`4010010@0<0@03 004100T100<00@40;`400`010@0W0@00604010010@050@80:@400`010@060@0500410@0030400`01 0@070@030041030100<00@0030400`010@090@03004102l10P0X0@0060401@010@4000@100<00@40 :0400`010@060@0500410@0030400`010@070@030041030100<00@0030400`010@090@0300410301 00<00@409P4001P100@00@410P030@03004102P100<00@401P401@010@4000`100<00@401`400`01 0@0`0@03004000`100<00@402@400`010@0`0@03004102H1000H0@030041008100D00@41000Z0@03 004100H100D00@41000<0@03004100L100<00@40<0400`01000<0@03004100T100<00@40<0400`01 0@0V0@0060400`010@020@8000<100008P4400@100<00@401P401@010@4000`100<00@401`400`01 0@0`0@03004000`100<00@402042038100<00@409P4001L100<00@4010400`01000S0@03004100D1 0`060@0500410@0030400`010@070@030041030100<00@0030400`010@080@030041034100<00@40 5`400`010@0<0@005`400`010@050@03004102<100<00@4010400`010@060@0500410@0030400`01 0@060@800@03004100`1000F0@03004102/1 00@00@4010400`010@070@04004100X110070@03004103810P0<0@03004100P100<00@40<@400`01 0@060@04004100`100<00@403@4001H100<00@40;04200D100<00@401`4010010@090@D01`400`01 0@0b0@8030400`010@080@03004103410P060@800P400`010@0:0@03004100d1000F0@03004103<1 0P080@04004100T100D00@4100070@03004103810P090@@02P400`010@0b0@03004100@100<00@40 0P400`010@090@03004100d1000F0@03004103<100<00@401`4010010@090@030041008100<00@40 10400`010@0b0@802@400`01000300P100<00@400@005@400`010@0d0@03004100P1 00<00@0020400`010@050@0300410080=@4200L100<00@4010400`010@050@03004103@100D00@41 00070@03004100L100<00@403P4001D100<00@40=0400`010@080@03004000L100<00@401P401001 0@0f0@801`400`010@040@03004100D100<00@40=@400`0100080@03004100L100<00@403P4001@1 0P0f0@03004100P100<00@001`400`010@070@<0=P4200L100<00@4010400`010@050@03004103D1 0`080@03004100L100<00@403P4001@100<00@40=@400`010@080@03004000L100<00@4020400`01 0@0f0@03004100@100<00@401@400`010@050@03004103H100<00@401`400`010@070@03004100h1 000D0@03004103D100<00@4020400`0100070@030041044100<00@4010400`010@060@03004100@1 00<00@40@@400`010@060@03004100h1000D0@03004103D10P090@03004000H100<00@40@@4400@1 00<00@401P400`010@030@030041048100<00@401P400`010@0>0@0050400`010@0e0@03004100P1 00<00@001P400`010@110@@010400`010@060@03004100<100<00@40@P400`010@060@03004100h1 000D0@03004103D100<00@402@4200H100<00@40@@4400<100<00@401`400`010@030@0300410481 00<00@401@400`010@0?0@004`4203L100<00@402@4200H100<00@40@@4400<100<00@4020400`01 0@020@030041048100<00@401@400`010@0?0@004`400`010@0f0@03004100T10P060@03004104<1 00<00@400P400`010@080@0500410@00AP400`010@040@03004100l1000C0@03004103H10P0:0@80 1@400`010@140@0500410@002`401@010@4004H100<00@4010400`010@0?0@004`400`010@0f0@03 004100T10P050@03004104@100D00@41000;0@0500410@00AP400`010@040@03004100l1000C0@03 004103H100<00@402@4200D100<00@40A@4010010@0<0@04004104H100<00@4010400`010@0?0@00 4`400`010@0f0@03004100T10P050@03004104D100<00@003@40100100170@03004100<100<00@40 3`4001810P0h0@03004100T10P050@03004104D10`0=0@<0B0400`010@030@03004100l1000B0@03 004102<110030@03004100810`050@03004100T110030@03004104H100<00@403@400`010@170@03 004100<100<00@403`40018100<00@408`400`010@0<0@03004100810`090@@00P420:8100<00@40 0P420141000B0@03004102@100<00@402`400`010@020@03004100T110020@0300410:4100<00@40 0P400`010@0@0@004P400`010@0U0@03004100L10`050@03004100T110020@0300410:4100<00@40 0P400`010@0@0@004P400`010@0V0@03004100H100<00@401@400`010@0;0@0500410@00Y0400`01 0@020181000A0@809@4010010@080@03004100D100<00@402`4010010@2U0@04004101<1000A0@03 004102D10P090@@010400`010@0;0@0400410:D100@00@404`40014100<00@40>04200d10P2W0@03 004001<1000=0@0500410@00>P400`010@0<0@80Y`4201@1000=0@0500410@00>P400`010@3;0@00 3P4010010@0j0@03004100@03004003/100<00@40b`4000h10`0k0@0300410"], ImageRangeCache->{{{0, 281}, {173, 0}} -> {-6.05545, -0.200702, 0.0786865, \ 0.0171274}}], Cell["\<\ We could derive the properties of the DFT by convolving the regular \ CFT with the CFT of the appropriate sequence of delta functions. But I won't \ pursue that here.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["The inverse is obviously going to look something like", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ RowBox[{\(f \((n\[CapitalDelta])\)\), " ", "=", " ", RowBox[{ RowBox[{"(", StyleBox[\(Sum\ or\ Integral\ over\ \[Omega]\), FontFamily->"Times", FontSlant->"Italic"], ")"}], " ", "g", \((\[Omega])\), \(e\^\(-i\[Omega]n\[CapitalDelta]\)\)}]}]], \ "DisplayFormula", FontSize->14, FontWeight->"Plain"], Cell[TextData[{ "but we have yet to figure out the details. It all depends on what values \ we use for the ", StyleBox["\[Omega]", FontFamily->"Symbol"], "'s." }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Choosing the frequencies", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "There are two important points determining the choice of ", StyleBox["\[Omega]", FontFamily->"Symbol"], "'s, corresponding (in reverse) to the points 1 and 2 above:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "3. Because of point 2 above--the discrete time sampling--the e", StyleBox["i", FontVariations->{"CompatibilityType"->"Superscript"}], StyleBox["\[Omega]", FontFamily->"Symbol", FontVariations->{"CompatibilityType"->"Superscript"}], StyleBox["t", FontVariations->{"CompatibilityType"->"Superscript"}], " functions are only evaluated with t a multiple of ", StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], ". But that means that adding 2", StyleBox["\[Pi]", FontFamily->"Symbol"], "/", StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], " onto any ", StyleBox["\[Omega]", FontFamily->"Symbol"], " gives the same result:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(e\^i\[Omega]n\[CapitalDelta]\ = \ e\^\(i \((\[Omega] + \(2 \[Pi]\)\/\[CapitalDelta])\) \ n\[CapitalDelta]\)\)], "DisplayFormula", FontSize->16], Cell[TextData[{ "So the DFT g(", StyleBox["\[Omega]", FontFamily->"Symbol"], ") is periodic in ", StyleBox["\[Omega]", FontFamily->"Symbol"], " space, g", StyleBox["(", FontFamily->"Courier", FontSize->12], StyleBox["\[Omega]", FontFamily->"Symbol", FontSize->12], StyleBox["+2", FontFamily->"Courier", FontSize->12], StyleBox["\[Pi]", FontFamily->"Symbol", FontSize->12], StyleBox["/", FontFamily->"Courier", FontSize->12], StyleBox["\[CapitalDelta]", FontFamily->"Symbol", FontSize->12], StyleBox[") = ", FontFamily->"Courier", FontSize->12], "g", StyleBox["(", FontFamily->"Courier", FontSize->12], StyleBox["\[Omega])", FontFamily->"Symbol", FontSize->12], ". But that means that including a range wider than ", StyleBox["2", FontFamily->"Courier", FontSize->12], StyleBox["\[Pi]", FontFamily->"Symbol", FontSize->12], StyleBox["/", FontFamily->"Courier", FontSize->12], StyleBox["\[CapitalDelta]", FontFamily->"Symbol", FontSize->12], " in ", StyleBox["\[Omega]", FontFamily->"Symbol"], " would just include the same points more than once, so we may as well \ restrict ourselves to one period. We could choose a range like" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\(-\(\[Pi]\/\[CapitalDelta]\)\)\ < \ \[Omega]\ \[LessEqual] \ \[Pi]\/\ \[CapitalDelta]\)], "DisplayFormula", FontSize->14], Cell["or like", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(0\ \[LessEqual] \[Omega]\ < \ \(2 \[Pi]\)\/\[CapitalDelta]\)], \ "DisplayFormula", FontSize->14], Cell[TextData[{ "The first is much more natural for those experienced with ordinary Fourier \ transforms (CFTs), but in fact ", StyleBox["the second is the convention for DFTs", FontSlant->"Italic"], ", mainly for technical reasons in computer implementation. The same \ information is included but not in so natural an order. For example, the \ information for frequency -0.3", StyleBox["\[Pi]", FontFamily->"Symbol", FontSize->12], StyleBox["/", FontFamily->"Courier", FontSize->12], StyleBox["\[CapitalDelta]", FontFamily->"Symbol", FontSize->12], " is actually to be found at frequency 1.7", StyleBox["\[Pi]", FontFamily->"Symbol", FontSize->12], StyleBox["/", FontFamily->"Courier", FontSize->12], StyleBox["\[CapitalDelta]", FontFamily->"Symbol", FontSize->12], " instead." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ 4. Because of point 1 above--the finite range [0,T] of t--we may as \ well also regard f(t) as periodic in time, with period T, just as for Fourier \ series. That means\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(f \((t + T)\) = f \((t)\)\)], "DisplayFormula", Evaluatable->False, AspectRatioFixed->True, FontSize->14], Cell["\<\ which implies (from our tentative inverse transform above) \ that\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(e\^\(-i\[Omega]T\)\ = \ 1\)], "DisplayFormula", FontSize->14], Cell[TextData[{ "But this gives just a discrete set of possibilities for ", StyleBox["\[Omega]", FontFamily->"Symbol", FontSize->12], ":" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\[Omega]\ = \ \(\(...\)\(\ \ \)\(-3\) \(\[Omega]\_0\)\), \ \(-2\) \ \[Omega]\_0, \ \(-\[Omega]\_0\), \ 0\ , \ \[Omega]\_0, \ 2 \[Omega]\_0, \ 3 \[Omega]\_0, \ ... \)], "DisplayFormula", FontSize->14], Cell["where", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\[Omega]\_0\ = \ \(\(\(2 \[Pi]\)\/T\)\(.\)\)\)], "DisplayFormula", FontSize->14], Cell[TextData[{ "When we combine these two points, we see that we get a finite set of \ values for ", StyleBox["\[Omega]", FontFamily->"Symbol"], ", namely" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\[Omega]\ = \ 0, \[Omega]\_0, \ 2 \[Omega]\_0, \ 3 \[Omega]\_0, \ \(\(...\)\(\ \)\((N - 1)\) \(\(\[Omega]\_0\)\(.\)\)\)\)], "DisplayFormula", FontSize->14], Cell[TextData[{ "You might have expected one more value, ", StyleBox["\[Omega]", FontFamily->"Symbol", FontSize->12], StyleBox[" = ", FontFamily->"Courier", FontSize->12], "N", StyleBox["\[Omega]", FontFamily->"Symbol", FontSize->12], StyleBox["0", FontFamily->"Courier", FontSize->10, FontVariations->{"CompatibilityType"->"Subscript"}], " = 2", StyleBox["\[Pi]", FontFamily->"Symbol"], "/", StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], ", but by point 3 that's actually equivalent to ", StyleBox["\[Omega]", FontFamily->"Symbol", FontSize->12], StyleBox[" = 0", FontFamily->"Courier", FontSize->12], ", and we don't want to count it twice." }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Marvelling", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Please note the prettiness of the result we just derived: if we use a \ discrete set of N equally spaced times, we end up needing a a discrete set of \ N equally spaced frequencies. But also note that the discreteness in ", StyleBox["\[Omega]", FontFamily->"Symbol"], " space comes from the finite length in t-space, and vice-versa. It's ", StyleBox["not", FontSlant->"Italic"], " discreteness implies discreteness and finiteness implies finiteness, as \ is often erroneously supposed." }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Tidying up", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ We didn't quite finish stating the inverse transform. It's now \ clear that it's also going to be a finite sum, and in fact it looks just like \ the forward transform except for a minus sign and a prefactor:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(f \((n\[CapitalDelta])\)\ = \ \(1\/N\) \(\[Sum]\+\(k = 0\)\%\(N - 1\)g \ \((k\[Omega]\_0)\) e\^\(\(-ik\[Omega]\_0\) n\[CapitalDelta]\)\)\)], "DisplayFormula",\ FontSize->14], Cell[TextData[{ "(We haven't actually ", StyleBox["proved", FontSlant->"Italic"], " that this is the true inverse, but it can be done. See for example \ Arfken & Weber [5th edition] section 14.6)" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "If we write f", StyleBox["n", FontVariations->{"CompatibilityType"->"Subscript"}], " for the n'th time sample ", StyleBox["f(n", FontFamily->"Courier", FontSize->12], StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], StyleBox[")", FontFamily->"Courier", FontSize->12], " and g", StyleBox["k", FontVariations->{"CompatibilityType"->"Subscript"}], " for the k'th frequency amplitude ", StyleBox["g(k", FontFamily->"Courier", FontSize->12], StyleBox["\[Omega]", FontFamily->"Symbol", FontSize->12], StyleBox["0", FontFamily->"Symbol", FontSize->10, FontVariations->{"CompatibilityType"->"Subscript"}], StyleBox[")", FontFamily->"Courier", FontSize->12], ", then everything looks particularly pretty:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ StyleBox[ FrameBox[ RowBox[{ RowBox[{\(g\_k\), " ", "=", " ", RowBox[{\(1\/\@N\), RowBox[{ StyleBox[\(\[Sum]\+\(n = 0\)\%\(N - 1\)\), FontWeight->"Plain", FontSlant->"Plain", FontTracking->"Plain", FontVariations->{"Underline"->False, "Outline"->False, "Shadow"->False, "StrikeThrough"->False, "Masked"->False, "CompatibilityType"->0, "RotationAngle"->0}], RowBox[{ SubscriptBox[ StyleBox["f", FontSlant->"Plain"], StyleBox["n", FontSlant->"Plain"]], SuperscriptBox["e", RowBox[{"2", RowBox[{"\[Pi]ink", "/", StyleBox["N", FontSlant->"Plain"]}]}]]}]}]}]}], "\[IndentingNewLine]", RowBox[{ SubscriptBox[ StyleBox["f", FontSlant->"Plain"], StyleBox["n", FontSlant->"Plain"]], " ", "=", " ", RowBox[{ FractionBox["1", SqrtBox[ StyleBox["N", FontSlant->"Plain"]]], RowBox[{ UnderoverscriptBox["\[Sum]", RowBox[{ StyleBox["k", FontSlant->"Plain"], "=", "0"}], RowBox[{ StyleBox["N", FontSlant->"Plain"], "-", "1"}]], RowBox[{ SubscriptBox[ StyleBox["g", FontSlant->"Plain"], StyleBox["k", FontSlant->"Plain"]], SuperscriptBox["e", RowBox[{\(-2\), RowBox[{"\[Pi]ink", "/", StyleBox["N", FontSlant->"Plain"]}]}]]}]}]}]}]}]], FontWeight->"Plain", FontSlant->"Plain", FontTracking->"Plain", FontVariations->{"Underline"->False, "Outline"->False, "Shadow"->False, "StrikeThrough"->False, "Masked"->False, "CompatibilityType"->0, "RotationAngle"->0}]], "DisplayFormula", Evaluatable->False, FontSize->14], Cell[TextData[{ "Note that I've also made the transforms symmetrical by moving a factor of \ ", Cell[BoxData[ \(TraditionalForm\`\@N\)]], " into the definition of g", StyleBox["k", FontVariations->{"CompatibilityType"->"Subscript"}], ", just like moving around 2", StyleBox["\[Pi]", FontFamily->"Symbol"], "'s in the ordinary Fourier transform. The above are the DFT and its \ inverse as defined in ", StyleBox["Mathematica", FontSlant->"Italic"], ". As usual, different authors vary in where they put the prefactors and \ the minus sign, and in other aspects of notation." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Note also that all the nasty constants (", StyleBox["\[Omega]", FontFamily->"Symbol"], StyleBox["0", FontFamily->"Symbol", FontSize->10, FontVariations->{"CompatibilityType"->"Subscript"}], " and ", StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], ") have disappeared, and that ", StyleBox["all", FontSlant->"Italic"], " you need to know about a list of numbers f", StyleBox["n", FontVariations->{"CompatibilityType"->"Subscript"}], " in order to take its DFT is its length N. Mathematically, the DFT and \ its inverse are just operations that convert one list of N numbers into \ another list of N numbers:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \({f\_0, \ f\_1, \ \[Ellipsis], \ \ f\_\(N - 1\)}\ \[LongLeftRightArrow]\ {g\_0, \ \ g\_1, \ \[Ellipsis], \ g\_\(N - 1\)}\)], "DisplayFormula", CellEditDuplicate->False, FontSize->14] }, Closed]], Cell[CellGroupData[{ Cell["The DFT as a matrix multiplication", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["If you like you can regard this as a matrix multiplication", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ RowBox[{ RowBox[{"(", GridBox[{ {\(g\_0\)}, {\(g\_1\)}, {"\[VerticalEllipsis]"}, {\(g\_\(N - 1\)\)} }], ")"}], "=", RowBox[{ RowBox[{"(", GridBox[{ {"\[DescendingEllipsis]", "\[CenterEllipsis]", "\[CenterEllipsis]", "\[CenterEllipsis]"}, {"\[CenterEllipsis]", "\[DescendingEllipsis]", "\[CenterEllipsis]", "\[CenterEllipsis]"}, {"\[CenterEllipsis]", "\[CenterEllipsis]", "\[DescendingEllipsis]", "\[CenterEllipsis]"}, {"\[CenterEllipsis]", "\[CenterEllipsis]", "\[CenterEllipsis]", "\[DescendingEllipsis]"} }], ")"}], RowBox[{"(", GridBox[{ {\(f\_0\)}, {\(f\_1\)}, {"\[VerticalEllipsis]"}, {\(f\_\(N - 1\)\)} }], ")"}]}]}]], "DisplayFormula", CellEditDuplicate->False, FontSize->14, FontWeight->"Plain", FontVariations->{"CompatibilityType"->0}], Cell["\<\ and you can easily figure out what the matrix elements are (see \ Problem 1).\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "The matrix for the inverse DFT is of course the inverse matrix of the \ forward DFT. It's also the complex conjugate of the forward matrix, since \ changing the sign of \"i\" changes the DFT into its inverse. The matrix is \ ", StyleBox["symmetric", FontSlant->"Italic"], " and ", StyleBox["unitary", FontSlant->"Italic"], ", so the conjugate ", StyleBox["is", FontSlant->"Italic"], " the inverse." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "In general the DFT operates on a list of ", StyleBox["complex", FontSlant->"Italic"], " numbers. Even if the original list f", StyleBox["n", FontVariations->{"CompatibilityType"->"Subscript"}], " has only real numbers, the transformed list g", StyleBox["k", FontVariations->{"CompatibilityType"->"Subscript"}], " is likely to contain complex entries. Actually realness of f", StyleBox["n", FontVariations->{"CompatibilityType"->"Subscript"}], " leads to evenness of g", StyleBox["k", FontVariations->{"CompatibilityType"->"Subscript"}], ", where evenness means g", StyleBox["k", FontVariations->{"CompatibilityType"->"Subscript"}], " = g", StyleBox["N-k ", FontVariations->{"CompatibilityType"->"Subscript"}], "\[LongDash] even around the midpoint of the range. Similarly evenness of \ f", StyleBox["n", FontVariations->{"CompatibilityType"->"Subscript"}], " (in the same sense) leads to realness of g", StyleBox["k", FontVariations->{"CompatibilityType"->"Subscript"}], ". If the original sequence f", StyleBox["n", FontVariations->{"CompatibilityType"->"Subscript"}], " is real ", StyleBox["and", FontSlant->"Italic"], " even, then so is the transform g", StyleBox["k", FontVariations->{"CompatibilityType"->"Subscript"}], "." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Note that the DFT is ", StyleBox["exact", FontSlant->"Italic"], ". It's not an approximation to a \"proper\" Fourier transform, it's a \ completely valid transform in its own right. Taking the DFT and then the \ inverse DFT of a list on numbers should give back exactly the same list, \ apart from any computational (rounding) errors." }], "Text", Evaluatable->False, AspectRatioFixed->True, Background->RGBColor[1, 1, 0]] }, Closed]], Cell[CellGroupData[{ Cell["Problem 1", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "a. If I write the above matrix as [", StyleBox["a", FontSlant->"Italic"], StyleBox["kn", FontVariations->{"CompatibilityType"->"Subscript"}], "] (where e.g. ", Cell[BoxData[ \(TraditionalForm\`a\_12\)]], " is the second element in the first row), figure out an expression for ", Cell[BoxData[ \(TraditionalForm\`a\_kn\)]], "." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "b. Work out an explicit matrix for the case N=4, using ", StyleBox["Mathematica", FontSlant->"Italic"], ". Note that a matrix in ", StyleBox["Mathematica", FontSlant->"Italic"], " is represented by a list of lists, and can be displayed nicely with ", StyleBox["//MatrixForm", SpanMaxSize->Automatic, FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". Read or review section 1.8 of the ", StyleBox["Mathematica", FontSlant->"Italic"], " \n book if necessary (especially subsection 1.8.3)." }], "Text", Evaluatable->False, Hyphenation->False, AspectRatioFixed->True], Cell[TextData[{ "c. Check that the inverse matrix (using ", StyleBox["Inverse[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ") is really the complex conjugate matrix [", StyleBox["a", FontSlant->"Italic"], StyleBox["kn", FontVariations->{"CompatibilityType"->"Subscript"}], StyleBox["*", FontVariations->{"CompatibilityType"->"Superscript"}], "]." }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["The FFT", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ The Fast Fourier Transform (FFT) is just a clever computer \ algorithm to perform a DFT efficiently on a list of numbers. It computes \ exactly the formulas given above, no more, no less.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ I'll use the name FFT when referring specifically to the algorithm, \ and DFT when referring to the process in general.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "You might expect an algorithm for a DFT to take a time proportional to N", StyleBox["2", FontVariations->{"CompatibilityType"->"Superscript"}], " for lists of length N, since the direct matrix multiplication would \ involve N", StyleBox["2", FontVariations->{"CompatibilityType"->"Superscript"}], " multiplications and almost N", StyleBox["2", FontVariations->{"CompatibilityType"->"Superscript"}], " additions. But in fact the FFT's running time (or ", StyleBox["computational complexity", FontSlant->"Italic"], ") is only proportional to N logN, which grows with N ", StyleBox["much", FontSlant->"Italic"], " less rapidly than N", StyleBox["2", FontVariations->{"CompatibilityType"->"Superscript"}], ". For large N the difference is dramatic, and the FFT makes possible lots \ of computations that would be effectively unthinkable without it." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ StyleBox["How does it work?", FontSlant->"Italic"], " That's a little tricky to explain, and I'm not going to try very hard. \ But let me say three things:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "1. When you look at the matrix, there are only N different possible \ values, not\nN", StyleBox["2", FontVariations->{"CompatibilityType"->"Superscript"}], ", so you could certainly save some time by computing them all first and \ reusing them as appropriate." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "2. The real key is to factorize N, and then use a representation of n and \ k based on the factors. It's both easiest to explain and easiest to do if N \ is a power of 2. Suppose for example that N = 16 = 2", StyleBox["4", FontVariations->{"CompatibilityType"->"Superscript"}], ". Then we can write any integer m in the range [0,15] as" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(m\ = \ 8 a\ + \ 4 b\ + \ 2 c\ + \ d\)], "DisplayFormula", FontSize->14], Cell["\<\ where a, b, c, and d are each either 0 or 1. This is just the \ binary decomposition. Thus\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(e\^\(2 \[Pi]in/N\)\ = \ \(A\^a\) \(B\^b\) \(C\^c\) D\^d\)], "DisplayFormula", FontSize->16], Cell[TextData[{ "where A = e", StyleBox["\[Pi]", FontFamily->"Symbol", FontVariations->{"CompatibilityType"->"Superscript"}], StyleBox["i", FontVariations->{"CompatibilityType"->"Superscript"}], ", B = e", StyleBox["\[Pi]", FontFamily->"Symbol", FontVariations->{"CompatibilityType"->"Superscript"}], StyleBox["i/2", FontVariations->{"CompatibilityType"->"Superscript"}], ", C = e", StyleBox["\[Pi]", FontFamily->"Symbol", FontVariations->{"CompatibilityType"->"Superscript"}], StyleBox["i/4", FontVariations->{"CompatibilityType"->"Superscript"}], ", D = e", StyleBox["\[Pi]", FontFamily->"Symbol", FontVariations->{"CompatibilityType"->"Superscript"}], StyleBox["i/8", FontVariations->{"CompatibilityType"->"Superscript"}], ". Once we calculate A, B, C, and D, we can get all the required \ exponentials (16) by multiplying them together in the right combinations." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "3. (The cop-out) This still isn't the whole story, or even quite the \ essence. If you really want to know how it works, I suggest reading ", StyleBox["Numerical Recipes", FontSlant->"Italic"], " (W.H. Press et al)." }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Mathematica's FFT", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell["Fourier[]", "Subsubsection"], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " has a built-in FFT called ", StyleBox["Fourier[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ":" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\(?Fourier\)\)], "Input"], Cell["\<\ As expected, this just takes a list of numbers and produces another \ list. For example:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Fourier[{1, 3, 5, 1}]\)], "Input", AspectRatioFixed->True], Cell["\<\ The length of the list doesn't have to be a power of 2, but like \ most FFT implementations it runs faster for powers of two.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Some imaginary parts are tiny, the result of rounding errors. The ", StyleBox["Chop[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " function will fix that by replacing any very small numbers by 0:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Chop[%]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "Note that you can apply many ", StyleBox["Mathematica", FontSlant->"Italic"], " functions to a list; they just apply themselves to each element of the \ list. This even applies to arithmetic operations; for example:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(10\ %\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(%^2\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "The last one did ", StyleBox["not", FontSlant->"Italic"], " calculate the dot product of the list with itself, but just squared each \ element. You can use \".\" for the dot product:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(% . %\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "How fast is ", StyleBox["Mathematica", FontSlant->"Italic"], "'s FFT? Let's make a list of 32768 (", Cell[BoxData[ \(TraditionalForm\`2\^15\)]], ") random numbers and take the FFT. Wrapping ", StyleBox["First[Timing[[...]]", FontFamily->"Courier", FontWeight->"Bold"], " around an evaluation just tells you how long it takes, discarding the \ result itself:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\(ranlist = Table[Random[], {32768}];\)\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(First[Timing[Fourier[ranlist]]]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "Not bad, huh? For comparison, you wouldn't even want to ", StyleBox["store the appropriate 32768 x 32768 matrix, let alone calculate \ with it.", FontSlant->"Italic"] }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["InverseFourier[]", "Subsubsection"], Cell[TextData[{ "The inverse FFT is called ", StyleBox["InverseFourier[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ":" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\(?InverseFourier\)\)], "Input", AspectRatioFixed->True], Cell["It should reverse the above process:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ft\ = \ Fourier[{1, 3, 5, 1}]\)], "Input"], Cell[BoxData[ \(InverseFourier[ft]\)], "Input", AspectRatioFixed->True] }, Closed]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["2. Simple Examples", "Section", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell["Square Pulse", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Let's start with the DFT of a square pulse. For small N we can \ construct the appropriate list of values by hand:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(square = N[{0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}]\)], "Input",\ AspectRatioFixed->True], Cell[TextData[{ "Let's plot it using ", StyleBox["ListPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " and use the ", StyleBox["PlotJoined->True", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " option to join the points:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ListPlot[square, PlotJoined \[Rule] True]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "The sloping lines are really just an artifact of joining the points; all \ we really have is a list of numbers. Note that I tried to make the \ \"function\" even (about the midpoint), so we expect to get a ", StyleBox["real", FontSlant->"Italic"], " DFT." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Fourier[square]\)], "Input", AspectRatioFixed->True], Cell["Hah, that's not too real. Ouch! What went wrong?", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "The trouble is that the above function is ", StyleBox["not", FontSlant->"Italic"], " even by the definition we made earlier, even though it \"looks\" even \ (count the zeroes). The right definition of evenness is f", StyleBox["n", FontVariations->{"CompatibilityType"->"Subscript"}], " = f", StyleBox["N-n", FontVariations->{"CompatibilityType"->"Subscript"}], " -- even around the midpoint of the range. That makes sense -- it refers \ to symmetry around the N/2 point. But our lists go from 0 to N-1, ", StyleBox["not", FontSlant->"Italic"], " 0 to N, so a square pulse with the evenness property needs to have one \ more 0 on the left than on the right. E.g. consider N=4: ", StyleBox["{0,0,1,0}", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is even, ", StyleBox["{0,1,1,0}", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is not. For N=16 we could change the seventh 1 to a 0, and use" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(square = N[{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}]\)], "Input",\ AspectRatioFixed->True], Cell["Fourier transform:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Fourier[square]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(Chop[%]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "Now there's no ", StyleBox["\[ImaginaryI]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " in sight -- it ", StyleBox["is", FontSlant->"Italic"], " real. Let's plot it:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ListPlot[%, PlotJoined \[Rule] True]\)], "Input", AspectRatioFixed->True], Cell["\<\ This is even too, except that again there's one more point on the \ left than on the right of the centerpoint.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "This plot is probably not what you were expecting; the ordinary Fourier \ transform of a square pulse looks like a blip with wiggles on each side. \ But, before explaining, let's repeat with more points, say 128 (=", Cell[BoxData[ \(TraditionalForm\`2\^7\)]], ") . I'm not personally enthusiastic about typing in that number of \ entries, so let's construct it automatically. The most straightforward way \ is to use ", StyleBox["Table[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " to make subsequences of 0's or 1's, and then use ", StyleBox["Join[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " to join them together:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(sq128 = N[Join[Table[0, {60}], Table[1, {9}], Table[0, {59}]]]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "This time I let it print out, but in general you need to be careful to put \ in a \";\" to suppress printout. It takes ", StyleBox["Mathematica", FontSlant->"Italic"], " much longer to print out a long list than it does to compute an FFT." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Check the length of the list. ", StyleBox["Length[", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["list", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], StyleBox["]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is often useful; it tells you how many entries there are in a list (or in \ the top level of a nested list):" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Length[sq128]\)], "Input", AspectRatioFixed->True], Cell["Here's a plot:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ListPlot[sq128, PlotJoined \[Rule] True]\)], "Input", AspectRatioFixed->True], Cell["Compute the FFT, chop, and plot:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\(ft128 = Chop[Fourier[sq128]];\)\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(ListPlot[ft128]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "Well, I'm sure that's ", StyleBox["exactly", FontSlant->"Italic"], " what you were expecting! Joining the points might help:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ListPlot[ft128, PlotJoined \[Rule] True]\)], "Input", AspectRatioFixed->True], Cell["\<\ Sometimes there are strange Moire effects here; try enlarging the \ plot by dragging a corner handle with the mouse.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "This still isn't at all like the standard picture of the ordinary ", StyleBox["continuous", FontSlant->"Italic"], " Fourier transform (CFT) of a square pulse, which is supposed to look \ like" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Plot[Sin[w]\/w, {w, \(-20\), 20}, PlotRange \[Rule] All]\)], "Input", AspectRatioFixed->True], Cell["In fact there are three distinct \"problems\" here:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "1. (The trivial one) Our plot was chopped; we need ", StyleBox["PlotRange->All", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "2. The conventional frequency range for the DFT is [0, 2", StyleBox["\[Pi]", FontFamily->"Symbol"], "/", StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], "], whereas the natural physical one is [-", StyleBox["\[Pi]", FontFamily->"Symbol"], "/", StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], ", ", StyleBox["\[Pi]", FontFamily->"Symbol"], "/", StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], "]. So the second half of our DFT results are really representing negative \ frequencies." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Let's fix these before going on to the third issue. To rearrange the list \ is easy with ", StyleBox["Mathematica", FontSlant->"Italic"], "'s ", StyleBox["RotateLeft[] ", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["function:", FontVariations->{"CompatibilityType"->0}] }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\(?RotateLeft\)\)], "Input", AspectRatioFixed->True], Cell[BoxData[{ \(\(reord = RotateLeft[ft128, 64];\)\), "\n", \(ListPlot[reord, PlotJoined \[Rule] True, PlotRange \[Rule] All]\)}], "Input", AspectRatioFixed->True], Cell["\<\ Now zero-frequency is in the middle and it's starting to look more \ sensible. So now for point 3:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "3. The rapid oscillations are in fact typical of the ", StyleBox["discrete", FontSlant->"Italic"], " DFT. They don't go away. You can think of them as coming from the \ windowing of the original data if you wish, but you have to learn to live \ with them." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ In fact most FFT users don't even realize how common such \ oscillations are, because they usually take the absolute value of their FFT'd \ list before plotting it. Of course this works when the values are complex \ too, and we would probably have done that naturally ourselves if it weren't \ for knowing we had a real-valued result. So here's the conventional picture:\ \ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ListPlot[Abs[reord], PlotJoined \[Rule] True, PlotRange \[Rule] All]\)], "Input", AspectRatioFixed->True], Cell["Happy now? Take a break!", "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Changing the default options", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "I'm getting a little tired of typing ", StyleBox["\"PlotJoined->True, PlotRange->All", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "\" every time I use ", StyleBox["ListPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", and we're going to use it a lot more. So it's worth changing things so \ that these are the default options for ", StyleBox["ListPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". You do that with ", StyleBox["SetOptions[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", like so:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(SetOptions[ListPlot, PlotJoined \[Rule] True, PlotRange \[Rule] All]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "It shows you all the current options set for ", StyleBox["ListPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", including our changes. Remember that you can see the current list at \ any time with the command" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Options[ListPlot]\)], "Input", AspectRatioFixed->True], Cell["\<\ Changing defaults has the advantage of saving typing, but the \ disadvantage of putting us into a non-standard state. I don't do it often \ because it's too hard to remember what the current defaults are if you keep \ on changing them.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ StyleBox["In particular, if you quit Mathematica and come back to this \ Notebook later, you'll need to run the above ", FontSlant->"Italic"], StyleBox["SetOptions[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], StyleBox[" command again for everything past this point to work properly.", FontSlant->"Italic"], " You have been warned!" }], "Text", Evaluatable->False, AspectRatioFixed->True, Background->RGBColor[1, 1, 0]], Cell[TextData[{ "Of course we can always say ", StyleBox["ListPlot[..., PlotJoined->False]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " if we want to undo one of our changes in a particular case later." }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Double Slit", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ This is for those who know about the diffraction pattern of a \ double slit, which comes up both in optics and in quantum mechanics. Others \ can follow the calculation but won't understand the significance of the \ result. Here is a double slit and its plot:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(slitfun[m_] := If[55 \[LessEqual] m \[LessEqual] 59 || 70 \[LessEqual] m \[LessEqual] 74, 1.0, 0.0]\)], "Input", AspectRatioFixed->True], Cell[BoxData[{ \(\(double = Table[slitfun[m], {m, 128}];\)\), "\n", \(ListPlot[double]\)}], "Input", AspectRatioFixed->True], Cell["\<\ (From now on I'll often combine calculating and plotting something \ in one cell like this.)\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Note that this time, for variety's sake, I first defined an appropriate \ double-slit ", StyleBox["function", FontSlant->"Italic"], ", and then evaluated at a list of points. ", StyleBox["||", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is the \"or\" operator. I made the spacing between the centers of the \ two slits equal to exactly 4 times their widths." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["OK, let's do it ...", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(Fourier[double];\)\), "\n", \(ListPlot[Abs[RotateLeft[%, 64]]]\)}], "Input", AspectRatioFixed->True], Cell["\<\ The fast oscillations are coming from the double slit interference. \ There's also a slower oscillation from the individual slit diffraction \ superimposed, causing \"missing orders\" at what would otherwise be every \ fourth interference peak (besides the central one). Neat, huh? Who needs \ lasers when you can do physical optics in the computer? OK, OK, don't answer \ that. But I could ask you to do a 5-slit pattern, or a one-wide/one-narrow \ slit pattern, or, ..., right?\ \>", "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["3. Convolution and Deconvolution", "Section", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell["Introduction", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "The discrete convolution ", StyleBox["f", FontFamily->"Courier", FontSize->12], StyleBox["1", FontFamily->"Courier", FontSize->12, FontVariations->{"CompatibilityType"->"Subscript"}], StyleBox["*f", FontFamily->"Courier", FontSize->12], StyleBox["2", FontFamily->"Courier", FontSize->12, FontVariations->{"CompatibilityType"->"Subscript"}], " is defined by" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\((f\_1* f\_2)\) \((t)\)\ = \ \(1\/\@N\) \(\[Sum]\+n\ \(f\_1\) \((n)\) \ \(f\_2\) \((t - n)\)\)\)], "DisplayFormula", FontSize->14], Cell[TextData[{ "Of course I'm using f(n) to mean what we earlier called f", StyleBox["n", FontVariations->{"CompatibilityType"->"Subscript"}], ", so I can use subscripts 1 and 2 to label two different functions \ (lists). Both n and t are integer variables. The 1/", Cell[BoxData[ \(TraditionalForm\`\@N\)]], " factor is a consequence of our particular normalization." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "I intentionally left out saying what set of values n should be summed over \ in the definition of ", StyleBox["f", FontFamily->"Courier", FontSize->12], StyleBox["1", FontFamily->"Courier", FontSize->12, FontVariations->{"CompatibilityType"->"Subscript"}], StyleBox["*f", FontFamily->"Courier", FontSize->12], StyleBox["2", FontFamily->"Courier", FontSize->12, FontVariations->{"CompatibilityType"->"Subscript"}], " above. Provided ", StyleBox["f", FontFamily->"Courier", FontSize->12], StyleBox["1", FontFamily->"Courier", FontSize->12, FontVariations->{"CompatibilityType"->"Subscript"}], StyleBox["(n)", FontFamily->"Courier", FontSize->12], " and ", StyleBox["f", FontFamily->"Courier", FontSize->12], StyleBox["2", FontFamily->"Courier", FontSize->12, FontVariations->{"CompatibilityType"->"Subscript"}], StyleBox["(n)", FontFamily->"Courier", FontSize->12], " are both periodic, it doesn't matter; any range of length N will do, such \ as 0, 1, ... N-1, or (as if often used) -N/2 +1, ... N/2. This is sometimes \ an important issue, because the functions to which we usually apply DFTs are \ often ", StyleBox["not", FontSlant->"Italic"], " implicitly periodic--consider a transfer function for instance--but the \ DFT forces us to consider them periodic. We'll see this in the second of the \ following examples." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ The most efficient way to take a convolution of two functions \ represented as lists of samples is certainly to FFT both functions, multiply, \ and inverse FFT. The DFT convolution theorem is just like the CFT one:\ \>", \ "Text", Evaluatable->False, AspectRatioFixed->True, Background->RGBColor[1, 1, 0]], Cell[BoxData[ RowBox[{ RowBox[{"DFT", "[", RowBox[{ StyleBox[ RowBox[{"f", StyleBox["1", FontVariations->{"CompatibilityType"->"Subscript"}]}]], "*", StyleBox[ RowBox[{"f", StyleBox["2", FontVariations->{"CompatibilityType"->"Subscript"}]}]]}], "]"}], "=", RowBox[{ RowBox[{"DFT", "[", StyleBox[ RowBox[{"f", StyleBox["1", FontVariations->{"CompatibilityType"->"Subscript"}]}]], "]"}], " ", RowBox[{"DFT", "[", StyleBox[ RowBox[{"f", StyleBox["2", FontVariations->{"CompatibilityType"->"Subscript"}]}]], "]"}]}]}]], "Output", Evaluatable->False, AspectRatioFixed->True, Background->RGBColor[1, 1, 0]], Cell["or", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"f12", " ", "=", " ", RowBox[{ RowBox[{ StyleBox[ RowBox[{ StyleBox["f", FontWeight->"Plain", FontSlant->"Plain", FontTracking->"Plain", FontVariations->{"Underline"->False, "Outline"->False, "Shadow"->False, "StrikeThrough"->False, "Masked"->False, "CompatibilityType"->0, "RotationAngle"->0}], StyleBox["1", FontVariations->{"CompatibilityType"->"Subscript"}]}]], "*", StyleBox[ RowBox[{ StyleBox["f", FontWeight->"Plain", FontSlant->"Plain", FontTracking->"Plain", FontVariations->{"Underline"->False, "Outline"->False, "Shadow"->False, "StrikeThrough"->False, "Masked"->False, "CompatibilityType"->0, "RotationAngle"->0}], StyleBox["2", FontVariations->{"CompatibilityType"->"Subscript"}]}]]}], StyleBox[" ", FontVariations->{"CompatibilityType"->"Subscript"}], "=", \(InverseFourier[Fourier[f1]\ Fourier[f2]]\)}]}], ";"}]], "DisplayFormula"], Cell[TextData[{ "There is not ", Cell[BoxData[ \(\@\(2 \[Pi]\)\)]], "in the DFT." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["A causal transfer function", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Suppose we have the following \"signal\" (a Poisson process, but \ you needn't worry about how it works):\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(signal = NestList[#1\ If[Random[] < 0.01, \(-1.0\), 1.0] &, 1, 511];\)\), "\n", \(sigplot = ListPlot[signal]\)}], "Input", AspectRatioFixed->True], Cell["\<\ Try this at least a couple of times; it'll be different every time. \ At each point I made a 1% chance of flipping between -1 and +1.\ \>", "Text",\ Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Let's pass it through a circuit with a decaying exponential for its \ impulse response, so each point in the input is turned into a decaying \ exponential at the output.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(circuit = Table[Exp[\(-0.1\)\ t], {t, 0, 511}];\)\), "\n", \(ListPlot[circuit]\)}], "Input", AspectRatioFixed->True], Cell["Here's the response, calculated in one line", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(output = InverseFourier[Fourier[signal]\ Fourier[circuit]];\)\), "\n", \(outplot = ListPlot[output]\)}], "Input", AspectRatioFixed->True], Cell["\<\ Pretty easy, huh? Let's superimpose the plots to compare the input \ and the output:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Show[sigplot, outplot]\)], "Input", AspectRatioFixed->True], Cell["\<\ Note that the overall scale has changed. There are two factors \ involved:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "1. A ", Cell[BoxData[ \(TraditionalForm\`\@512\)]], " factor from the definition of the discrete convolution." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "2. A factor from the overall normalization of our response function; \ clearly the output will scale with the response function values. What \ matters is the ", StyleBox["sum", FontSlant->"Italic"], " of the response function list, the analogue of the integral of the \ response function in the continuous case. A response function which sums to \ 1 (roughly equivalent to having unit area) will retain the overall scale \ between input and output, besides the ", Cell[BoxData[ \(TraditionalForm\`\@N\)]], " factor." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["Try some more cases if you wish.", "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Instrumental width", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Now let's consider a case of measuring a profile (perhaps an \ atomic-scale cross section of a chip) with measuring equipment which blurs \ each measured point with a Gaussian. We'll need to convolve the true profile \ with the Gaussian to compute the observed profile.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["Here's a function (list) for the true profile:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(prof = NestList[#1 + If[Random[] < 0.01, Sign[Random[] - 0.5], 0.0] &, 1.0, 511];\)\), "\n", \(ListPlot[prof]\)}], "Input", AspectRatioFixed->True], Cell["\<\ Try it several times until you get an interesting profile with \ several levels.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Now we have to construct the instrumental resolution function, a \ Gaussian:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(\[Sigma] = 10;\)\), "\[IndentingNewLine]", \(Plot[ Exp[\(-\(t\^2\/\(2\ \[Sigma]\^2\)\)\)], {t, \(-3\) \[Sigma], 3 \[Sigma]}]\)}], "Input"], Cell[TextData[{ "Conventially that would go from -", StyleBox["\[Tau]", FontFamily->"Symbol"], " to +", StyleBox["\[Tau]", FontFamily->"Symbol"], ", and be symmetrical about 0. Our lists go through times 0, 1 ... N-1 in \ units of ", StyleBox["\[CapitalDelta]", FontFamily->"Symbol"], ", but we have to regard the time domain as periodic (whether we like it or \ not), so time -k is equivalent to time N-k. Thus we must take the negative \ part of our Gaussian and map it to the end of the range. The easiest way to \ do that is to compute it in the center (around N/2) and then shift it to the \ \"right\" place with a ", StyleBox["RotateLeft[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ":" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(gauss = RotateLeft[ Table[N[Exp[\(-\(\((t - 256)\)\^2\/\(2\ \[Sigma]\^2\)\)\)]], {t, 0, 511}], 256];\)\), "\n", \(ListPlot[gauss]\)}], "Input", AspectRatioFixed->True], Cell["\<\ If you use DFT's a lot, then you \"see\" that as a Gaussian. For \ the rest of us it's a bit weird, but we'll survive. Just mentally move the \ right-hand part back to the left of 0.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["Now the actual convolution is easy:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(meas = Chop[InverseFourier[Fourier[prof]\ Fourier[gauss]]];\)\), "\n", \(ListPlot[meas]\)}], "Input", AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Deconvolution", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ At least in principle, we can recover the true profile by \ deconvolution. In Fourier space you just divide instead of multiplying. So \ this looks as though it should work (study it before trying it):\ \>", "Text",\ Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\(recover = Chop[InverseFourier[Fourier[meas]\/Fourier[gauss]]];\)\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(ListPlot[recover]\)], "Input", AspectRatioFixed->True], Cell["\<\ What happened? Maybe there are some non-tiny imaginary parts in \ our recovered profile? We can try plotting the absolute value to see what's \ going on:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ListPlot[Abs[recover]]\)], "Input", AspectRatioFixed->True], Cell["\<\ Nope. It looks as though we lost the signal entirely, and ended up \ with random noise. And that's essentially what happened; we're looking at \ the (inverse) Fourier transform of some rounding errors!\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ The problem is that our Gaussian goes strongly to 0 away from t = \ 0. And so does its Fourier transform (the transform of a Gaussian is a \ Gaussian). Let's look at that:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(ftgauss = Fourier[gauss];\)\), "\n", \(ListPlot[Abs[ftgauss]]\)}], "Input", AspectRatioFixed->True], Cell["\<\ There are some pretty small numbers in there. For example, in the \ middle:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ftgauss[\([250]\)]\)], "Input", AspectRatioFixed->True], Cell["\<\ The real part is typically almost as small as the imaginary part, \ and we know that the imaginary is only non-zero because of rounding errors \ (the Gaussian is even).\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "In doing a convolution with the Gaussian we ", StyleBox["multiply", FontSlant->"Italic"], " our transformed signal by these tiny values, producing some very small \ values in the middle part of the frequency range. Then, in the \ deconvolution, we ", StyleBox["divide", FontSlant->"Italic"], " by these tiny values again, hopefully restoring the original value. The \ trouble is that between the multiplication and the division we do a Fourier \ transform and its inverse, which introduce rounding errors into the values. \ The division then converts these small rounding errors into large ones." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "The situation is actually made worse by our ", StyleBox["Chop[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " of the measured values, but removing that doesn't cure the problem." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "There are various ways to deal with these problems, none of them \ foolproof. If you can change the original instrumental function (the \ Gaussian) or its transpose, then it's fairly easy to avoid the problem; you \ could add a tiny value like 0.000001 to each point in the ", StyleBox["ftgauss", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " for instance. Then convolution plus deconvolution would restore the \ original profile to high accuracy. In a practical case, however, you're \ usually stuck with the measured values and can't redo the convolution part \ without cheating. Adding a small constant to the ", StyleBox["ftgauss", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " values (for deconvolution only) still works to some extent, but doesn't \ get back all the detail of the original, and introduces some extra wiggles:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(recover = Re[InverseFourier[Fourier[meas]\/\(ftgauss + 0.00001\)]];\)\), "\n", \(ListPlot[recover]\)}], "Input", AspectRatioFixed->True], Cell[TextData[{ "I took the real part to get rid of small imaginary parts: ", StyleBox["Chop[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " wasn't sufficient, and of course ", StyleBox["Abs[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " would distort the picture (why?)." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "There are some fancier techniques involving ", StyleBox["windowing", FontSlant->"Italic"], " the data that can do better, but we've pursued this far enough. The \ take-home message is that deconvolution can be quite tricky, though it's \ marvellous when it works." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Actually I picked a relatively poor example, just to show you the \ problems that arise. The following problem is more encouraging.\ \>", "Text",\ Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Problem 2", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "Fred the physicist has measured a cross-section curve for a particular \ nuclear process. His data is here in the notebook, in a special fixed-height \ cell so that you only see the first few lines. Evaluate these cell to define \ ", StyleBox["freddata", FontFamily->"Courier", FontWeight->"Bold"], " and to plot it:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ RowBox[{ RowBox[{"freddata", " ", "=", " ", RowBox[{"{", RowBox[{ StyleBox["0.181377070730053286`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.181753759315734004`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.182144402938176277`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.182549044588466102`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.182967718170301001`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.183400448815766807`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.183847253307025404`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.184308140593065594`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.184783112388552801`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.185272163840328207`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.185775284246275695`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.186292457811107503`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.186823664424003119`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.187368880443940799`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.1879280794798537`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.1885012331543453`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.189088311841410714`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.189689285370464393`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.190304123690725006`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.190932797491772188`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.191575278777571291`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.1922315413927031`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.192901561500666502`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.193585318015128589`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.194282792985747789`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.19499397194080231`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.195718844189278211`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.196457403085353092`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.197209646258366397`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.197975575811435895`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.198755198491844318`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.199548525836252803`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.200355574293648297`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.201176365328802786`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.202010925508795224`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.202859286575011799`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.203721485502787214`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.204597564550706501`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.205487571301351579`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.206391558695144805`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.207309585058732714`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.208241714129227206`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.209188015075451216`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.210148562517236703`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.211123436543670184`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.212112722731104508`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.213116512161636117`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.214134901442682723`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.215167992728204682`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.216215893742072218`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.217278717803968701`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.218356583858264308`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.219449616506138101`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.220557946041291685`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.221681708489479278`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.222821045652133209`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.223976105154265381`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.2251470404968682`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.226334011113969602`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.227537182434539975`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["0.228756725949386074`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.229992819283195215`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.231245646271869365`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.232515397045298177`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.233802268115704903`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.235106462471714205`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.236428189678267708`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.237767665982554987`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.239125114426085483`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.240500764963067092`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.241894854585240981`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.243307627453347308`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.244739335035379879`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.246190236251828098`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.24766059762806849`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.249150693454135518`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.250660805952057597`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.252191225450990108`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.253742250570371696`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.25531418841135971`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.256907354756793715`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.258522074279972935`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.260158680762519534`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.261817517321671022`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.263498936647285386`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.265203301248941469`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.266930983713474612`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.268682366973361519`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.270457844586348183`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.27225782102677849`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.274082711989075811`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.275932944703894644`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.277808958267466588`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.279711203984701306`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.281640145726661792`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.283596260303054634`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.285580037850415102`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.287591982236741294`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.289632611483334301`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.291702458204702317`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.293802070067392619`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.295932010268704193`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.298092858036260501`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.300285209149498211`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.302509676484169309`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.304766890581009919`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.307057500239770808`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.3093821731398672`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.311741596488929895`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.314136477700578664`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.316567545102759329`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.319035548678024216`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.321541260837105902`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.324085477227166585`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.326669017576056397`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.329292726573928629`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.33195747479346811`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.334664159649993697`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.337413706402605217`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.340207069197496903`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.343045232154497492`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.345929210497832606`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.348860051732040599`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.351838836863962889`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.354866681671661599`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.35794473802116089`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.361074195231916705`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.364256281492014766`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.36749226532419783`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.370783457104027736`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.3741312106316792`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.377536924759216008`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.381002045075502273`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.384528065651388395`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.38811653084825842`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.391769037193629987`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["0.395487235328083883`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.399272832028490007`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["0.403127592313194327`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.407053341635592058`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.411051968173246251`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.415125425220495003`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.419275733693215801`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.423504984755160052`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["0.427815342575918577`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.432209047231219756`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.436688417756776914`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.441255855367410987`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.445913846853483697`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.450664968167009405`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.455511888209949322`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.46045737283729311`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.465504289087498701`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.470655609652777329`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.475914417601505945`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.481283911364826977`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.486767409999179267`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.492368358736175704`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.498090334830869707`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.503937053719103911`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.509912375494209424`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.516020311713009771`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.522265032540662588`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.528650874243548685`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.53518234703903067`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.541864143310535339`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.54870114619597663`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.555698438557061535`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.562861312336404218`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.570195278308641562`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.577706076230760956`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.585399685395645796`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.593282335591247189`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.601360518465804716`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.609640999296993513`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.618130829159759365`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.626837357483679724`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.635768244985974728`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.644931476960506255`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.6543353768962338`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.663988620390316608`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.673900249311376509`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.684079686156953492`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.694536748535887671`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.705281663690847082`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.71632508295837205`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.727678096043260946`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.73935224496073868`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.75135953747314943`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.763712459817847832`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.776423988489043903`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.789507600798456188`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.802977283897402926`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.816847541896314055`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.831133400666302968`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.845850409851509077`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.861014641560255`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.876642685138121002`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.892751637356884053`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.909359087280897071`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.926483094997369072`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.944142163320753979`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.962355201505356028`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.981141479926515103`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.00052057462182708`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.02051230052280206`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.04113663215780305`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.0624136105734141`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.08436323520811694`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.10700533946511092`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.13035944877594207`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.15444462003004`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.17927926137377703`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.20488093156338704`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.23126611829559107`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.25844999524455603`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.28644615790920791`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.31526633882551702`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.34492010322648103`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.37541452683874809`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.40675385818671205`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.43893916852668901`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.47196799334614798`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.50583397022203087`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.54052647871977406`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.57603028890769198`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.61232522593220402`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.64938585891577593`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.68718122316542507`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.72567458527597095`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.76482326113791598`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.80457849707334503`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.84488542428421702`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.88568309646903493`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.92690461981427212`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.96847738357224706`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.01032339808319315`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.05235974538352694`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.09449914547619009`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["2.13665063894826001`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["2.17872038394749978`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["2.22061256263013007`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["2.26223038913886487`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.30347720804811917`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.34425766911817179`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.384478961235307`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.42405208568744079`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.46289314654101909`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.50092463394531083`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.53807667478557608`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.57428822431190207`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.60950817224253395`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.64369633741278109`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.67682432632208389`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.70887623290481505`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.73984915947117491`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.7697535419641559`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.79861326636568197`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.82646556714990602`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.85336070300078894`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.87936140945276299`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.90454213254401203`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.92898805186206487`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.95279390539145083`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.97606263223889389`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.99890385252821278`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.02143220646296084`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.0437655767126901`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.06602321987637704`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.08832383382598418`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.1107835882674899`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.13351414592756816`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.15662070144567108`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.18020006439637903`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.20433881196027714`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.22911153567515984`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.25457920549632895`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.2807876731256429`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.30776633526777619`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.3355269761542301`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.36406280733666696`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.39334772136789108`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.42333577452069004`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.45396091208800415`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.48513694799892803`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.51675780840748419`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.5486980465004061`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.580813632971231`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.61294302338080308`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.64490849995013688`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.67651778121739791`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.70756588847367618`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.73783725304036718`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.76710804336490001`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["3.79514868572146779`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.8217265471662758`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.84660874448985801`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.86956503842321719`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.89037076848507403`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.90880978079485217`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.92467729909515306`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.93778268827840207`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.94795206001056087`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.95503067166364488`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.95888507273282019`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.95940495719582017`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.95650468579106693`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.95012444881321478`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.94023104756976305`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.92681828088803577`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.90990693175384507`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.88954435802643203`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.86580369992409309`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.83878272532984698`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.80860234166089774`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.77540480984075088`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.73935170160699303`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.70062164582467412`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.659407912549133`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.61591588524126716`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.57036047178510917`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.52296350384624501`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.47395117174177991`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.42355153851009097`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.371992172446161`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.3194979322030611`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.26628893286338506`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.21257871537036798`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.15857263558674983`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.10446648321567186`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.05044533504783199`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.99668264164293809`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.94333954173230196`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.89056439443354218`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.83849251585679205`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.78724610388360183`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.73693433281603315`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.68765359820105897`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.63948789139063189`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.59250928324057694`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.54677849671036682`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.50234554892160021`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["2.45925044438339313`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.41752390251572002`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["2.37718810421809401`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.33825744396775503`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.30073927572301695`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.26463464269661818`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.22993898280311197`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.19664280323533489`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.16473231915874908`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.13419005290847119`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.10499539131949697`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.07712509991001814`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.05055379357078715`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.02525436419455084`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.00119836631693592`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.97835636234433209`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.95669822932801391`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.93619342952015909`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.91681124713055606`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.89852099380621108`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.88129218539276408`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.86509469251890607`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.84989886748390617`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.83567564983389708`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.82239665289348202`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.81003423338298503`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.79856154610472511`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.78795258552914493`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.77818221595793897`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.76922619178960598`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.76106116926595905`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.75366471093767506`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.74701528395455802`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.74109225316240001`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["1.73587586987389901`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.73134725707595489`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.72748839173985002`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.7242820848140921`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.72171195940152106`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.71976242755236397`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.71841866604251602`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.71766659145104894`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.71749283480206305`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.71788471599301706`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.71883021819402204`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.72031796236966094`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.72233718204633596`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.72487769842333005`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.72792989590435812`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.73148469810796985`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.73553354439937006`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.74006836697271705`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.74508156850152911`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.7505660003650421`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.756514941450249`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.76292207752240397`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.7697814811511221`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.77708759217437801`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.78483519867887707`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.793019418472044`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.80163568101833284`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.81067970981053285`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.82014750514512986`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.83003532726960784`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.84033967986865789`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.85105729385566704`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.8621851114354591`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.87372027040405306`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.88566008865123198`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.89800204883172103`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.91074378317113495`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.92388305837305395`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.93741776059412487`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.95134588045451806`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.96566549805168389`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.98037476794601001`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.99547190408769097`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.01095516465492885`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.02682283677446717`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.0430732210963538`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.0597046161959458`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.07671530277718607`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.09410352765247598`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.11186748747575103`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.1300053122067859`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.14851504828636397`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.16739464150361005`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["2.18664191953863484`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.20625457416568782`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.22623014310416689`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.24656599150725089`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.26725929308050089`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.28830701082558896`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.30970587740737887`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.33145237514585579`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.3535427156379991`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.37597281901853207`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.39873829287259887`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.42183441081789707`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.44525609077850614`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.46899787297777306`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.49305389768299301`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.51741788274037503`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.54208310094485501`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.56704235729572483`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.59228796619578583`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.6178117286587641`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.64360490959709792`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.66965821526983981`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["2.69596177097824885`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.72250509910483406`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.74927709759981908`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.77626601902746417`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.803459450293143`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.83084429318059882`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.85840674583724485`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.88613228535365315`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.91400565159147895`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.94201083242175709`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.97013105054280082`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.99834875205364923`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.0266455969649848`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.05500245183465279`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.08339938471905616`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.11181566263477593`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.14022975172652296`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.16861932033779192`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.19696124517931901`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.22523162078732283`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.25340577245848816`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.28145827284153401`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.30936296235588578`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.33709297359622913`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.36462075986762298`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.39191812797906999`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.41895627540412405`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.44570583189509394`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.47213690561274512`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.49821913380607796`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.52392173804688102`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.549213583991488`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.57406324560749899`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.59843907376665406`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.6223092690664469`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.64564195870321583`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.66840527717822206`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.69056745057645896`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.71209688411575111`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.7329622526218591`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.75313259354411909`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.77257740208635494`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.79126672798983488`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.80917127346968378`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.82626249177376429`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.84251268580447291`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.85789510621949425`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.87238404840800889`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.88595494772458103`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.89858447235445595`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.91025061318158293`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.92093277003470888`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.93061183369750821`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.93927026308608585`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.94689215702130411`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.95346332005409806`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.95897132183914699`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.96340554959553301`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.96675725324198591`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.96901958284848319`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.97018761810458098`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.9702583895674671`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.96923089151819077`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.96710608646403706`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.96388690082777515`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.95957821228365691`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.95418682870287607`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.94772145888058378`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.94019267528219394`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.93161286910917517`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.92199619804324015`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.91135852708202982`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.89971736292827095`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.88709178243781074`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.873502355669026`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.85897106410691606`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.84352121465930096`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.82717735003992309`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.80996515616394084`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.79191136718533083`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.77304366880332686`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.75339060045660399`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.73298145700962979`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.71184619051612685`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.69001531262024506`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.66751979812746986`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.64439099024498514`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.62066050795588001`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.59636015595368307`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.57152183752393792`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.5461774707184599`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.520358908126064`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.49409786050149007`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.46742582447246983`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.44037401450381619`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.41297329925750903`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.38525414244931521`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.35724654826590285`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.32898001137182708`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.30048347150356491`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.27178527261790419`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.24291312653476992`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["3.21389408098992701`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.18475449199101712`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.15552000035106905`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.12621551225692906`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.09686518371582808`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.06749240871167305`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.03811981089315796`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["3.00876923860868483`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.9794617630978827`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.95021767964634396`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.92105651150858811`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.89199701640442476`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.86305719539524705`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.83425430394950126`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.80560486501028805`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.77712468388263911`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.74882886476338184`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.72073182874240515`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.69284733311045609`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.66518849181529393`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.63776779691472285`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.61059714088194905`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.58368783962533887`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.5570506560913091`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.53069582432520601`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.50463307387102718`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.47887165439607981`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["2.45342036043163203`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.42828755612470104`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.40348119989970099`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.37900886893137508`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.35487778333237596`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.33109482995996586`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.3076665857464631`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.28459934045733215`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.2618991187791928`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.23957170163732`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["2.21762264663873809`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.19605730753247918`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.17488085257325103`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.1540982816685581`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.13371444218241412`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.11373404326119906`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.09416166853913399`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.07500178707241111`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.056258762342412`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.03793685915991806`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.02004024829400119`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["2.00257300864167619`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.98553912674784509`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.96894249347972305`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.9527868976564779`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.93707601643352589`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.92181340224231984`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.90700246609114199`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.89264645704071909`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.87874843768119994`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["1.86531125545446911`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.85233750968856192`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.83982951423965186`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.82778925567192587`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.8162183469472751`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.80511797664520106`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.7944888537889529`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.78433114841665201`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.77464442810597695`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.76542759073745987`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.75667879386430403`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.74839538114484893`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.74057380638681902`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.73320955584876195`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.7262970695424471`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.71982966237858807`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.71379944609537204`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.708197253002524`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.70301256266102303`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.69823343269731408`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.69384643501861393`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.68983659874985008`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.68618736125039303`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.68288052858738605`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.67989624683978284`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.67721298558094389`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.6748075348359781`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.67265501673138894`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.67072891294809799`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.66900110895393893`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.66744195582861802`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.66602035030343404`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.66470383342160914`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.66345870798480106`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.66225017469052094`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.66104248658723507`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.65979912118342713`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.65848296924862097`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.65705653904403398`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.65548217442382705`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.65372228496126405`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.651739585983562`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.64949734615153094`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.6469596400009121`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.64409160267794796`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.64085968395705901`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.63723189852835009`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.63317806949080202`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.62867006198614099`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.62368200396034385`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.61819049114513386`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.61217477350989497`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.60561692064354`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.59850196378273086`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.5908180125034379`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.58255634443170496`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.57371146670048789`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.56428114827549302`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.55426642268630406`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.5436715611217191`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.53250401627164389`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.52077433771382297`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.50849606004383796`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.49568556532341006`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.48236192176798597`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.46854670090323091`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.45426377568619287`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.43953910230583108`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.42440048854619298`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.40887735171159196`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.39300046917589304`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.376801724627698`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.36031385304150398`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.34357018731418809`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.32660440937031998`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.30945030836294695`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.29214154838413207`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.27471144785707291`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.25719277251544192`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.23961754359173004`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.22201686254148`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.2044207533302631`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.18685802301146402`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.16935614103055907`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.15194113741107195`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.134637519712959`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.11746820840985705`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.100454490110365`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.08361598785292102`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.06697064753529402`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.05053473939945107`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.03432287338061601`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["1.01834802704555005`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["1.00262158478841789`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.987153386921742104`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.971951787292966074`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.957023718072152007`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.942374760390558918`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.928009219561193887`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.913930203677871055`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.90013970446647491`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.886638679348232017`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.873427133767471985`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.860504202933146977`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.847868232222202067`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.835516855591689022`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.823447071443716005`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.811655315481266015`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.800137530182541034`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.788889230605666202`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.777905566313657104`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.767181379280915098`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.756711257706895512`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.746489585719785608`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.736510589003076177`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.726768376420969453`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.717256977754878288`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.707970377693220331`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.69890254624069561`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.690047465731770781`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.681399154646670535`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.672951688437294581`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.664699217575720258`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.656635983039729254`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.648756329448660018`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["0.641054716059227658`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.63352572582515565`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.626164072716844088`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.618964607488222018`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.611922322067463309`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.605032352736759904`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.598289982253841401`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.591690641054624411`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.585229907662345993`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.578903508413971668`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.572707316599675664`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.566637351096066232`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.56068977455877631`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.554860891225536523`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.549147144367129058`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.543545113411385205`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.538051510754953099`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.53266317826957561`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.527377083504421761`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.522190315584068009`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.517100080803167028`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.512103697923717327`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.507198593188928459`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.502382295078490326`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.497652428842872662`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.49300671086816461`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.488442942936784785`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.483959006461958018`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.479552856783951853`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.475222517622592022`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.470966075782648907`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.466781676205753992`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.462667517454285803`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.458621847699477136`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.454642961268298417`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.45072919578264381`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.446878929901103116`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.443090581649734271`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.4393626073052733`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.435693500773611752`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.432081793389460511`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.428526054050889992`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["0.425024889595541033`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.421576945323972474`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.418180905579658279`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.414835494304058904`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.41153947549800538`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.408291653536454202`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.405090873301079756`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.401936020113152903`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.398826019466418468`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.395759836575297008`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.39273647576687992`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.389754979755241102`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.386814428843179634`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.383913940099516537`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.381052666559444563`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.378229796491359637`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.37544455276641182`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.372696192357009703`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.369984005978201802`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.36730731787176829`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.364665485717569781`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.362057900640971874`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.359483987269696836`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.356943203779217199`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.354435041853653842`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.35195902648014461`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.349514715489692706`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.347101698757540377`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.344719596981794706`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.342368059970772709`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.34004676438748147`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.337755410923292798`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.335493720901478509`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.333261432343419805`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.331058295564212512`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.328884068397944107`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.32673851118372621`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.324621381669271169`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.322532430007210901`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.320471394028639267`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.318437994977261507`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.31643193387554791`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.314452888671737218`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.312500512284409914`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.31057443162170415`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.308674247607398211`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.306799536199116085`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.304949850337804084`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.303124722725518491`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.301323669293066309`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.299546193192350216`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.297791789131775672`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.296059947867401298`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.29435016066747611`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.292661923582547132`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.290994741375947754`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.289348130997982178`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.287721624519323491`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.286114771472529305`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.284527140583062241`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.282958320900772797`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.281407922368055416`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.279875575880788707`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.278360932912285452`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.276863664778757501`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.275383461627676506`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.273920031228595828`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.272473097640380679`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.271042399820397905`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.269627690231092298`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.268228733488410808`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.266845305085592388`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.265477190215521696`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.264124182705642063`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.262786084071648495`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.261462702689840309`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.260153853083316644`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.258859355313823824`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.257579034468999479`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.256312720233718982`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.255060246534024193`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.253821451242543005`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.252596175935094446`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.251384265689269792`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.250185568916940104`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.248999937223866218`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.247827225290725694`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.246667290770921709`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.245519994201461022`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.244385198923976521`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.243262771013634182`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.242152579214180807`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.24105449487783841`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.239968391909056988`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.238894146711409716`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.237831638137107015`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.236780747438734406`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.235741358222937424`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.234713356405845896`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.233696630170089925`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.232691069923285009`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.2316965682579041`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.230713019912467309`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.229740321733993813`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.228778372641665317`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.227827073591658502`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.226886327543122412`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.225956039425252486`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.2250361161054379`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.224126466358458209`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.223227000836692912`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.222337632041327504`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.221458274294528667`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.22058884371256191`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.219729258179841524`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.218879437323880887`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.218039302491129705`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.217208776723679308`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.216387784736816923`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.21557625289741682`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.2147741092031473`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.213981283262481492`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.213197706275503096`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.212423311015483795`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.211658031811230706`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.210901804530187186`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.210154566562277089`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.209416256804488121`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.208686815646175816`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.207966184955090405`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.20725430806411178`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.206551129758693807`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.205856596265003988`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.205170655238759991`", StyleBoxAutoDelete->True, PrintPrecision->14], ",", StyleBox["0.204493255754753988`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.203824348297070301`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.203163884749982015`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.202511818389528874`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.201868103875787419`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.201232697245809699`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.200605555907254284`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.199986638632693303`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.199375905554609609`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.198773318161080787`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.198178839292152986`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.197592433136913196`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.197014065231260389`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.196443702456387399`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.195881313037972493`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.19532686654609721`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.194780333895890205`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.194241687348914524`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.193710900515304516`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.193187948356658516`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.192672807189715804`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.192165454690808594`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.191665869901122487`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.191174033232771396`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.190689926475698285`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.190213532805432894`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.1897448367917133`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.189283824407988294`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.188830483041833385`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.188384801506289889`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.187946770052152487`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.187516380381233673`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.18709362566062019`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.1866785005379581`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.186271001157782496`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.185871125178920788`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.18547887179301421`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.185094241744159582`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.184717237349725316`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.184347862522361598`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.183986122793239097`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.183632025336550199`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.183285578995310505`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.182946794308475713`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.182615683539440603`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.182292260705922188`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.181976541611283604`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.181668543877316697`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.181368286978530495`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.181075792277967995`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.180791083064586608`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.180514184592221802`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.180245124120179021`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.17998393095545051`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.179730636496599105`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.179485274279302693`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.179247880023579302`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.179018491682687308`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.17879714949369081`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.17858389602966489`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.178378776253523803`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.178181837573404688`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.17799312989955891`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177812705702654199`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177640620073390609`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177476930783289921`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177321698346495493`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177174986082373582`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177036860178698791`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176907389755102091`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176786646926467705`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176674706865860775`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176571647866527108`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176477551402405596`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176392502186527178`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176316588226564903`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176249900876691896`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176192534884788321`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176144588433900395`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176106163176711705`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176077364261624413`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176058300348887497`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176049083615020389`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176049829743582613`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176060657900176487`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176081690689320797`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176113054090700789`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176154877372060898`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176207292975881006`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.176270436376838501`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176344445906963986`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.176429462545385407`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176525629669608985`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.176633092765452204`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176751999093001499`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.176882497306420809`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177024737026012513`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177178868361704999`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.177345041388124791`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.1775234055725738`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177714109158632505`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.177917298509622785`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.178133117417914483`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.178361706387807483`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.178603201901576298`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.178857735679982994`", StyleBoxAutoDelete->True, PrintPrecision->15], ",", StyleBox["0.179125433950156898`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.179406416735036096`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.179700797179463496`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.180008680928431381`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.180330165572782306`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.180665340176840309`", StyleBoxAutoDelete->True, PrintPrecision->16], ",", StyleBox["0.181014284900988187`", StyleBoxAutoDelete->True, PrintPrecision->16]}], "}"}]}], ";"}]], "Input", CellSize->{Inherited, 88.125}], Cell[BoxData[ \(ListPlot[freddata, PlotRange \[Rule] {0, 4}]\)], "Input", AspectRatioFixed->True], Cell["\<\ Each measurement point is spaced 0.001MeV from the previous one, \ and the list contains 1024 points in all (accounting for a total energy range \ of just over 1MeV along the x axis). For the non-physicists: an MeV is an \ energy unit; you don't need to know what it means.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Fred sees only two clear peaks in this data, but his theoretical \ colleague Thea says that there should be three. Luckily you know Fred's \ equipment very well, and figure out that it blurs each true point into a \ Lorentzian given by\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[Cell[BoxData[ \(TraditionalForm\`1\/\(1 + 1000 \((\[CapitalDelta]E)\)\^2\)\)]]], \ "InlineFormula", FontSize->17], Cell["\<\ (unnormalized) where \[CapitalDelta]E is the energy in MeV. Who is \ right, Fred or Thea (or neither)?\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Note: You're expected to produce a sharpened-up curve by \ deconvolution. I picked a Lorentzian to save you the sort of trouble with \ rounding errors we saw above. A Gaussian would be more realistic, but more \ troublesome.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["4. Two Dimensions", "Section", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell["Introduction", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ The DFT (and the FFT algorithm) can readily be extended to 2 or \ more dimensions. Essentially you do a DFT in each coordinate separately, \ though the most efficient implementations don't quite do it that way.\ \>", \ "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "We'll just do some examples, and not pursue the theory any further. But \ of course we do need to know how to do 2D FFT's in ", StyleBox["Mathematica", FontSlant->"Italic"], ". That's easy; you can give a 2D array (a matrix, or a list of lists) to \ ", StyleBox["Fourier[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " or ", StyleBox["InverseFourier[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " and they do the 2D case automatically. That's all there is to it. For \ example, with a 2 x 2 array:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Fourier[{{1.0, 2.0}, {3.0, 4.0}}]\)], "Input", AspectRatioFixed->True], Cell["The array doesn't have to be square.", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["2D FFT's are particularly useful for:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ (a) Computing diffraction patterns in optics (including electron \ optics in an electron microscope, for example). More generally, they are a \ central tool in most of modern optics.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ (b) Image analysis and processing. Many techniques of image \ enhancement, compression, recognition, and other analysis are done in the \ Fourier-transformed domain.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["We'll look at examples of each type.", "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Diffraction through apertures", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Let's look at the diffraction pattern for a plane wave of light \ going through an aperture in an opaque screen, under Frauenhofer conditions. \ This is what you'd see if you covered your window with black paper with a \ tiny hole (aperture) in it, and looked at the image produced by a distant \ streetlight or star on the opposite wall.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "The ", StyleBox["amplitude", FontSlant->"Italic"], " in the diffraction pattern is simply the 2D Fourier transform of the \ aperture, besides scaling. We'll look at ", StyleBox["intensity", FontSlant->"Italic"], ", obtained by taking |", StyleBox["amplitude", FontSlant->"Italic"], "|", StyleBox["2", FontVariations->{"CompatibilityType"->"Superscript"}], ". This would be called the power spectrum if the independent variable \ were time instead of space." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "We'll represent apertures (or ", StyleBox["masks", FontSlant->"Italic"], ") by arrays of 0's (opaque) and 1's (transparent). We can use ", StyleBox["ListDensityPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " to plot them, with the ", StyleBox["Mesh\[Rule]False", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " option to suppress the grid lines." }], "Text", PageWidth->WindowWidth, Evaluatable->False, Hyphenation->False, AspectRatioFixed->True], Cell[CellGroupData[{ Cell["Square hole", "Subsubsection", Evaluatable->False, AspectRatioFixed->True], Cell["Here's a square hole of size 11 x 11 in a 32 x 32 array:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(square = Table[If[ 10 \[LessEqual] x \[LessEqual] 20 && 10 \[LessEqual] y \[LessEqual] 20, 1.0, 0.0], {y, 0, 31}, {x, 0, 31}];\)\), "\n", \(ListDensityPlot[square, Mesh \[Rule] False]\)}], "Input", AspectRatioFixed->True], Cell[TextData[{ "The following takes the FFT and then takes ", StyleBox["Abs[]^2", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " of each value in the array to get the power \"spectrum\". Isn't it nice \ that you can apply functions to lists (and even lists of lists) like that?" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(fftsq = Fourier[square];\)\), "\n", \(\(pssq = Abs[fftsq]^2;\)\)}], "Input", AspectRatioFixed->True], Cell["And here's what it looks like:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ListDensityPlot[pssq, Mesh \[Rule] False]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "It's pretty, ", StyleBox["but it's not right", FontSlant->"Italic"], ". The main problem is the usual one with FFTs; we want \"frequencies\" \ (here called ", StyleBox["spatial frequencies", FontSlant->"Italic"], ", or ", StyleBox["wave numbers", FontSlant->"Italic"], ", or just k's) running from -K to K whereas the FFT gives 0 to 2K. And \ that applies in both the x and y direction (k", StyleBox["x", FontVariations->{"CompatibilityType"->"Subscript"}], " and k", StyleBox["y", FontVariations->{"CompatibilityType"->"Subscript"}], " really). We can do both rotations at once with a simple ", StyleBox["RotateLeft[", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["array", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], StyleBox[",{", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["m", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], StyleBox[",", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["n", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], StyleBox["}]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ":" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ldp = ListDensityPlot[RotateLeft[pssq, {16, 16}], Mesh \[Rule] False]\)], "Input", AspectRatioFixed->True], Cell["\<\ That is more or less what we were looking for, as optics experts \ should recognize.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "But there's a problem; the diffraction bands are far too bright. That's \ because ", StyleBox["ListDensityPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " has truncated some of the larger values, just like ", StyleBox["Plot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " and ", StyleBox["ListPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " do. ", StyleBox["PlotRange->All", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " tells it to behave, making pure white represent the largest value:" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Show[ldp, PlotRange \[Rule] All]\)], "Input"], Cell[TextData[{ "That's more realistic, and actually looks like the image of a square hole, \ but isn't so pretty. You can experiment with setting an explicit ", StyleBox["PlotRange", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " to compromise between beauty and truth. For example (by trial and \ error):" }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(Show[ldp, PlotRange \[Rule] {0, 1}]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Circular hole", "Subsubsection", Evaluatable->False, AspectRatioFixed->True], Cell["Here's the same procedure for a circular hole:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(circ = Table[If[\((x - 15)\)\^2 + \((y - 15)\)\^2 < 39, 1.0, 0.0], {y, 0, 31}, {x, 0, 31}];\)\), "\n", \(ListDensityPlot[circ, Mesh \[Rule] False]\)}], "Input", AspectRatioFixed->True], Cell[BoxData[{ \(\(pscirc = Abs[Fourier[circ]]^2;\)\), "\n", \(ListDensityPlot[RotateLeft[pscirc, {16, 16}], Mesh \[Rule] False, PlotRange \[Rule] {0, 0.25}]\)}], "Input", AspectRatioFixed->True], Cell["\<\ Of course there's a good bit of 4 (approximately 8) fold symmetry \ because I couldn't make a perfect circle on a 32 x 32 grid. Here it is on \ 128 x 128 (16384 points):\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(n = 128;\)\ \ (*\ n\ x\ n\ *) \), "\[IndentingNewLine]", \(\(r = 0.35;\)\ \ (*\ Radius\ *) \), "\[IndentingNewLine]", \(rr = \((r*n*0.5)\)^2; circ = Table[ If[\((x - n/2 + 1)\)\^2 + \((y - n/2 + 1)\)\^2 < rr, 1.0, 0.0], {y, 0, n - 1}, {x, 0, n - 1}];\), "\n", \(ListDensityPlot[circ, Mesh \[Rule] False]\), "\n", \(\(pscirc = Abs[Fourier[circ]]^2;\)\), "\n", \(ListDensityPlot[RotateLeft[pscirc, {n/2, n/2}], Mesh \[Rule] False, PlotRange \[Rule] {0, 0.1}]\)}], "Input", AspectRatioFixed->True], Cell[TextData[{ "Aren't FFT's wonderful? And this is in slow old ", StyleBox["Mathematica", FontSlant->"Italic"], ", no less. The plotting takes much longer than the FFT. You could also \ change the \"n\" or \"r\" parameters." }], "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Problem 3", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Try a double slit -- two parallel slits. Don't put them too far \ apart or the interference fringes will be too close together to see \ clearly.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]], Cell[CellGroupData[{ Cell["Image Processing (Problem 4)", "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ StyleBox["Warning", FontSlant->"Italic"], ": you're going to use some large arrays in this section. Mistakes may \ cause ", StyleBox["Mathematica", FontSlant->"Italic"], " to run out of memory, which may crash your machine. So ", StyleBox["save your work often!", FontSlant->"Italic"], " It's not a bad idea to quit ", StyleBox["Mathematica", FontSlant->"Italic"], " and fire it up again at this point, to start with a clean slate (the \ earlier ", StyleBox["SetOptions[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " won't be needed again)." }], "Text", CellFrame->True, CellMargins->{{35, 135}, {Inherited, Inherited}}, Evaluatable->False, AspectRatioFixed->True], Cell["\<\ We're going to use the same sort of approach as for diffraction, \ but now we'll regard our square arrays as pictures (images) instead of masks.\ \ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "I prepared a blurred photo for analysis. Let's assign it to ", StyleBox["photo", FontFamily->"Courier", FontWeight->"Bold"], " (this takes a while) and check its size; like ", StyleBox["Length[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", ", StyleBox["Dimensions[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is a handy tool for checking the size of a matrix. As before,all the \ data is here, in a fixed-height cell. " }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\(photo\ = \ {{22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19278, 18360, 17442, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 17748, 18666, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19278, 18360, 17442, 16524, 15606, 14994, 14382, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 14688, 15606, 16524, 17442, 18360, 19278, 20196, 21114, 21726, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19278, 18360, 17442, 16524, 15606, 14688, 13770, 12852, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 13158, 14076, 14994, 15912, 16830, 17748, 18666, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 19584, 18666, 17748, 16830, 15912, 14994, 14076, 13158, 12240, 11322, 10710, 10710, 10710, 10710, 10710, 10710, 10710, 10710, 10710, 10710, 10710, 10710, 11322, 12240, 13158, 14076, 14994, 15912, 16830, 17748, 18666, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 20196, 19278, 18360, 17442, 16524, 15606, 14688, 13770, 12852, 11934, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 12240, 13158, 13158, 14076, 14994, 15912, 16830, 17748, 18666, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21420, 21114, 20808, 20808, 19890, 18972, 18054, 17136, 16218, 15300, 14382, 13464, 12852, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12852, 13770, 13770, 14076, 14382, 14382, 15300, 16218, 17136, 18054, 18972, 19890, 20808, 21726, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21114, 20502, 20502, 19890, 19278, 19278, 18360, 17748, 16830, 15912, 14994, 14076, 13158, 12546, 12546, 12546, 12546, 12546, 12546, 12546, 12546, 12546, 12546, 13158, 14076, 14382, 14994, 14994, 15606, 16218, 16218, 17136, 17748, 18666, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19890, 19890, 18972, 18972, 18054, 17136, 16218, 15300, 14382, 13464, 12546, 11628, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 12240, 13158, 14076, 14382, 14382, 15300, 15300, 16218, 17136, 18054, 18972, 19890, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19584, 19278, 18360, 18054, 17136, 16830, 15912, 14994, 14076, 13158, 12240, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 12240, 13158, 14076, 14688, 14994, 15912, 16218, 17136, 17442, 18360, 19278, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 20196, 20196, 19278, 18666, 18054, 17136, 16218, 15300, 14382, 13464, 12546, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 12240, 13158, 14076, 14994, 14994, 14994, 15912, 16524, 17136, 18054, 18972, 19890, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 20196, 19890, 19584, 18972, 18666, 17748, 16830, 15912, 14994, 14076, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 14076, 14994, 15912, 16218, 16524, 16830, 17442, 17748, 18666, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19890, 19278, 18666, 18666, 17748, 16830, 15912, 14994, 14076, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 14688, 15606, 16524, 16830, 17442, 18054, 18054, 18972, 19890, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19278, 18666, 18054, 18054, 17136, 17136, 16830, 15912, 15300, 14382, 13464, 13158, 13158, 13158, 13158, 13158, 13158, 13158, 13158, 13158, 13158, 13158, 14076, 14994, 15912, 16830, 17442, 18054, 18054, 18972, 18972, 19278, 20196, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19278, 18360, 17442, 16830, 15912, 15912, 15606, 14688, 14688, 13770, 12852, 11934, 11016, 10098, 10098, 10098, 10098, 10098, 10098, 10098, 10098, 10098, 11016, 11934, 12852, 13770, 14688, 15606, 16218, 17136, 17136, 17442, 18360, 18360, 19278, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 19584, 18666, 17748, 17136, 16218, 15300, 14382, 14076, 14076, 13464, 12852, 12240, 11934, 11628, 11322, 11016, 10710, 10710, 10710, 10710, 10710, 10710, 11322, 12240, 13158, 14076, 14994, 15912, 16524, 17442, 18360, 19278, 19584, 19584, 20196, 20808, 21420, 21726, 22032, 22338, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20502, 19584, 18666, 17748, 16830, 16830, 15912, 15300, 14994, 14076, 14076, 13158, 13158, 12240, 11322, 10404, 10404, 10404, 10404, 10404, 10404, 10404, 10404, 11322, 12240, 12852, 13770, 14688, 15606, 16524, 16524, 17442, 18054, 18360, 19278, 19278, 20196, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 19890, 18972, 18054, 17136, 16218, 15300, 14382, 14076, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 13770, 14076, 14994, 15912, 16830, 17748, 18666, 19584, 20502, 21420, 22338, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20808, 20808, 20808, 19890, 18972, 18054, 17136, 16218, 15300, 14382, 13464, 12546, 11628, 10710, 9792, 8874, 7956, 7038, 6120, 5814, 5508, 5508, 5508, 6120, 7038, 7650, 7650, 7650, 8568, 9486, 10404, 11322, 12240, 13158, 14076, 14994, 15912, 16830, 17748, 18666, 19584, 20502, 21420, 22338, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 19890, 18972, 18054, 17136, 16218, 16218, 15912, 14994, 14382, 13770, 12852, 12546, 11934, 11934, 11016, 10098, 9486, 9486, 9486, 9486, 9486, 9486, 10098, 11016, 11934, 12546, 13464, 14382, 15300, 16218, 16218, 16524, 17442, 18054, 18666, 19584, 19890, 20502, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21420, 21114, 20196, 20196, 19890, 19278, 18360, 17748, 16830, 15912, 14994, 14994, 14994, 14994, 14994, 14994, 14994, 14994, 14994, 14994, 14994, 14994, 14994, 14994, 15912, 16524, 16830, 17748, 17748, 18054, 18666, 19584, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20808, 20808, 19890, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 18972, 18360, 17442, 16830, 15912, 14994, 14382, 14076, 13770, 14688, 15606, 15912, 15912, 16830, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17748, 18360, 19278, 19890, 20808, 21726, 22338, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 19584, 18666, 18054, 17136, 17136, 17136, 17136, 17136, 16524, 16524, 15912, 15606, 14994, 14994, 14688, 14688, 13770, 12852, 12852, 12852, 12852, 12852, 13464, 14382, 15300, 16218, 17136, 17748, 18666, 18666, 18666, 18666, 18666, 19278, 19278, 19890, 20196, 20808, 20808, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 22032, 21114, 21114, 21114, 21114, 21114, 21114, 21114, 21114, 20196, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 20502, 20502, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 21114, 20196, 19890, 19890, 19890, 19890, 19890, 19890, 19584, 19584, 18972, 18972, 18972, 18360, 17442, 16524, 15606, 14688, 13770, 13158, 12240, 11322, 11322, 11322, 11016, 11016, 11934, 12240, 12240, 12240, 12240, 12240, 12240, 12546, 12546, 13158, 13158, 13158, 13770, 14688, 15606, 16524, 17442, 18360, 18972, 19890, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22644, 22032, 21114, 20196, 19278, 18360, 17442, 17442, 16524, 16524, 15606, 15606, 15606, 15606, 15300, 15300, 14994, 14994, 14688, 14382, 14382, 14076, 13158, 12546, 12546, 12852, 13464, 14382, 15300, 16218, 17136, 18054, 18054, 18972, 18972, 19890, 19890, 19890, 19890, 20196, 20196, 20502, 20502, 20808, 21114, 21114, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22032, 21114, 20502, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 18666, 18054, 17748, 17748, 17748, 17748, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18666, 19584, 20196, 21114, 21114, 21114, 21114, 21114, 21114, 21114, 21114, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22032, 21726, 21726, 21420, 20502, 20502, 19890, 19890, 19890, 19890, 18972, 18054, 17136, 16830, 15912, 14994, 14076, 13158, 12240, 11322, 10404, 9792, 9180, 8262, 7344, 7344, 6732, 5814, 5202, 6120, 5508, 6120, 6120, 6120, 6120, 7038, 7956, 8874, 9180, 10098, 11016, 11934, 12852, 13770, 14688, 15606, 16218, 16830, 17136, 17136, 17136, 17442, 17442, 17442, 16524, 16218, 15300, 14382, 13770, 12852, 12546, 12240, 12240, 11934, 11934, 11934, 11934, 11934, 11934, 11934, 11934, 11628, 11016, 11322, 12240, 12852, 13158, 13158, 13158, 14076, 14994, 15912, 16830, 17442, 18360, 18666, 18972, 18972, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19584, 20196, 20502, 20502, 20808, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21114, 21114, 21114, 21114, 21114, 21114, 21114, 21114, 20196, 19278, 18360, 17748, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17136, 16218, 15300, 15300, 15912, 16830, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 18054, 18972, 19890, 20502, 20808, 20808, 20808, 20808, 20808, 20808, 20808, 21114, 22032, 22950, 22950, 22950, 22950, 22644, 21726, 21420, 21420, 21114, 20196, 19890, 19584, 18666, 17748, 16830, 15912, 14994, 14076, 13158, 12240, 11628, 10710, 9792, 8874, 8262, 7650, 6732, 5814, 4896, 4284, 4284, 3672, 2754, 2142, 2142, 1836, 1224, 1224, 1224, 1224, 1224, 2142, 3060, 3978, 4896, 5202, 6120, 6732, 6732, 6732, 6732, 6732, 6732, 6732, 6732, 6732, 6732, 7650, 8262, 9180, 9792, 10710, 11628, 12546, 13464, 14382, 14382, 14382, 14382, 14382, 14688, 14688, 14688, 14994, 15300, 15912, 16830, 17136, 17748, 18666, 18666, 18666, 18666, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 19278, 19890, 20196, 20196, 20196, 20808, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 19890, 19890, 19890, 19890, 19890, 19890, 19890, 19890, 19890, 19890, 19890, 18972, 18054, 17136, 17136, 16218, 16218, 16218, 16218, 16218, 15606, 14688, 14382, 15300, 16218, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 18054, 18972, 19890, 19890, 20808, 20808, 20808, 20808, 20808, 21420, 22338, 22950, 22950, 22950, 22950, 22644, 21726, 21114, 20196, 19278, 18360, 17442, 16524, 15606, 14688, 14688, 13770, 13770, 13158, 12546, 11628, 11016, 10098, 9180, 8568, 7956, 7038, 6426, 5508, 4896, 4284, 4896, 4590, 4590, 4590, 4590, 4590, 4590, 4590, 4590, 3672, 4590, 3672, 3978, 3978, 3978, 3672, 3672, 4284, 3978, 3672, 3672, 3366, 3978, 4590, 4896, 5202, 5508, 6426, 7344, 8262, 9180, 10098, 10404, 10404, 10404, 10098, 10404, 9792, 9486, 10404, 10710, 11016, 11016, 11322, 12240, 12240, 12852, 12852, 11934, 11628, 11628, 12240, 12240, 12240, 12240, 12240, 12240, 12852, 13770, 14688, 14994, 15606, 16524, 17442, 17442, 18054, 18666, 18972, 19584, 19584, 20502, 20808, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20502, 19584, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 17748, 16830, 16218, 15300, 14688, 14382, 14382, 14382, 14382, 13464, 13464, 14382, 14994, 15912, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 17748, 18666, 19278, 20196, 20808, 21114, 21114, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20808, 19890, 18972, 18054, 18054, 17748, 16830, 16218, 15300, 15300, 15300, 14688, 14076, 13770, 12852, 12852, 12240, 11322, 11016, 10098, 10098, 9180, 8568, 8262, 8262, 7956, 7956, 7956, 7956, 7038, 6426, 6426, 6120, 6426, 5814, 4896, 4590, 4284, 4590, 4590, 3672, 3366, 4284, 4590, 4896, 4284, 5202, 5202, 5814, 5814, 5814, 6732, 7344, 7344, 7344, 7956, 8568, 9180, 8874, 9180, 9792, 10404, 11322, 11322, 11934, 12546, 13158, 13158, 12240, 11934, 11628, 10710, 11322, 11628, 12546, 13464, 13464, 13770, 14688, 15606, 15912, 16218, 16524, 17442, 17748, 18054, 18360, 18360, 18360, 18666, 18972, 19278, 19278, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21726, 21114, 20196, 19278, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 17442, 16830, 16218, 15300, 14994, 14994, 14994, 14994, 14688, 14688, 14994, 15606, 16524, 17442, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 19278, 19890, 20502, 21420, 21726, 21726, 21726, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 21420, 20808, 19890, 19278, 18666, 18666, 18054, 18054, 18054, 17442, 16524, 16524, 15912, 14994, 14076, 13770, 12852, 11934, 11322, 10404, 9486, 8568, 7650, 7038, 7038, 6426, 6120, 6426, 6120, 6426, 5508, 5202, 4896, 3978, 3672, 4284, 3366, 3060, 3366, 4284, 4284, 4590, 5508, 6120, 7038, 7956, 8262, 8262, 8874, 8874, 9486, 10098, 10404, 10710, 10098, 10710, 11016, 10710, 11016, 11934, 12240, 12546, 13464, 14076, 14076, 13770, 13464, 12546, 12240, 12240, 12240, 12852, 13770, 14076, 14994, 15300, 15606, 15912, 16524, 17442, 17748, 18360, 18972, 19584, 19584, 19584, 20196, 20196, 20196, 20196, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21420, 20502, 20196, 19890, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18360, 17748, 17442, 16524, 15606, 15606, 15606, 15606, 16218, 16218, 16218, 17136, 17442, 17748, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 19278, 19890, 20196, 21114, 22032, 22032, 22032, 22032, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 22032, 21114, 20196, 20196, 20196, 19890, 19278, 18972, 18666, 17748, 17136, 16830, 15912, 14994, 14076, 13464, 12852, 12240, 11322, 10404, 9486, 8568, 7650, 6732, 6732, 5814, 5814, 5814, 5202, 4590, 3978, 3978, 3978, 3366, 3672, 3366, 2754, 3366, 3672, 3978, 4284, 4896, 4896, 5814, 6426, 6732, 7038, 7038, 7956, 8568, 8874, 9486, 10098, 10710, 10710, 11016, 11628, 11934, 12546, 13158, 14076, 14994, 14688, 14382, 14076, 13464, 13464, 14076, 14076, 14382, 14994, 15606, 16524, 16524, 16830, 17442, 17748, 18054, 18054, 18666, 19278, 19278, 19278, 19584, 19584, 19584, 19584, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21420, 20502, 20502, 20502, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 18666, 18360, 17442, 16524, 16218, 16218, 16218, 16830, 16830, 16524, 17442, 17442, 17442, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 19278, 19584, 20502, 21420, 21726, 21726, 21726, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22338, 22032, 21420, 20502, 19584, 19278, 18666, 17748, 17442, 17442, 17442, 17136, 16830, 15912, 15606, 14994, 14688, 14688, 13770, 13464, 12852, 11934, 11016, 10098, 9486, 8874, 8262, 7956, 7956, 8262, 8262, 7956, 7956, 7650, 6732, 5814, 5202, 5202, 6120, 5508, 5508, 5508, 5202, 5508, 5202, 5202, 6120, 6426, 7038, 7038, 7344, 8262, 8874, 9792, 10404, 10710, 11322, 11322, 11628, 11934, 11934, 11934, 11322, 10404, 10404, 10404, 10710, 11016, 11628, 12240, 12852, 12852, 13464, 13770, 14688, 15300, 15300, 15606, 15606, 15606, 15606, 15912, 16830, 17136, 17748, 18666, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 22032, 21114, 21114, 21114, 20196, 20196, 20196, 20196, 20196, 20196, 20196, 20196, 20196, 20196, 20196, 20196, 19278, 18972, 18054, 17136, 16524, 16524, 16524, 16524, 16830, 16218, 17136, 17136, 17136, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18972, 19278, 20196, 21114, 21726, 21726, 21726, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21420, 21420, 20808, 19890, 18972, 18360, 18360, 18054, 17748, 17442, 17136, 17136, 16524, 15606, 14688, 14076, 13158, 12240, 11628, 10710, 9792, 8874, 8262, 7650, 7650, 7344, 6426, 6120, 6120, 6120, 5814, 4896, 4284, 3672, 3978, 3672, 2754, 3366, 4284, 4284, 3978, 4284, 4896, 4896, 4896, 5508, 5508, 5508, 5508, 5508, 6426, 7344, 8262, 8874, 8874, 8874, 8874, 8874, 8874, 7956, 7956, 8568, 8568, 8568, 9486, 10404, 11016, 11322, 11934, 12852, 13158, 14076, 14688, 15300, 16218, 16218, 16218, 16218, 16524, 17442, 18360, 19278, 20196, 21114, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21420, 20502, 20502, 20502, 19584, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 18972, 18054, 17748, 17136, 16218, 16218, 16218, 16830, 17748, 16830, 17748, 17748, 17748, 18666, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 19278, 20196, 20502, 21114, 22032, 22032, 22032, 22032, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 20808, 19890, 19278, 18360, 17748, 17748, 17136, 17136, 16524, 15912, 15912, 14994, 14688, 14382, 13770, 13464, 12546, 11628, 11322, 10710, 9792, 9180, 9180, 9180, 8262, 7650, 7650, 7344, 7344, 7038, 6426, 6120, 5814, 5508, 5202, 4896, 4896, 4284, 4590, 4896, 4896, 4896, 5202, 4896, 4896, 4896, 4896, 5508, 5508, 5508, 5508, 5508, 5508, 5508, 5508, 5508, 6426, 6732, 7650, 8568, 8874, 9792, 10710, 10710, 11016, 11322, 12240, 12852, 13464, 14076, 14994, 15606, 15912, 16830, 17748, 18666, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 20502, 20502, 20502, 19584, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 17748, 17136, 16218, 15300, 14994, 14994, 15912, 16830, 15912, 16524, 16524, 16524, 17442, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 19278, 19890, 20808, 21726, 22032, 22032, 22032, 22032, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 21114, 21114, 20502, 19584, 18666, 18360, 18054, 17748, 17442, 16830, 16524, 16524, 16218, 15300, 14688, 14076, 13158, 12546, 11934, 11322, 10710, 9792, 8874, 9180, 9180, 9180, 8262, 8568, 8568, 8874, 8262, 7650, 7650, 7038, 6732, 6120, 6120, 6120, 6120, 6732, 7344, 7956, 7956, 7650, 7650, 7344, 7956, 7956, 7650, 7650, 7344, 7344, 6732, 6732, 7038, 7956, 8874, 9180, 10098, 11016, 11934, 11934, 12240, 13158, 13158, 13158, 13464, 14076, 14994, 15606, 16524, 16830, 17748, 18054, 18972, 19890, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21420, 21420, 21420, 21420, 21420, 21420, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 19584, 18972, 18054, 17136, 16218, 15606, 16524, 17136, 16524, 16218, 16218, 16218, 16218, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 18054, 18666, 19584, 20502, 21420, 22032, 22032, 22032, 22644, 22950, 22950, 22950, 22950, 22644, 21726, 21420, 21114, 20196, 19278, 18360, 18360, 18360, 18054, 17442, 17442, 17136, 17136, 16524, 15606, 15606, 14994, 14076, 14076, 13770, 13770, 13464, 13158, 12240, 12546, 12546, 11934, 11628, 12546, 12546, 12852, 11934, 11016, 10404, 10098, 9180, 8568, 8568, 8262, 9180, 8874, 8568, 9180, 8262, 7956, 7038, 7344, 6732, 7344, 6732, 6732, 6732, 6732, 6732, 7650, 8262, 9180, 10098, 11016, 11934, 12852, 13770, 13770, 14688, 14688, 14994, 15912, 16218, 17136, 17748, 18666, 18666, 19584, 19890, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20502, 20502, 20502, 20502, 20502, 19890, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18054, 17748, 16830, 15912, 15300, 14688, 15606, 16524, 17136, 16218, 16218, 16218, 16218, 16830, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 18666, 18972, 19890, 20808, 21420, 22032, 22032, 22032, 22032, 22950, 22950, 22950, 22950, 22338, 21420, 21420, 21114, 20196, 19278, 18360, 18360, 17748, 17748, 17748, 17442, 16830, 16830, 16218, 15912, 15912, 15606, 15300, 15300, 15300, 15300, 14688, 14688, 14076, 14382, 14994, 14076, 13770, 14688, 14688, 14994, 14382, 14076, 13158, 12240, 11628, 11322, 10710, 11322, 11322, 10404, 10710, 10710, 9792, 8874, 7956, 7650, 7038, 6732, 6120, 5508, 6426, 7038, 7038, 7956, 8568, 9180, 10098, 11016, 11934, 12852, 13770, 14382, 14382, 14688, 15606, 15606, 15912, 16830, 17748, 18666, 19584, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21420, 21114, 21114, 21114, 21114, 21114, 20196, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 18666, 18360, 17748, 16830, 15912, 15300, 15300, 16218, 16830, 16218, 16218, 16218, 16218, 16218, 17136, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 18666, 18972, 19584, 20502, 21420, 22032, 22032, 22032, 22032, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 20196, 19278, 18666, 18054, 17748, 17748, 16830, 16524, 16218, 15912, 15912, 15912, 14994, 14688, 14688, 14076, 13158, 12852, 12852, 12546, 12546, 11628, 12240, 12546, 11628, 11628, 12546, 12240, 12240, 12240, 11628, 11628, 11016, 10404, 10404, 10404, 10404, 11016, 11016, 10098, 10710, 10710, 10098, 9180, 8874, 7956, 7956, 7956, 8568, 9486, 10404, 10404, 11322, 11934, 12240, 12852, 13770, 14688, 15606, 15912, 15912, 15912, 16218, 16524, 17442, 17442, 18360, 19278, 20196, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21420, 20808, 19890, 19890, 19890, 19890, 19890, 19278, 18360, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 17136, 16218, 16218, 15300, 14382, 13464, 12546, 13464, 14076, 14076, 14688, 14688, 14688, 14688, 14688, 15300, 16218, 16524, 16524, 16524, 16524, 16524, 16524, 16524, 16524, 17442, 18360, 18360, 19278, 20196, 21114, 22032, 22032, 22032, 22644, 22950, 22950, 22338, 21420, 21114, 21114, 20196, 19278, 18360, 17748, 17442, 17136, 16830, 16524, 15912, 14994, 14688, 14076, 13464, 12546, 12546, 12546, 12240, 11934, 11934, 11934, 11016, 11628, 12546, 12240, 11322, 11322, 11934, 11934, 11628, 11322, 11628, 11016, 10710, 10710, 11322, 11628, 11934, 12546, 12852, 12852, 11934, 11322, 10710, 9792, 8874, 8874, 8874, 8874, 9486, 10404, 11322, 11628, 12546, 13464, 14076, 14076, 14994, 15606, 16218, 16524, 16524, 16830, 16830, 17442, 17442, 18360, 19278, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 22032, 21420, 21114, 20502, 20502, 20502, 20502, 20502, 19584, 18666, 18360, 18360, 18360, 18360, 18360, 18360, 17748, 17136, 16524, 15606, 14994, 14076, 13158, 12546, 13464, 13464, 13158, 13464, 14076, 14076, 14076, 14076, 14076, 14994, 15912, 16218, 16218, 16218, 16218, 16218, 16218, 16830, 17442, 18054, 18972, 19584, 20502, 21420, 22032, 22032, 22032, 22950, 22644, 21726, 20808, 20808, 20502, 19584, 18666, 18360, 18360, 18054, 18054, 17442, 17136, 17136, 16524, 15912, 15300, 14382, 13770, 13464, 12852, 12240, 11628, 11016, 10404, 10098, 10098, 10404, 10098, 9486, 9792, 10710, 10098, 9486, 9180, 9180, 9180, 9486, 8568, 9180, 9486, 9486, 9486, 10098, 10404, 10098, 10098, 10098, 9792, 9486, 9792, 10710, 11322, 11628, 12546, 13158, 13158, 14076, 14688, 15300, 15300, 15912, 15912, 16830, 16830, 17136, 17748, 18666, 18666, 18666, 19584, 20196, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 21726, 21420, 20502, 19584, 19278, 18972, 18972, 18972, 18972, 18054, 17136, 16830, 16830, 16830, 16830, 16218, 15606, 14994, 14076, 13158, 12240, 11322, 10404, 10710, 11628, 10710, 11016, 11934, 12852, 13158, 13464, 13464, 13464, 13464, 14382, 15300, 15606, 15606, 15606, 15606, 16218, 16830, 17442, 18360, 19278, 20196, 21114, 22032, 22032, 22032, 22950, 22338, 21420, 20502, 20502, 19584, 18666, 17748, 16830, 15912, 15912, 15912, 15300, 15300, 14994, 14994, 14076, 13770, 13158, 12240, 11934, 11934, 11322, 10710, 10404, 10098, 10404, 10710, 11322, 11016, 11016, 11934, 12546, 12546, 13158, 13158, 12852, 13158, 12546, 11934, 11628, 11628, 11322, 11322, 11934, 11322, 10404, 10404, 10404, 9792, 9486, 9792, 10404, 10710, 11016, 11934, 11934, 12240, 13158, 13464, 13464, 13770, 14076, 14688, 15606, 15912, 16830, 17442, 18054, 18360, 19278, 20196, 20808, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21420, 21420, 20502, 19584, 18666, 18360, 18360, 18360, 18360, 18360, 18054, 17136, 16524, 16524, 16524, 15606, 14688, 14382, 13464, 13158, 12240, 11322, 10710, 10710, 11628, 11628, 10710, 11628, 12546, 13464, 13770, 13770, 13770, 13770, 13770, 14076, 14994, 15606, 15606, 15606, 16524, 17442, 17748, 18666, 18972, 19890, 20808, 21420, 21420, 21420, 22032, 22032, 21114, 21114, 21114, 20502, 19584, 18666, 18360, 18054, 18054, 18054, 17748, 17136, 17136, 16524, 15606, 14994, 14076, 13464, 12852, 12546, 11934, 11628, 11016, 11016, 11934, 11934, 11628, 11322, 11016, 11322, 11628, 11016, 10710, 10710, 9792, 10098, 9792, 8874, 8568, 8568, 8262, 8874, 8874, 9180, 8874, 8874, 8262, 8568, 8568, 8568, 9486, 9792, 10098, 11016, 11628, 12240, 13158, 13770, 13770, 14688, 14688, 15606, 16524, 17442, 18360, 19278, 19584, 20196, 20502, 21114, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 22032, 21420, 20502, 19584, 18666, 17748, 17748, 17748, 17748, 17748, 17748, 17442, 16524, 15912, 15300, 14688, 14076, 13464, 12546, 11628, 11322, 10404, 9486, 9486, 10404, 9486, 10098, 11016, 11934, 12852, 13770, 13770, 13770, 13770, 13770, 13770, 14076, 14994, 15606, 16218, 16830, 17442, 18054, 18972, 19890, 20196, 21114, 22032, 22032, 22032, 22032, 21114, 21114, 20502, 19890, 19278, 18666, 18360, 18360, 17748, 17748, 17748, 17748, 17442, 17442, 16524, 15606, 14994, 14382, 14076, 13770, 13158, 12852, 12546, 12240, 12852, 12852, 12546, 12546, 12240, 12546, 12546, 11934, 11628, 11934, 11322, 10404, 9486, 9486, 8568, 9180, 9792, 10404, 10098, 9486, 9180, 9486, 8874, 9180, 9486, 9792, 10710, 11016, 11628, 12546, 12852, 13464, 14382, 14688, 14994, 15606, 16524, 17442, 17748, 18666, 18972, 19278, 19278, 20196, 21114, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21420, 20808, 19890, 18972, 18054, 17442, 16830, 16830, 16830, 16830, 16830, 16830, 16524, 15606, 15300, 14994, 14994, 14076, 13158, 12240, 11322, 10404, 9486, 10098, 10098, 9792, 10404, 11322, 12240, 13158, 13770, 14382, 14382, 14382, 14382, 14382, 14382, 14688, 15606, 15912, 16218, 16218, 17136, 18054, 18972, 19890, 20808, 21726, 21726, 21726, 21114, 21114, 20196, 19278, 18666, 17748, 17442, 16524, 16218, 16218, 15912, 15912, 15912, 14994, 14076, 13770, 13158, 12852, 12852, 12240, 12240, 11934, 11934, 11934, 12546, 12546, 11628, 11934, 12240, 12852, 13464, 13464, 14076, 13770, 12852, 12240, 11322, 10404, 10404, 10710, 11016, 10710, 10098, 9486, 10098, 9180, 9486, 9486, 9486, 9792, 10710, 11628, 12240, 12852, 12852, 13158, 13464, 13770, 14382, 15300, 16218, 17136, 18054, 18972, 19584, 19584, 20502, 21420, 22032, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20502, 19890, 18972, 18666, 17748, 17136, 16218, 16218, 16218, 16218, 16218, 16218, 16218, 15912, 15300, 15300, 14994, 14076, 13158, 12240, 11322, 11322, 11322, 11628, 11628, 11628, 12240, 13158, 13464, 14382, 14994, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 16218, 16830, 16830, 17136, 18054, 18972, 19890, 20808, 20808, 20808, 20502, 20502, 21114, 20502, 19584, 19278, 18360, 17748, 17748, 17748, 17442, 17136, 17136, 17136, 17136, 16218, 15606, 14688, 14076, 14076, 13464, 13158, 12546, 12240, 12240, 12852, 12852, 12546, 12852, 13158, 13158, 13464, 13464, 12852, 12240, 11934, 11322, 11016, 10098, 9486, 10098, 10404, 10710, 11322, 10404, 10404, 10404, 11016, 11322, 11322, 11628, 12546, 12852, 13158, 13770, 14076, 14688, 15300, 15912, 16524, 17136, 18054, 18360, 19278, 19890, 20196, 20502, 21114, 21114, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21726, 21420, 20808, 20808, 20502, 20502, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19278, 18360, 18054, 17442, 16524, 15606, 14688, 13770, 13158, 12546, 12546, 11934, 11322, 11628, 10710, 11016, 11016, 11934, 11934, 11934, 11934, 11934, 11934, 11934, 11934, 12240, 13158, 13464, 14076, 14994, 15912, 16830, 17748, 18360, 18054, 18054, 18972, 19584, 19278, 19890, 18972, 18054, 18054, 17136, 17136, 16830, 16218, 15912, 15912, 15606, 15300, 14994, 14688, 14688, 14688, 13770, 12852, 12852, 12240, 12240, 12240, 12240, 11628, 11628, 11016, 11322, 11322, 11322, 12240, 11628, 11322, 11016, 10404, 10404, 10404, 9792, 9180, 9486, 8874, 7956, 8874, 9792, 9792, 10404, 11322, 12240, 12240, 13158, 13770, 14688, 15300, 16218, 16218, 16218, 16830, 17442, 18360, 19278, 19278, 19584, 20502, 21420, 21420, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21114, 21114, 20808, 20808, 20808, 20196, 19890, 18972, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 17748, 17748, 17442, 17442, 16524, 15606, 14688, 13770, 13464, 13464, 12852, 11934, 11322, 10404, 9486, 9792, 10098, 11016, 11322, 11322, 11322, 11322, 11322, 11322, 11322, 12240, 12240, 12546, 12546, 13464, 14382, 15300, 15300, 15300, 15912, 15912, 16524, 16524, 16524, 17136, 16830, 16830, 16830, 16218, 16218, 15606, 14994, 14994, 14382, 14382, 14382, 13770, 13770, 13158, 12852, 12240, 11934, 11934, 11934, 12240, 12546, 11934, 11934, 12240, 11628, 11628, 11628, 10710, 11016, 10404, 10098, 10710, 10404, 10404, 10098, 10098, 9792, 9180, 9792, 10098, 10710, 11016, 11934, 12852, 12852, 13464, 14382, 15300, 15912, 16830, 17442, 17442, 18360, 18666, 19278, 20196, 20196, 20502, 21114, 21420, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 21114, 20502, 20196, 19584, 18972, 18054, 17136, 16218, 15300, 14688, 14382, 14382, 14382, 14382, 13464, 13464, 13464, 13464, 12852, 12240, 12240, 12240, 12240, 12852, 11934, 11016, 10710, 10098, 9792, 9486, 9486, 10098, 10404, 10710, 11016, 10404, 9486, 9180, 9180, 9792, 9792, 9792, 8874, 8874, 8568, 7650, 6732, 6732, 6120, 6732, 7038, 7650, 8262, 8568, 9180, 9792, 9486, 9792, 10098, 9486, 10404, 11322, 11628, 10710, 10404, 10404, 9792, 10098, 10404, 11016, 11322, 11322, 12240, 12546, 11934, 11628, 11628, 11628, 11322, 11322, 10710, 10404, 9792, 9486, 9792, 8874, 8262, 7650, 8262, 7956, 7956, 8568, 9180, 9486, 9792, 10404, 11322, 11322, 11934, 12852, 13770, 14076, 14382, 15300, 15606, 16524, 17442, 18360, 18972, 19584, 20502, 21114, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 21114, 20196, 19890, 18972, 18666, 17748, 16830, 15912, 15300, 14994, 14994, 14994, 14994, 14688, 14076, 14076, 14076, 14076, 14076, 14076, 14076, 13770, 14688, 14994, 14076, 14076, 14076, 13464, 13464, 12852, 12852, 12852, 12852, 12546, 11934, 11016, 10098, 9180, 8568, 8262, 7650, 6732, 5814, 4896, 3978, 3060, 3060, 2754, 2448, 3366, 3060, 3978, 4896, 5202, 6120, 6732, 7038, 7956, 7956, 8874, 9792, 10710, 10710, 11628, 11628, 12240, 12852, 13464, 13464, 13770, 14076, 14076, 13770, 13770, 12852, 12240, 12240, 11322, 11322, 10404, 9792, 9486, 8874, 8874, 8262, 7344, 7344, 7956, 7038, 7956, 7956, 8262, 8568, 9486, 10098, 10710, 11016, 11628, 12546, 13464, 14382, 14382, 15300, 15912, 16830, 17748, 18666, 19278, 20196, 20808, 21726, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 19890, 18972, 18054, 17136, 17136, 16830, 16218, 15912, 15606, 14994, 14382, 13464, 12546, 11628, 11016, 10404, 10404, 10404, 9486, 9180, 9180, 9180, 9792, 10710, 11628, 12240, 13158, 14076, 14994, 14994, 14382, 14994, 14382, 14688, 14382, 14076, 14076, 14076, 14688, 14382, 14076, 13158, 12240, 12240, 11628, 10710, 9792, 8874, 8262, 7344, 6732, 6732, 5814, 5202, 4896, 5202, 5202, 5508, 4590, 5508, 6120, 6732, 7650, 7650, 8568, 9486, 9486, 9792, 10710, 10710, 11322, 11322, 11322, 11016, 11322, 11016, 10710, 10710, 11322, 11016, 11016, 10404, 10098, 10098, 9180, 8568, 8568, 7650, 7344, 6732, 6732, 6732, 6732, 6732, 7650, 7956, 8874, 9792, 10710, 11322, 12240, 12546, 13464, 13464, 14076, 14688, 15300, 16218, 17136, 18054, 18972, 19278, 20196, 20808, 21420, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 19890, 18972, 18666, 18666, 17748, 16830, 16524, 16524, 16524, 16218, 15606, 15606, 14688, 13770, 13158, 12852, 11934, 11016, 11016, 11016, 11016, 10404, 10710, 11628, 12546, 13464, 14382, 14688, 14688, 15606, 16524, 16830, 16830, 16830, 16524, 17136, 16218, 17136, 17748, 18054, 18360, 18360, 18360, 18054, 17136, 16218, 15912, 15912, 14994, 14994, 14688, 13770, 12852, 12240, 12240, 12240, 11934, 11628, 11628, 12240, 11934, 12546, 11934, 11934, 11628, 10710, 11016, 11628, 11016, 11322, 12240, 12546, 11934, 11934, 11628, 11322, 11934, 12240, 12240, 11322, 10710, 10710, 10098, 9792, 9486, 9180, 8568, 8262, 8262, 7956, 7956, 7956, 8262, 8262, 8874, 8874, 9486, 10098, 11016, 11322, 11934, 12240, 12852, 13464, 14382, 14994, 15300, 16218, 16524, 16830, 17442, 18360, 19278, 19584, 20502, 21420, 22032, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21726, 20808, 19890, 19584, 19584, 19584, 19584, 18972, 18054, 17136, 16218, 16218, 16218, 16218, 16218, 16218, 15300, 14382, 13464, 12546, 11628, 11016, 10098, 9180, 9792, 10098, 11016, 11934, 12240, 12240, 12240, 12240, 12852, 13770, 14688, 15606, 15606, 15606, 15606, 15606, 14994, 15912, 16218, 17136, 17442, 18360, 18666, 19584, 20196, 20196, 20502, 20502, 19890, 19890, 19890, 18972, 18054, 18054, 18054, 18054, 17442, 16524, 15912, 15912, 15912, 16524, 16524, 16830, 16830, 16524, 15912, 15912, 14994, 15300, 14688, 14382, 14076, 13770, 13770, 13464, 14382, 14382, 13464, 12852, 12240, 12852, 13158, 12852, 11934, 11628, 10710, 10404, 10098, 9180, 9180, 9792, 9180, 9180, 9180, 9792, 10098, 10404, 11322, 11322, 11628, 11628, 12546, 13464, 14076, 14688, 14688, 15300, 16218, 17136, 17442, 18360, 18666, 19278, 20196, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19278, 19278, 19278, 19278, 19278, 18360, 17748, 16830, 15912, 14994, 14688, 14688, 14688, 14382, 14382, 13464, 13158, 12240, 11322, 10404, 9486, 8568, 8568, 8874, 8874, 9792, 8874, 8262, 7956, 7956, 8874, 9486, 10404, 11322, 12240, 12546, 12546, 12546, 12852, 12852, 13770, 14076, 14994, 15912, 16830, 17748, 18666, 19584, 20196, 21114, 21114, 22032, 22644, 22950, 22644, 21726, 20808, 20196, 19584, 18666, 17748, 17136, 17136, 17136, 16218, 16218, 15300, 15300, 14382, 14382, 13770, 13770, 13464, 13464, 13464, 13158, 12546, 12240, 11628, 11628, 11628, 11628, 11934, 11934, 12240, 12852, 13158, 12240, 12240, 12240, 11934, 11934, 11322, 11628, 11628, 11322, 10710, 11016, 11016, 11016, 11322, 11934, 12240, 12852, 13158, 14076, 14994, 15300, 15912, 16524, 16830, 17136, 18054, 18054, 18972, 19278, 20196, 20808, 21420, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 20502, 20502, 20502, 20502, 20502, 20196, 19278, 18360, 17442, 16524, 15606, 14994, 14994, 14994, 14994, 14688, 14382, 13770, 12852, 12240, 11322, 10404, 10710, 10710, 10710, 9792, 8874, 8262, 7650, 7344, 7650, 8262, 9180, 10098, 11016, 11628, 11934, 11934, 11934, 11934, 12240, 12546, 13158, 14076, 14688, 15606, 16524, 16830, 17748, 18666, 19584, 20502, 21114, 21726, 22032, 22032, 21420, 20502, 19890, 18972, 18360, 17748, 17748, 17748, 17136, 17136, 16218, 15300, 15300, 14994, 14382, 14382, 13770, 12852, 12852, 12546, 11934, 11628, 11628, 10710, 10098, 10404, 10404, 10098, 11016, 11016, 11322, 11322, 10710, 10404, 9486, 10098, 10098, 9792, 10098, 10404, 9486, 10098, 11016, 11016, 11322, 11934, 12240, 12240, 13158, 13770, 14382, 15300, 16218, 16218, 17136, 17748, 17748, 18360, 19278, 20196, 20502, 21420, 21726, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19584, 19584, 19584, 19584, 19278, 18360, 17442, 16524, 15606, 14688, 13770, 12852, 11934, 11934, 11934, 11934, 11628, 11322, 10710, 10404, 9486, 8568, 8568, 8568, 8568, 8568, 7956, 7038, 6732, 6120, 6120, 6120, 6120, 6120, 6732, 7038, 7956, 8568, 8568, 8568, 8568, 8568, 8568, 8568, 8262, 8568, 9486, 10404, 11016, 11016, 11628, 12240, 12852, 13158, 13770, 13770, 14688, 15300, 15300, 14688, 15300, 14382, 14076, 13464, 13464, 13464, 13464, 13770, 13770, 13770, 14076, 14076, 13770, 14076, 14382, 13464, 13464, 12852, 12546, 12240, 12240, 11322, 11016, 11016, 11322, 11016, 11016, 11322, 11322, 11322, 10404, 10098, 9792, 9486, 9792, 10098, 9180, 8568, 8568, 9180, 10098, 10098, 11016, 11322, 11934, 12852, 13770, 14382, 15300, 15912, 16218, 17136, 17442, 18054, 18054, 18972, 19584, 19890, 20808, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 20808, 20502, 19890, 19890, 19890, 19890, 18972, 18054, 17136, 16830, 16218, 15300, 14382, 13464, 13464, 12852, 11934, 11628, 11016, 10710, 10404, 9792, 9180, 9792, 9792, 8874, 8568, 8568, 7650, 6732, 6426, 6732, 6732, 7038, 6426, 6426, 7038, 7344, 7956, 7956, 7956, 8262, 8262, 7956, 8262, 7956, 7650, 8262, 8262, 8874, 8874, 8874, 8874, 8874, 9180, 8874, 8568, 8568, 8874, 9792, 9486, 8874, 8874, 8874, 8874, 9180, 9792, 9486, 10098, 9180, 9486, 9792, 10098, 9486, 9792, 10404, 11016, 11628, 12546, 12240, 11934, 12240, 12852, 12546, 12546, 12546, 13464, 13158, 12852, 12546, 12852, 12240, 11934, 11934, 12240, 12240, 12546, 12546, 12546, 12240, 12546, 12546, 12546, 12546, 13464, 14382, 14994, 15300, 15912, 15912, 16830, 16830, 17748, 18360, 18666, 18666, 19278, 20196, 20502, 21114, 21420, 21726, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19278, 19278, 19278, 18972, 18972, 18972, 18054, 17136, 16218, 15606, 14688, 14076, 13158, 12240, 12240, 12240, 12240, 11322, 10710, 10098, 10098, 10098, 10710, 11322, 11322, 11934, 11016, 10098, 9486, 8568, 7650, 7956, 8262, 8262, 7956, 8874, 9180, 9792, 10098, 9180, 8874, 7956, 7956, 7650, 7956, 7956, 7956, 7956, 7650, 7956, 7344, 7344, 7650, 8262, 8874, 9180, 8874, 8568, 9486, 10098, 9486, 9180, 8874, 8568, 8568, 8874, 8874, 8874, 9792, 9486, 9180, 8568, 8874, 9180, 9792, 10404, 11016, 11628, 11934, 11934, 11628, 12240, 12546, 11934, 12240, 12240, 11934, 11934, 12546, 13464, 12546, 13158, 13158, 12852, 13464, 12852, 12546, 12546, 12546, 11628, 11934, 12240, 12240, 12240, 12546, 13464, 13770, 14382, 14994, 14994, 15606, 16524, 17136, 17442, 17442, 18360, 18666, 19584, 19890, 19890, 20808, 21726, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19890, 19584, 19584, 19584, 19584, 19278, 18360, 17442, 16524, 16524, 16218, 15300, 14688, 13770, 13770, 13464, 13464, 13158, 12852, 12546, 12546, 12546, 13158, 14076, 14076, 13770, 13770, 13158, 12240, 11322, 11016, 11016, 11934, 11934, 11628, 11322, 11934, 11934, 12852, 12546, 12240, 11934, 11628, 11016, 11322, 10710, 10710, 11016, 10404, 11016, 10710, 11016, 11016, 11628, 12240, 12240, 12546, 12240, 13158, 12546, 12240, 11934, 12546, 11628, 11322, 11322, 11016, 11628, 12240, 11934, 12546, 12240, 12240, 12240, 12546, 12852, 12852, 12852, 13158, 13158, 13770, 13770, 14076, 13770, 14076, 14994, 14994, 14994, 15300, 15912, 16218, 15912, 14994, 14382, 14382, 13770, 13158, 12546, 13158, 12240, 11934, 11934, 12546, 12546, 12852, 12852, 13464, 13464, 13770, 14382, 14382, 14994, 14994, 15606, 15606, 15912, 16830, 17748, 18666, 18972, 19584, 20502, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 20196, 20196, 20196, 20196, 20196, 19584, 18666, 18054, 17748, 17748, 16830, 15912, 15912, 15912, 15912, 15912, 15300, 14994, 14994, 14076, 14076, 13464, 13770, 14688, 14688, 14994, 14688, 14382, 13464, 12546, 12240, 12240, 12852, 12546, 12546, 12852, 13464, 12852, 12546, 12546, 12240, 11934, 11934, 11016, 11016, 10098, 10404, 10710, 10710, 11322, 11016, 10710, 10404, 11016, 11628, 12240, 12240, 11934, 11934, 11628, 11322, 11322, 11628, 11628, 11322, 11016, 11322, 11322, 11322, 11934, 12240, 12546, 12240, 11934, 12240, 11628, 11628, 12240, 12546, 12240, 12546, 12546, 12852, 13158, 13158, 14076, 13770, 13158, 13464, 13464, 14076, 14076, 13464, 13464, 12852, 13464, 12546, 12240, 12546, 12240, 12240, 12546, 12546, 12546, 13158, 13158, 14076, 14076, 14382, 14688, 14688, 15300, 16218, 16218, 16524, 16524, 17136, 18054, 18972, 19890, 19890, 20808, 21420, 21420, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 19584, 19584, 19584, 18972, 18972, 18360, 17748, 17442, 17136, 17136, 17136, 17136, 16524, 15912, 15300, 15300, 15912, 16830, 17136, 16830, 16524, 16218, 15300, 14688, 14076, 14076, 13770, 13464, 13464, 12546, 12546, 13158, 13158, 13464, 12852, 12852, 12852, 12546, 12852, 13158, 12240, 12240, 11934, 12240, 12240, 12240, 12240, 12546, 12852, 13464, 13770, 13464, 13158, 13158, 13770, 13770, 12852, 13158, 12852, 13464, 12852, 12546, 13158, 13464, 13464, 14076, 14076, 14382, 14688, 14382, 14688, 14688, 14688, 14994, 14994, 14994, 15300, 15606, 15606, 15912, 16524, 16524, 15912, 15606, 15606, 15606, 14994, 14382, 13770, 13158, 12546, 12240, 11322, 11322, 11016, 10098, 10404, 11016, 11016, 11016, 11628, 11934, 12240, 12852, 12852, 12852, 13770, 14382, 14994, 14994, 15606, 16524, 17442, 18054, 18972, 19890, 20196, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 22032, 21726, 21726, 21726, 21726, 21726, 21726, 21114, 21114, 20808, 20502, 20196, 19584, 19584, 19584, 19278, 19278, 18666, 18666, 18054, 17136, 17136, 16524, 16524, 17136, 16830, 17136, 16524, 15912, 14994, 14994, 14688, 14688, 14076, 14382, 14688, 14382, 14382, 14382, 14382, 14076, 14076, 14076, 13158, 12852, 13158, 12240, 11934, 11628, 11322, 11628, 11016, 11628, 12240, 12852, 12852, 12240, 12852, 13158, 13158, 12546, 12240, 12546, 11934, 11016, 11322, 11016, 11016, 11934, 11934, 11934, 12852, 13770, 14076, 14688, 14688, 15300, 15300, 14688, 14994, 14994, 15912, 15912, 16218, 15606, 15606, 16524, 16830, 16830, 16830, 17136, 16830, 17136, 17136, 17136, 16830, 15912, 14994, 14382, 14382, 14382, 14076, 13158, 13464, 13464, 13464, 13464, 13464, 13464, 14076, 14688, 14688, 14688, 15300, 16218, 16218, 16830, 17136, 17136, 18054, 18972, 19890, 20808, 21420, 21420, 21420, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21726, 21726, 21726, 21726, 21726, 21726, 21114, 20196, 19584, 19584, 19584, 19584, 19584, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18360, 17442, 17442, 16830, 17748, 18054, 17748, 17748, 17748, 17136, 17136, 17442, 17748, 18360, 18054, 18054, 18054, 18054, 18054, 17748, 16830, 16524, 16524, 16524, 15912, 15606, 15606, 14994, 15300, 14688, 14382, 13770, 12852, 11934, 11934, 11934, 11322, 11628, 11322, 10710, 10710, 9792, 9792, 9792, 9792, 10404, 10710, 9792, 9792, 9792, 10710, 11322, 11628, 11628, 12240, 12546, 12852, 13770, 14688, 15300, 14994, 15912, 15912, 16218, 16524, 16218, 17136, 17136, 17442, 17442, 17748, 17442, 18054, 17442, 17442, 16524, 16524, 15912, 15300, 15300, 14994, 15606, 14994, 14076, 14076, 14382, 14382, 14688, 14688, 15300, 15606, 15606, 15606, 15912, 16218, 16218, 16524, 16830, 17442, 18054, 18972, 19278, 20196, 21114, 21114, 21420, 21420, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 21114, 21114, 21114, 21114, 20808, 19890, 18972, 18666, 18054, 18054, 18054, 17136, 17136, 16830, 16830, 16524, 16524, 16218, 15606, 15606, 14688, 14382, 14994, 15606, 15300, 14688, 14382, 14076, 13464, 13158, 13158, 13770, 13770, 13770, 13770, 13770, 14076, 14076, 13770, 13464, 13770, 13770, 13770, 14076, 13158, 13464, 13464, 13464, 13158, 12546, 12546, 11934, 11322, 11016, 10710, 11322, 10710, 11016, 11016, 10098, 9486, 10098, 9486, 9180, 9486, 9180, 9180, 8568, 8262, 8874, 9486, 9792, 10098, 10710, 11322, 11934, 12546, 12852, 13770, 14688, 14994, 15912, 15912, 16524, 17442, 18054, 18054, 18054, 18972, 18666, 18360, 17442, 17748, 17748, 17136, 16830, 15912, 15606, 15606, 15912, 15606, 15300, 15606, 15606, 15606, 15606, 15606, 15606, 15606, 15606, 15606, 15606, 16218, 16218, 16524, 17136, 18054, 18666, 19278, 20196, 20502, 21420, 21726, 21726, 21726, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21114, 21114, 21114, 21114, 21114, 21114, 20196, 20196, 19890, 19584, 19278, 19278, 19278, 18666, 18054, 17442, 17442, 17136, 16524, 16524, 16218, 15912, 15300, 15912, 16218, 15606, 14688, 13770, 13464, 13158, 12546, 12546, 12546, 12852, 12852, 13158, 12852, 12852, 13464, 13464, 14076, 13158, 13464, 13770, 13158, 12852, 12240, 12240, 12240, 11934, 11934, 11934, 11934, 11934, 11322, 11628, 11934, 11016, 10404, 9792, 9180, 9486, 9180, 9180, 9792, 9792, 10404, 10098, 10098, 10098, 10098, 10404, 11016, 11016, 11322, 12240, 13158, 14076, 14076, 14994, 14994, 15300, 16218, 16830, 17748, 18360, 18360, 18666, 18360, 17442, 17136, 16830, 16218, 15606, 15300, 15606, 15912, 15300, 14994, 15300, 14994, 14994, 14994, 14382, 14382, 14688, 14994, 14994, 14994, 14994, 14994, 14994, 14994, 15300, 16218, 16524, 17136, 18054, 18972, 19890, 20196, 20502, 21114, 21420, 21726, 22032, 22032, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 21420, 21420, 21420, 21420, 21420, 21420, 20502, 19584, 19584, 19278, 18666, 18054, 17136, 17136, 16830, 16218, 15912, 15300, 15300, 14688, 14382, 13770, 13770, 13464, 14382, 14688, 14076, 13464, 13464, 13158, 12546, 13158, 14076, 13464, 13770, 14382, 14994, 15912, 15606, 15912, 15912, 16218, 16218, 16218, 16218, 16218, 16218, 15912, 16524, 16524, 16218, 16218, 15912, 14994, 14382, 14076, 13464, 13158, 13464, 12852, 12240, 11934, 11322, 11322, 11016, 11628, 10710, 10710, 10404, 10404, 10404, 10710, 11016, 10098, 10098, 10404, 11016, 11934, 12546, 13464, 14076, 14382, 14688, 14994, 15606, 16218, 16524, 16830, 17136, 16524, 15912, 15912, 16218, 15606, 15606, 15300, 14688, 14688, 14994, 14994, 14688, 14382, 14382, 13770, 13464, 13770, 14382, 14382, 14382, 14382, 14382, 14382, 14688, 14688, 15606, 16218, 17136, 17442, 18360, 18972, 19584, 20502, 20502, 21114, 21114, 21420, 21726, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 20502, 20502, 20502, 20502, 20502, 20502, 20196, 20196, 19584, 19584, 19584, 19584, 18972, 18666, 18666, 17748, 17442, 16830, 16218, 15912, 15912, 15606, 15606, 15912, 16524, 16524, 15606, 14994, 14994, 14076, 13158, 12852, 12240, 12852, 12852, 12852, 12852, 13464, 13464, 13464, 14382, 14076, 14688, 14688, 14994, 14994, 14994, 15300, 15912, 16218, 15912, 16830, 17136, 17136, 17748, 18054, 18360, 18360, 18054, 17748, 17136, 17136, 16524, 16830, 16830, 15912, 16524, 16218, 16524, 15912, 15912, 15300, 15300, 14994, 14688, 14994, 14382, 14688, 14076, 14382, 14994, 15300, 15912, 16218, 16524, 17136, 16524, 16830, 15912, 15606, 16524, 15606, 15606, 15606, 16218, 16218, 17136, 16830, 16830, 16830, 17136, 17748, 16830, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17748, 18054, 18972, 19278, 19278, 20196, 20502, 20808, 20808, 20808, 20808, 21114, 21420, 21726, 21726, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 20196, 20196, 20196, 20196, 19278, 19278, 18972, 18666, 18360, 18360, 18054, 17442, 16830, 16830, 15912, 15300, 14688, 14382, 14076, 14076, 13464, 13464, 14076, 14994, 15606, 15300, 15300, 14688, 13770, 14382, 14076, 14382, 14076, 14382, 14076, 13770, 13770, 14382, 13770, 14688, 14994, 14994, 14994, 14382, 13464, 13770, 13770, 14076, 13770, 13464, 13770, 13464, 14076, 14994, 14994, 15300, 14994, 15606, 15606, 14994, 15300, 15912, 15300, 15606, 14994, 15300, 15912, 16218, 16524, 17442, 17748, 17442, 17136, 17136, 17442, 16524, 16218, 16218, 15300, 14688, 14688, 14076, 14076, 13770, 14688, 14994, 14382, 14688, 14076, 14688, 14076, 14076, 13464, 13464, 13158, 12546, 12852, 12852, 12852, 12240, 12546, 12546, 11628, 12546, 13464, 13464, 14382, 14382, 14688, 14688, 14688, 15300, 15606, 16524, 16524, 17136, 17136, 17748, 18360, 18666, 19278, 19278, 19584, 19890, 20808, 21420, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 21114, 21114, 21114, 20196, 19584, 19584, 19584, 19584, 18972, 18972, 18972, 18972, 18054, 17748, 17136, 16830, 16524, 16524, 15912, 15606, 14994, 14688, 15300, 16218, 15300, 15300, 14994, 14688, 15606, 16218, 15606, 15606, 15606, 15912, 15606, 14994, 14688, 15300, 15606, 15912, 15606, 15912, 15606, 15912, 15606, 15912, 16218, 16218, 15300, 15606, 14994, 15300, 14994, 14382, 14382, 14076, 13464, 13158, 12546, 11934, 12546, 12852, 12852, 12240, 12546, 12852, 12240, 12240, 12546, 13158, 13464, 13158, 13464, 14382, 14076, 13770, 13464, 13770, 13770, 13158, 14076, 14076, 14076, 14688, 14688, 14382, 14382, 13770, 13464, 13464, 13464, 13464, 13770, 13464, 13158, 13158, 13464, 13464, 12852, 12852, 12852, 12852, 12240, 12852, 13464, 13464, 14076, 14382, 14688, 15606, 15912, 15912, 16830, 17748, 17748, 18054, 18666, 18666, 18972, 19278, 19278, 19278, 19278, 19890, 20808, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21726, 21726, 21726, 21726, 20808, 19890, 19584, 18972, 18666, 18666, 18666, 18054, 18054, 17442, 17136, 16524, 16218, 16218, 16218, 15912, 14994, 14994, 14382, 13464, 13770, 13770, 13158, 12852, 12852, 13770, 14382, 14382, 14994, 14994, 14994, 14994, 15606, 14994, 15606, 15912, 16218, 16524, 16524, 15912, 16218, 16830, 16830, 17136, 17748, 17748, 18054, 18666, 18972, 18972, 18666, 18360, 18360, 17748, 17748, 17442, 16524, 15912, 16218, 15300, 14994, 15300, 15300, 14688, 14994, 14688, 14688, 14076, 13770, 14076, 14688, 14382, 14076, 14076, 14076, 14076, 14688, 14688, 14994, 14688, 14688, 14688, 14994, 15300, 15300, 14688, 14688, 14076, 13770, 13770, 13158, 13464, 14076, 14688, 14382, 13770, 13464, 12852, 12546, 11628, 11934, 11934, 12240, 12546, 13158, 13464, 14382, 14688, 14688, 15606, 16524, 16524, 17136, 18054, 18360, 19278, 19278, 19278, 19278, 19584, 20196, 20808, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21114, 21114, 21114, 20502, 19584, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18666, 18666, 18360, 18360, 18360, 18360, 18360, 18054, 17136, 16524, 15606, 15606, 16218, 15912, 15912, 15606, 15912, 16218, 16524, 16524, 16524, 15606, 15300, 15300, 14994, 15300, 14994, 14994, 14994, 14994, 14994, 14688, 14688, 14688, 15300, 15912, 16218, 15912, 16218, 16218, 15912, 15606, 15300, 15606, 15606, 14688, 15606, 15912, 14994, 15300, 14688, 14688, 14688, 13770, 13464, 13464, 13770, 13770, 14076, 13770, 13158, 12546, 13158, 13158, 12852, 13158, 13770, 13770, 13770, 13464, 13770, 13464, 12852, 13158, 12852, 13464, 12852, 13158, 14076, 13770, 12852, 12240, 11628, 12240, 12546, 12852, 13464, 13158, 12546, 12852, 12240, 11322, 12240, 12240, 12546, 13158, 13464, 14076, 14688, 14994, 14994, 15912, 15912, 15912, 16524, 17442, 18054, 18972, 18972, 18972, 19584, 19890, 20196, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 21114, 21114, 20196, 19278, 18666, 18360, 17748, 17442, 17442, 17442, 17136, 17136, 17136, 16218, 15606, 14994, 14994, 14994, 14994, 14076, 13464, 13158, 13770, 14076, 13464, 13464, 13464, 14382, 15300, 15912, 16218, 16524, 16830, 16524, 15912, 15606, 14688, 14382, 14994, 15606, 15300, 15300, 15300, 15300, 15912, 16524, 16524, 16830, 17136, 17136, 16524, 16524, 16218, 15606, 14994, 14994, 14382, 13770, 13770, 14076, 14076, 14994, 14688, 14382, 14382, 14994, 14382, 13770, 12852, 12240, 11322, 11322, 10710, 10710, 11016, 11322, 11322, 10710, 11322, 11016, 11016, 11934, 12546, 11934, 12240, 12852, 12240, 12546, 12240, 11322, 10710, 10404, 10098, 11016, 11322, 11934, 11628, 11322, 10710, 11016, 10404, 9486, 10404, 10404, 11322, 11322, 11322, 11322, 12240, 12240, 12240, 12852, 13158, 14076, 14994, 15912, 16830, 17748, 17748, 18360, 18666, 19278, 20196, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 22032, 22032, 22032, 21726, 20808, 20502, 20502, 20196, 19584, 18972, 18972, 18360, 18054, 18054, 17136, 16218, 16218, 15606, 14688, 14382, 14382, 14382, 13770, 13464, 13464, 13158, 13158, 12546, 12852, 13770, 14076, 14076, 14382, 14994, 15300, 14994, 14688, 14688, 14688, 15300, 15606, 15300, 15912, 16524, 16830, 16830, 16218, 16830, 16524, 17136, 17442, 16524, 16830, 16524, 16524, 16524, 16218, 15300, 15300, 15300, 15300, 15606, 15300, 14688, 14688, 14994, 14382, 13464, 12852, 11934, 11016, 11016, 10098, 9792, 9486, 8568, 8568, 8262, 7956, 7956, 7650, 7344, 7956, 7650, 7650, 7650, 8262, 8262, 7956, 8262, 8262, 8262, 8568, 9486, 9792, 10404, 10098, 10710, 11016, 11628, 12546, 12546, 12240, 11934, 11934, 12240, 12852, 13158, 13464, 13770, 14076, 14076, 14688, 15606, 15606, 15912, 16830, 17442, 17442, 18054, 18360, 19278, 19584, 20196, 20196, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 21420, 21420, 21420, 20502, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19278, 18972, 18054, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 16524, 15912, 15606, 16218, 15606, 15300, 14994, 15606, 15912, 15912, 15912, 15912, 14994, 14688, 14076, 14076, 13770, 14076, 14076, 13770, 13464, 12852, 12852, 12852, 12546, 13158, 13464, 14382, 14382, 14994, 14688, 14994, 14994, 15300, 15300, 14688, 14382, 15300, 14994, 15606, 14994, 15300, 15606, 15606, 14994, 14994, 14994, 14994, 14994, 14994, 14688, 14076, 13158, 12546, 11628, 11934, 11934, 11934, 12240, 11322, 11322, 10710, 10710, 10710, 10710, 11016, 10404, 10710, 11322, 11322, 11322, 11628, 11322, 10710, 10098, 9486, 9792, 9792, 10710, 10710, 10098, 9180, 9486, 9486, 10404, 11016, 11934, 11934, 12546, 12546, 13158, 14076, 14076, 14382, 15300, 15606, 15912, 16218, 16830, 17748, 18666, 19278, 20196, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 22644, 21726, 21114, 21114, 21114, 20808, 19890, 20196, 20196, 19584, 19584, 19584, 19584, 18972, 18360, 18054, 17748, 16830, 15912, 14994, 14076, 14076, 14076, 14076, 14076, 13464, 13464, 13464, 12852, 12546, 12546, 13464, 12546, 11628, 11934, 11628, 11322, 11016, 11628, 12240, 11934, 11934, 11934, 12852, 12852, 13464, 13158, 12546, 12240, 11628, 12240, 13158, 13464, 13770, 13464, 13770, 13770, 14688, 15606, 14994, 15300, 14688, 14994, 14994, 14994, 15606, 15300, 15912, 15912, 16218, 16218, 16524, 16524, 16524, 16830, 16830, 15912, 15300, 15606, 15606, 15606, 15606, 14688, 14382, 14688, 13770, 14688, 14688, 14382, 14076, 13158, 13464, 13158, 12546, 13158, 12852, 12546, 12852, 12546, 12240, 11322, 11934, 12240, 11934, 11628, 10710, 10710, 11628, 11934, 12546, 13464, 13464, 13464, 13770, 14076, 14994, 15300, 15912, 16524, 16524, 17136, 17442, 17748, 18360, 18972, 19890, 20196, 20808, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 22338, 21726, 20808, 20502, 20502, 20196, 19278, 18972, 19278, 18666, 18666, 18666, 18666, 18666, 18666, 18360, 18360, 18360, 18054, 17136, 16218, 15300, 14382, 14382, 14382, 13770, 13770, 14076, 13770, 12852, 12546, 13158, 13770, 13464, 14076, 14076, 13770, 13464, 12546, 12240, 12546, 11934, 11322, 11322, 11628, 12240, 13158, 13158, 13158, 12240, 12546, 12546, 12852, 13158, 14076, 14688, 14076, 13770, 13464, 13464, 13464, 13464, 12852, 13770, 13158, 13158, 12852, 13158, 13464, 13464, 13770, 13464, 13770, 13158, 14076, 13770, 13770, 14076, 14076, 13464, 13464, 14076, 14076, 14688, 14688, 14076, 14076, 14994, 14688, 15606, 14994, 14994, 14688, 14688, 15300, 14994, 14994, 15300, 15606, 15300, 15912, 15606, 14994, 14994, 14688, 13770, 14076, 14382, 14382, 14382, 14994, 15300, 15300, 15606, 15606, 16218, 17136, 17748, 17748, 17748, 18054, 18360, 18666, 18972, 19278, 19278, 20196, 20808, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 21114, 20196, 20196, 20196, 19584, 18972, 19890, 19584, 19278, 19278, 19278, 18972, 18666, 18666, 18360, 18360, 18360, 18360, 17442, 16524, 15606, 14994, 14688, 14688, 14688, 15606, 15912, 15300, 14382, 14688, 15300, 15300, 15300, 14994, 14688, 14382, 13770, 13158, 12240, 12240, 11934, 11322, 10404, 11016, 11016, 11628, 11934, 11934, 11628, 11628, 11322, 11628, 11628, 12546, 12852, 12546, 12546, 12240, 12546, 12852, 12240, 12852, 13770, 13770, 13158, 13158, 13770, 14382, 14382, 15300, 14994, 14382, 14688, 14076, 13770, 13770, 13158, 13464, 13464, 12852, 13158, 13158, 13464, 12852, 12546, 13464, 12852, 12852, 13158, 13464, 13770, 13770, 14076, 14382, 14382, 14994, 15300, 15300, 15606, 15912, 15912, 16524, 15912, 14994, 14994, 14994, 14994, 15300, 16218, 16524, 16524, 17442, 17442, 18054, 18666, 18666, 18666, 18666, 18666, 18666, 18666, 19278, 19278, 19890, 19890, 20196, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 21114, 20808, 20808, 20502, 19584, 20502, 20502, 20502, 20502, 20196, 19890, 18972, 18054, 17748, 17442, 17442, 16830, 16830, 16830, 16218, 15606, 15300, 15300, 15300, 15300, 16218, 16524, 16218, 15912, 15912, 14994, 14688, 14688, 13770, 13158, 13158, 14076, 14688, 14382, 13770, 13158, 13464, 13158, 13158, 13158, 13770, 13770, 13770, 13770, 13464, 13464, 13464, 13770, 13770, 14076, 14688, 14382, 13770, 14382, 14994, 14994, 14994, 14994, 15300, 15606, 16218, 16218, 16524, 16218, 16524, 16218, 16218, 15912, 15300, 14994, 14382, 14382, 14382, 14076, 14688, 14688, 14688, 14688, 14076, 14382, 14076, 13770, 13158, 12546, 12546, 12546, 12852, 12852, 13158, 13464, 13770, 13770, 13770, 13770, 14382, 14688, 14688, 13770, 13770, 13770, 14076, 14688, 15300, 16218, 16218, 16830, 17136, 18054, 18972, 19584, 19584, 19584, 19584, 19584, 19584, 19584, 19890, 20196, 20808, 20808, 21114, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22338, 22338, 22032, 22032, 22032, 21420, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 20502, 19584, 18666, 18666, 18666, 17748, 17442, 17748, 17748, 18054, 17748, 17442, 18054, 18360, 18360, 18054, 18054, 17442, 17442, 17442, 17136, 16218, 15912, 14994, 14076, 13770, 14688, 15606, 14688, 13770, 14382, 14382, 13464, 12852, 11934, 11628, 11628, 11322, 11322, 11322, 11628, 11322, 11322, 11016, 10710, 11016, 11934, 11628, 11628, 12546, 12546, 11628, 11628, 12546, 13464, 13158, 13464, 13770, 14076, 14688, 14994, 15300, 14688, 15300, 14382, 14382, 14688, 14994, 14382, 14688, 14688, 14688, 14994, 14994, 14994, 14382, 14994, 14688, 14382, 13464, 14076, 13464, 13158, 13464, 13158, 13464, 13464, 13770, 12852, 12852, 12546, 12240, 12240, 12546, 12546, 12546, 12546, 12240, 13158, 12240, 12546, 12240, 11628, 11016, 11016, 11016, 11934, 12852, 12852, 13464, 13464, 13464, 14076, 14994, 15912, 16218, 16524, 16830, 17442, 17442, 17442, 17442, 18054, 18054, 18972, 19584, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21420, 20808, 19890, 19890, 19278, 18666, 18360, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 18054, 17136, 16218, 15300, 15300, 14688, 13770, 14688, 15300, 15912, 16524, 16524, 17136, 17442, 17136, 16830, 16524, 16524, 15606, 14688, 14688, 14076, 13770, 13464, 12852, 11934, 12240, 13158, 14076, 14076, 14382, 14688, 13770, 13464, 13464, 13158, 12546, 12240, 12240, 12852, 13158, 13158, 12546, 13158, 13464, 13464, 13770, 14076, 13770, 14076, 14382, 14076, 13464, 12546, 12240, 11934, 12240, 12546, 12546, 12546, 13158, 13770, 13770, 13464, 12546, 12546, 12240, 12546, 12546, 12852, 12240, 12240, 11628, 11934, 11628, 12240, 12852, 12852, 13158, 12852, 13464, 13770, 13770, 13464, 12852, 12546, 12546, 12546, 12546, 12546, 12546, 12546, 12240, 11934, 11934, 11934, 12240, 12546, 12852, 12852, 12852, 12852, 12852, 13158, 12852, 12852, 12852, 13464, 14076, 14688, 14994, 14994, 15300, 15912, 16830, 17136, 17748, 18360, 18972, 19278, 19890, 19890, 20196, 20196, 20808, 20808, 21114, 21726, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20808, 19890, 19584, 18972, 18054, 17748, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17136, 16218, 15606, 15606, 15606, 14688, 14382, 15300, 15912, 16830, 17136, 17136, 17136, 17136, 16524, 16524, 16218, 15912, 15912, 15300, 14994, 14382, 13770, 12852, 11934, 11628, 11934, 11628, 11628, 11628, 12240, 12852, 11934, 11016, 10404, 10404, 10710, 11016, 10710, 11322, 11322, 11628, 11322, 11322, 11934, 12240, 12852, 12852, 12852, 13770, 14382, 14688, 14994, 14076, 13770, 13464, 13158, 14076, 14994, 14688, 14382, 14076, 14382, 14994, 15300, 14382, 13770, 14076, 14076, 13770, 13770, 13158, 13770, 13770, 13158, 12852, 12240, 12240, 12852, 13158, 13464, 13770, 13770, 13464, 14382, 14382, 14994, 14994, 14688, 14688, 14994, 14994, 15300, 14994, 14994, 14688, 14994, 14994, 15606, 15606, 15912, 16524, 17136, 16524, 16218, 16524, 16830, 16830, 17136, 17136, 17442, 17442, 17748, 18054, 18054, 18666, 19278, 19278, 19584, 19890, 20196, 20502, 20502, 20808, 21420, 21420, 21726, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 20196, 19584, 18666, 18054, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 16830, 15912, 15912, 15912, 15912, 15300, 15606, 16524, 17136, 16830, 17748, 18054, 17748, 17442, 16830, 16524, 15912, 15606, 15606, 15300, 15300, 15300, 14382, 13464, 12546, 12546, 13158, 13158, 12852, 12852, 13770, 14076, 14076, 14076, 14076, 14076, 14076, 14382, 14076, 14076, 13770, 14076, 14382, 14076, 14382, 13464, 13464, 13770, 13770, 14688, 15300, 14994, 14994, 14994, 14994, 14994, 14688, 14076, 14076, 14994, 14688, 14994, 14382, 14076, 14382, 14688, 14382, 14076, 14382, 14382, 14994, 14688, 14382, 14994, 14994, 14688, 14994, 14688, 14994, 14688, 14382, 14382, 14688, 14688, 14382, 14688, 13770, 14382, 15300, 15606, 15300, 15300, 15606, 15606, 14688, 14688, 14076, 14382, 14382, 14382, 14994, 14994, 14382, 14076, 14382, 14688, 15300, 15606, 15606, 15912, 15912, 16830, 17136, 17136, 17136, 17748, 18360, 18360, 18360, 19278, 19584, 20502, 21114, 21420, 21420, 21420, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20502, 19584, 18666, 18054, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 17442, 16830, 15912, 14994, 14076, 14076, 14076, 13464, 14076, 14688, 15300, 16218, 16524, 17136, 17748, 17136, 17136, 16218, 15606, 15300, 14994, 14688, 13770, 13158, 13158, 12546, 12546, 13464, 13770, 14076, 13158, 12240, 12852, 13158, 13464, 12546, 11628, 11322, 10404, 10098, 10404, 9486, 9486, 9486, 8874, 8874, 9180, 9486, 9180, 9180, 8874, 9486, 8874, 9486, 9180, 9180, 10098, 9792, 9180, 9180, 10098, 10404, 10710, 11016, 11016, 10710, 11628, 12240, 12852, 12852, 13158, 12240, 11934, 11934, 11934, 12546, 12546, 12546, 12546, 12546, 13158, 12240, 11934, 12546, 11934, 11934, 12240, 12852, 13464, 13464, 14076, 14076, 14076, 14076, 14382, 14076, 14688, 14688, 14688, 14076, 13770, 13770, 13770, 13158, 13158, 12852, 13770, 14382, 14382, 14994, 14994, 15300, 15300, 15300, 15606, 15606, 15606, 15912, 15912, 16524, 16830, 17136, 18054, 18972, 19584, 20196, 20196, 20808, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 21114, 20196, 19278, 18972, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18054, 17136, 16218, 15300, 14994, 14994, 14382, 14382, 14994, 15606, 16218, 16830, 17136, 17136, 17136, 16830, 16830, 16524, 16524, 16218, 15606, 15606, 14994, 14382, 13770, 14076, 14994, 15300, 15300, 14994, 14688, 15300, 15606, 15300, 14382, 14382, 13770, 13158, 12852, 11934, 11322, 10404, 9792, 9180, 8568, 9180, 8262, 8874, 9180, 9792, 9486, 9486, 9792, 10710, 11322, 11322, 11322, 11322, 11934, 12852, 12852, 13158, 13464, 14382, 14382, 14994, 15606, 16524, 17136, 17748, 17442, 18360, 18360, 18360, 18054, 17748, 17748, 18054, 18054, 17136, 17442, 16830, 16830, 16524, 16524, 16218, 15912, 15606, 15606, 16524, 16218, 16524, 16524, 16218, 16218, 16218, 15606, 15300, 15300, 15606, 15912, 14994, 14076, 13158, 13464, 13464, 14076, 14076, 14382, 14382, 14994, 15912, 16524, 16524, 16524, 17136, 17136, 17136, 17442, 17748, 18054, 18666, 18972, 19278, 19278, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 19890, 18972, 18666, 18054, 18054, 18054, 17136, 17136, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 15912, 14994, 14076, 13158, 12852, 12852, 12852, 12240, 13158, 13770, 14688, 15300, 14994, 15606, 15606, 15606, 15912, 15912, 15300, 15300, 15300, 14994, 14994, 14994, 14688, 15606, 15912, 16218, 16218, 15606, 14688, 13770, 13770, 12852, 12240, 11628, 11934, 12240, 11934, 11628, 11016, 10710, 9792, 10098, 9792, 9180, 8874, 8568, 7650, 7038, 7038, 7038, 7038, 7344, 8262, 8874, 9486, 10098, 11016, 11934, 12546, 12546, 12546, 12546, 11934, 12546, 13158, 14076, 14688, 14382, 14688, 15300, 14994, 15606, 15912, 15912, 16524, 16830, 16830, 16830, 16830, 16524, 16830, 16524, 16524, 16524, 15912, 16218, 16218, 17136, 16830, 16830, 16830, 16830, 16830, 16830, 16830, 17442, 17442, 17748, 16830, 16524, 15912, 15606, 15606, 15912, 16524, 16524, 16830, 16830, 16830, 17442, 17442, 17748, 17748, 18054, 18360, 18360, 18360, 18972, 19278, 19278, 19278, 19584, 19890, 20808, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 21114, 20196, 19278, 18666, 18360, 18360, 17748, 17442, 17136, 16218, 15912, 15912, 15912, 15606, 15300, 14688, 13770, 12852, 11934, 11628, 11628, 11628, 11628, 11016, 11016, 11322, 11934, 12852, 13464, 13158, 12852, 12852, 12546, 12240, 12546, 12546, 12546, 12240, 12546, 12852, 13158, 13158, 13464, 14382, 14688, 14076, 13464, 12546, 12546, 12852, 13158, 13464, 13464, 13464, 14076, 14382, 14994, 15606, 16218, 16830, 17136, 16830, 16830, 16830, 16218, 15606, 16524, 17136, 16524, 15912, 16218, 16524, 16524, 17442, 18054, 18054, 17748, 16830, 16830, 16524, 16524, 15912, 15912, 15912, 15912, 15912, 16218, 16524, 16524, 16524, 16830, 16524, 15606, 15300, 15606, 15912, 15300, 15606, 15300, 14994, 14994, 15300, 16218, 16218, 15606, 14994, 14994, 14688, 14076, 13158, 12852, 11934, 11628, 11016, 11628, 11628, 11322, 11322, 11322, 10710, 10404, 11322, 11934, 12240, 12546, 12546, 12546, 12546, 12546, 13464, 14076, 14688, 14994, 15606, 16524, 16830, 17748, 18054, 18666, 18666, 19278, 19890, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22338, 21420, 20502, 19584, 18666, 17748, 16830, 16218, 16218, 15912, 15606, 15606, 14688, 13770, 13158, 12852, 11934, 11016, 10098, 9180, 8262, 7344, 7344, 7344, 7650, 7956, 8874, 9486, 9486, 10404, 10710, 11322, 11322, 11016, 11322, 11322, 10710, 11628, 12546, 12852, 12852, 13158, 14076, 14688, 15300, 16218, 17136, 16830, 16524, 16218, 15606, 15300, 14994, 14994, 14994, 15606, 15912, 16524, 16830, 16830, 17136, 17748, 17748, 17748, 18054, 18360, 18972, 18972, 19278, 19278, 18360, 17442, 16830, 16218, 15606, 16218, 16524, 17136, 17748, 16830, 16218, 16218, 15912, 15606, 14688, 14688, 14382, 13464, 13464, 13158, 13158, 12852, 11934, 11016, 11322, 12240, 12546, 13464, 14382, 14382, 13464, 13158, 12546, 12546, 13464, 14076, 13158, 13464, 13158, 14076, 13770, 14076, 14688, 14688, 14688, 13770, 13158, 13770, 14688, 14382, 14382, 14382, 13464, 13158, 14076, 14994, 15300, 15912, 16218, 16218, 16218, 17136, 17136, 17748, 17748, 18054, 18054, 18360, 18360, 18666, 19584, 20502, 20808, 20808, 21114, 21114, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 19890, 19278, 18972, 18054, 17748, 16830, 16524, 16524, 15912, 15606, 15300, 14382, 13464, 12546, 11628, 10710, 9792, 8874, 7956, 7344, 7344, 7344, 7650, 8568, 9486, 9792, 10098, 9486, 9792, 9180, 9792, 10098, 9180, 9792, 9792, 10098, 10404, 10710, 11322, 12240, 13158, 13770, 14076, 14688, 14688, 14382, 14382, 14382, 14382, 13770, 14382, 13770, 14076, 14688, 15606, 15912, 15912, 16830, 16830, 17136, 17136, 17748, 18360, 18666, 18666, 18666, 18972, 19584, 19890, 20502, 20808, 20502, 19584, 18666, 18666, 18054, 18360, 18972, 18054, 17748, 16830, 16524, 15606, 15606, 14688, 13770, 12852, 12240, 11322, 10710, 10404, 10404, 9792, 8874, 8568, 8568, 8262, 8568, 8874, 8568, 8874, 8568, 7650, 7956, 7956, 7956, 7650, 7956, 7956, 8568, 8874, 9792, 10098, 10404, 10404, 9792, 9180, 9180, 9486, 9792, 9180, 8874, 9180, 9792, 10710, 11016, 11934, 12852, 13464, 13770, 14688, 15300, 15912, 15912, 16218, 16830, 16830, 17136, 17748, 18360, 19278, 19890, 20502, 21114, 21114, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20502, 19584, 18666, 17748, 16830, 16524, 15606, 14994, 14688, 13770, 13158, 12240, 11628, 11628, 11322, 11016, 10098, 9792, 9792, 9180, 9180, 9180, 9180, 10098, 11016, 11628, 11934, 12240, 12546, 12546, 12240, 12852, 13464, 13158, 13770, 14076, 14994, 15606, 14994, 14382, 14688, 15606, 15300, 14688, 14994, 14994, 14994, 14994, 14382, 14382, 14382, 14382, 14076, 14076, 14076, 14688, 14994, 14994, 15606, 15912, 16218, 16218, 16218, 16830, 17748, 17748, 17748, 18360, 18972, 19278, 19278, 19278, 19278, 19890, 19890, 19890, 20196, 20502, 20808, 21726, 21726, 21420, 21114, 20808, 19890, 19278, 18972, 18666, 18360, 17748, 16830, 16830, 15912, 15912, 15912, 15606, 15606, 15300, 14994, 14994, 14688, 14688, 15300, 15606, 14688, 13770, 13158, 12852, 12852, 12852, 12852, 13158, 13158, 13464, 14076, 14994, 14994, 15912, 15300, 15300, 15606, 14688, 14382, 14382, 14382, 14688, 14994, 14994, 14994, 15912, 16830, 17748, 18360, 18666, 19584, 20196, 20196, 20502, 20502, 20502, 20502, 20502, 20502, 21114, 21114, 21114, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 20196, 20196, 20196, 19278, 18972, 18054, 17748, 16830, 15912, 14994, 14076, 14076, 14076, 14076, 14076, 14076, 14076, 14076, 14076, 14076, 13464, 13464, 14382, 15300, 15912, 14994, 14076, 13464, 14076, 13464, 13464, 13464, 14076, 14994, 15606, 16218, 16218, 16218, 16218, 15912, 15912, 14994, 14994, 14382, 13770, 14076, 13770, 12852, 12546, 12852, 13770, 14076, 13770, 13770, 14688, 15606, 15912, 16218, 16218, 16524, 16830, 16830, 16830, 16830, 17136, 17136, 18054, 18054, 18666, 19278, 19584, 19890, 20808, 21114, 21114, 21114, 21726, 22644, 22950, 22338, 21420, 20502, 20196, 19890, 19584, 19278, 18360, 17748, 17442, 17136, 16830, 16830, 16524, 15912, 15912, 15912, 14994, 14076, 13464, 13158, 13158, 12852, 12852, 12852, 12852, 13464, 14382, 14382, 14076, 14076, 14382, 15300, 15912, 15912, 15912, 15912, 15300, 14994, 14688, 13770, 13158, 13770, 14688, 15300, 15606, 15606, 15912, 15912, 15912, 16524, 16830, 16830, 17136, 17748, 18054, 18054, 18054, 18054, 18360, 18666, 18972, 19584, 20196, 21114, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21420, 20808, 20808, 20808, 20502, 20502, 19890, 18972, 18054, 17748, 17136, 16218, 16218, 16218, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 15300, 15300, 14688, 15606, 15912, 16218, 15300, 14382, 14076, 13464, 13158, 14076, 14994, 15300, 15912, 16218, 15606, 15300, 14994, 14994, 14688, 14076, 13158, 12852, 12546, 13158, 12852, 12546, 11934, 11628, 11322, 11628, 11628, 11322, 11934, 12852, 12852, 12852, 12852, 12852, 13464, 14076, 14382, 14994, 14994, 15300, 15912, 16830, 17136, 17442, 17442, 17748, 18666, 19278, 19890, 20502, 21114, 22032, 22950, 22950, 22950, 22644, 22032, 21114, 20196, 19278, 18666, 18054, 17442, 16524, 15912, 15912, 15912, 15912, 15912, 15912, 15300, 14994, 14688, 14382, 13770, 13158, 13158, 13158, 12852, 12240, 12240, 11934, 11934, 12240, 12852, 13464, 14076, 14688, 15606, 15912, 15300, 14382, 13464, 12546, 12240, 12852, 13158, 13464, 13770, 14382, 14994, 14994, 14994, 15300, 15912, 16218, 17136, 18054, 18666, 18972, 18972, 18972, 18972, 18972, 19278, 19890, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21726, 21726, 21726, 21726, 21726, 21726, 21114, 20502, 19584, 18666, 18054, 18054, 18054, 18054, 18054, 17748, 17442, 16524, 16218, 15606, 15300, 14994, 14382, 14076, 14076, 14382, 13770, 13158, 12852, 12546, 11628, 11322, 11628, 11934, 12852, 12546, 11934, 11934, 11322, 10710, 10710, 10710, 11322, 11322, 11628, 11628, 11628, 12240, 12240, 12240, 11628, 11322, 11016, 10404, 9792, 10710, 11628, 11934, 12546, 12546, 13464, 14076, 14076, 14688, 15300, 15606, 15912, 16218, 16524, 16830, 17136, 17442, 17442, 17748, 18666, 19278, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22644, 22338, 21726, 21114, 20502, 20502, 20502, 20196, 19278, 18360, 17442, 16524, 15606, 15606, 15606, 15606, 15300, 14994, 14994, 14994, 14688, 14382, 14076, 14076, 14382, 14382, 14688, 15300, 15606, 15300, 14382, 13464, 13158, 13770, 14688, 15606, 16524, 17442, 17442, 17442, 17442, 17748, 18054, 18054, 18054, 18360, 18666, 18972, 18972, 18972, 18972, 18972, 18972, 19278, 20196, 21114, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 21114, 21114, 21114, 20502, 20196, 19278, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 18360, 17748, 17748, 16830, 16218, 15606, 14994, 15606, 15912, 15912, 15606, 14688, 13770, 13770, 13770, 14076, 14382, 13464, 12546, 12546, 11628, 11628, 11628, 11016, 11016, 10710, 11322, 11016, 11016, 11016, 11016, 11322, 11322, 11016, 10098, 9486, 9486, 9792, 10404, 10710, 11322, 11934, 12852, 13770, 13770, 14688, 14688, 14688, 15300, 15300, 15606, 15606, 15912, 16830, 17442, 18054, 18360, 18666, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21726, 21114, 20196, 19584, 19278, 18666, 18054, 17136, 16524, 15606, 14688, 14076, 13464, 12546, 12240, 11628, 10710, 9792, 8874, 8262, 7956, 7956, 7344, 6426, 6120, 6120, 6732, 7344, 7956, 8262, 8874, 9486, 10404, 11016, 11934, 12852, 13464, 14076, 14994, 15300, 15912, 16830, 17748, 18666, 19278, 19584, 19584, 20196, 21114, 22032, 22644, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20808, 20808, 20808, 20808, 20502, 19890, 19278, 19278, 19278, 19278, 19278, 18972, 18054, 18054, 18054, 18054, 17748, 17748, 17442, 17442, 17136, 16218, 15912, 15912, 16830, 16830, 15912, 15300, 14382, 14076, 13770, 13464, 13158, 12240, 12240, 11628, 11934, 12546, 12546, 11628, 10710, 10710, 10710, 11016, 11016, 10710, 11628, 11628, 11628, 11322, 11016, 11322, 11322, 12240, 12852, 13770, 14688, 14994, 15912, 15912, 16524, 16524, 16830, 16830, 17748, 18666, 18972, 18972, 18972, 18972, 19584, 19584, 19890, 20502, 20808, 21726, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 19584, 19278, 18972, 18054, 17136, 16524, 15912, 15606, 14994, 14382, 13770, 13770, 13770, 13770, 13770, 13158, 12240, 11322, 11016, 11016, 11016, 11016, 11628, 12546, 13464, 14382, 14688, 14994, 15912, 16830, 17442, 18054, 18360, 18972, 19584, 20196, 20196, 20196, 20196, 20196, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20808, 20502, 20196, 19278, 19278, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18972, 18666, 18666, 18666, 18666, 18666, 18666, 18360, 18360, 18360, 18666, 18666, 18054, 17748, 17748, 16830, 16830, 15912, 15606, 14994, 14688, 14688, 14076, 14076, 14076, 13770, 13770, 13464, 12852, 12240, 12240, 12240, 12240, 11628, 11322, 11016, 10710, 11628, 12240, 13158, 14076, 14382, 15300, 15606, 16218, 16524, 16524, 17136, 17136, 17136, 17442, 17748, 18054, 18666, 19278, 19278, 19278, 19584, 20196, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22032, 21114, 20196, 19278, 18360, 17442, 16524, 15606, 14688, 14076, 13770, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13464, 13770, 14382, 15300, 16218, 17136, 18054, 18972, 19890, 20808, 21726, 22338, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20808, 20196, 20196, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 19278, 18972, 18666, 18666, 18666, 18666, 18054, 17748, 17748, 16830, 16524, 15912, 15606, 15912, 16218, 15912, 15912, 15300, 15300, 14382, 14076, 14076, 13770, 13770, 12852, 12546, 12546, 12240, 11934, 11628, 10710, 10710, 10098, 9792, 10098, 9792, 9792, 9180, 9180, 9792, 10404, 11016, 11628, 12546, 13464, 13770, 13770, 14076, 14076, 14994, 15300, 15606, 16218, 16524, 16830, 17748, 18360, 19278, 19584, 20196, 20808, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20808, 19890, 19890, 19584, 19584, 18972, 18972, 18054, 17136, 16218, 16218, 15912, 15300, 15300, 15300, 14382, 13464, 12852, 12852, 12852, 12852, 12546, 12240, 12546, 13158, 12852, 13464, 12546, 12240, 11934, 11934, 11322, 11322, 11628, 12546, 11934, 12240, 12546, 12240, 11934, 12852, 12852, 13464, 12546, 11934, 11628, 11322, 11322, 11934, 12240, 12852, 13158, 14076, 14688, 14994, 15606, 16218, 17136, 17748, 17748, 18360, 18360, 18666, 18972, 19278, 19278, 20196, 20196, 21114, 21726, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 19584, 19584, 19584, 19584, 18666, 17748, 16830, 15912, 14994, 14076, 14076, 14076, 14076, 13464, 12546, 12546, 12546, 12546, 12546, 12546, 11934, 11628, 11322, 11322, 11934, 12240, 11322, 10404, 10404, 11322, 11628, 11934, 12852, 13770, 14688, 14688, 14076, 13770, 14382, 14994, 14688, 13770, 13770, 13770, 12852, 12852, 13158, 14076, 14994, 15300, 15912, 16830, 17748, 17748, 17748, 18360, 18972, 18972, 18972, 18972, 18972, 19584, 19890, 19890, 20196, 20502, 21420, 21420, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 20196, 19584, 19278, 19278, 18666, 17748, 16830, 15912, 14994, 14382, 14382, 14382, 13770, 13158, 12852, 12546, 12546, 11934, 11322, 11322, 11016, 10710, 10710, 11628, 11628, 11322, 11016, 10710, 10098, 10710, 11322, 11934, 12546, 13158, 12852, 12852, 12240, 11934, 11934, 11322, 11016, 10098, 9792, 9792, 9792, 10098, 10404, 11322, 11322, 12240, 12546, 13464, 14076, 14688, 14688, 14994, 15300, 15606, 15912, 16830, 16830, 17442, 18360, 18972, 19890, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 20196, 19890, 19278, 19278, 19278, 18666, 17748, 16830, 16218, 15606, 14994, 14994, 14688, 14382, 13770, 13464, 13464, 13464, 13464, 13158, 13158, 13158, 12546, 13464, 14076, 14076, 13464, 13464, 12852, 12852, 12546, 13158, 13158, 12852, 13158, 13770, 13158, 12852, 12852, 12546, 11934, 11016, 10404, 10404, 10710, 10710, 10710, 11628, 11628, 11934, 12546, 13464, 14076, 14688, 14688, 15606, 15912, 16830, 17748, 18054, 18054, 18666, 19278, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19278, 18972, 18360, 18360, 18360, 18360, 18054, 17748, 17442, 17442, 17442, 16524, 15606, 14688, 14688, 14688, 14688, 14688, 13770, 13158, 12240, 11322, 11934, 12546, 13158, 13770, 13464, 13770, 13158, 12546, 12240, 11628, 11322, 11016, 10404, 9792, 10710, 11016, 11322, 10710, 9792, 9486, 9486, 10404, 11016, 11934, 12852, 13158, 13464, 13770, 14076, 14688, 14994, 15606, 16218, 16524, 17442, 18054, 18666, 19278, 19890, 19890, 20502, 21114, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 19890, 19584, 19278, 18972, 18666, 17748, 17748, 17442, 17442, 17136, 16830, 16218, 15300, 14994, 14382, 14382, 14382, 14382, 14076, 13158, 12240, 11322, 10710, 11322, 12240, 12852, 12546, 11934, 12240, 11628, 12240, 11628, 11628, 11016, 10404, 10710, 10710, 11628, 11628, 11322, 11016, 11016, 11016, 11322, 12240, 13158, 14076, 14994, 15300, 15300, 15606, 16218, 17136, 17136, 18054, 18360, 18972, 19278, 19890, 20808, 20808, 21420, 21420, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 20808, 20196, 20196, 19584, 18972, 18360, 18054, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136, 16830, 16830, 15912, 14994, 14076, 14382, 14382, 15300, 14688, 14994, 14688, 14382, 14994, 14994, 14688, 14994, 14688, 13770, 13464, 12546, 11628, 11016, 11016, 11016, 11016, 11322, 11322, 12240, 13158, 14076, 14076, 14994, 14994, 15606, 15912, 16218, 17136, 17136, 17748, 18360, 18972, 19278, 20196, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 20196, 19584, 18972, 18666, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 17748, 16830, 16524, 16524, 15606, 14688, 14382, 13464, 14076, 14994, 15606, 15300, 15606, 16218, 16218, 16830, 16218, 15606, 14688, 14076, 13158, 12240, 11934, 11934, 11934, 11934, 12852, 13158, 13158, 14076, 14994, 15300, 16218, 16218, 16218, 16524, 17136, 17442, 17442, 17748, 18054, 18666, 19278, 20196, 20808, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 21726, 20808, 19890, 18972, 18666, 17748, 17136, 16524, 15912, 15300, 15300, 14688, 14382, 14382, 13464, 12546, 11628, 11322, 11322, 10404, 9486, 8568, 8262, 7650, 7956, 8874, 9792, 10098, 10710, 10098, 10404, 10098, 9792, 9792, 9486, 8568, 9180, 9486, 9486, 10404, 11322, 12240, 12546, 12546, 13464, 14382, 15300, 15606, 16218, 16218, 16218, 16218, 16830, 17136, 18054, 18666, 19584, 20502, 21114, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22338, 21420, 20502, 19584, 19584, 19584, 19584, 19278, 18360, 17748, 17748, 16830, 15912, 14994, 14076, 13158, 13158, 12546, 11628, 10710, 9792, 9486, 9180, 9180, 9180, 9486, 9792, 10098, 10404, 9486, 8874, 8262, 7650, 8262, 8874, 8874, 9792, 10710, 11628, 12546, 13464, 13464, 14076, 14994, 15912, 16830, 17136, 17442, 17442, 17442, 17748, 18360, 18972, 19584, 20502, 21114, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19278, 18360, 18360, 17442, 16524, 16524, 15912, 14994, 14076, 13158, 12546, 12546, 11628, 10710, 9792, 9792, 9180, 8874, 8262, 7650, 6732, 6120, 6120, 6426, 6426, 6426, 6426, 5814, 6732, 7650, 7650, 8262, 9180, 10098, 11016, 11628, 11628, 12546, 13464, 14382, 14382, 14994, 15300, 15912, 16524, 17442, 18054, 18972, 19584, 20502, 21420, 22338, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19890, 19890, 18972, 18054, 18054, 17136, 16218, 15300, 15300, 14688, 13770, 12852, 12852, 12240, 11628, 10710, 10404, 10098, 9792, 9180, 8568, 7650, 7956, 8568, 9486, 9792, 9792, 10710, 11628, 11628, 12546, 13464, 14382, 14382, 14994, 15912, 16830, 16830, 17442, 18054, 18972, 19278, 19584, 19890, 20502, 21114, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 20808, 19890, 19890, 19890, 18972, 18972, 18972, 18054, 17136, 16830, 16218, 16218, 15912, 15300, 14994, 14688, 14688, 14688, 14382, 13464, 13158, 13158, 14076, 14994, 14994, 15300, 16218, 16218, 16218, 17136, 17136, 17136, 18054, 18972, 19278, 19890, 19890, 20196, 20808, 21114, 21420, 21420, 21420, 21726, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22644, 22644, 22032, 21114, 21114, 21114, 21114, 20808, 19890, 18972, 18360, 18054, 17748, 17748, 17442, 16830, 16830, 15912, 14994, 14688, 14382, 14382, 14382, 14382, 14382, 14688, 14688, 15300, 16218, 16218, 16218, 16218, 16524, 17442, 18360, 18972, 19278, 19584, 19584, 19890, 20502, 20502, 21420, 22338, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 21114, 21114, 20196, 19278, 18360, 17442, 17136, 16830, 16524, 15606, 14688, 14076, 13464, 13158, 13158, 13158, 13158, 13158, 13158, 13158, 13158, 13158, 13158, 14076, 14994, 14994, 14994, 15912, 16830, 17748, 18666, 18972, 19278, 19584, 20502, 21420, 22032, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 21114, 20196, 19584, 19278, 18666, 18054, 17442, 16830, 16524, 16218, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 15912, 16830, 17748, 18666, 19278, 19584, 20196, 20808, 21420, 22032, 22338, 22644, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22032, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}, {22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950, 22950}};\)\)], "Input", CellSize->{Inherited, 98.5}], Cell[BoxData[ \(Dimensions[photo]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "The size is 128 x 256; the matrix ", StyleBox["photo", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " is a list of 128 sublists, each of which contains 256 integers \ representing brightness (larger = whiter). The array is large; you do ", StyleBox["not", FontSlant->"Italic"], " want to write it out. Be very careful to use semicolons (", StyleBox[";", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ") at the end of your expressions." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["Well I'm sure you're dying to see what it looks like:", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(ListDensityPlot[photo, Mesh \[Rule] False, AspectRatio \[Rule] Automatic, PlotRange \[Rule] All]\)], "Input", AspectRatioFixed->True], Cell["\<\ (You might want to make it larger by dragging on a corner \ handle.)\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ The photograph is actually of a weasel, but our photographer's \ hands weren't steady, and each pixel got blurred horizontally (but not \ vertically) to become a line 25 pixels long. That's equivalent to a \ convolution with the following function:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(blurfun[x_] := If[\(-12\) \[LessEqual] x \[LessEqual] 12, 1/25, 0.0]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(Plot[blurfun[x], {x, \(-40\), 40}]\)], "Input", AspectRatioFixed->True], Cell["\<\ Your job is to deblurr the picture using the FFT. You'll need \ to:\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["1. Fourier transform the photo.", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ 2. Construct another 2D array, 128 x 256, with the appropriate \ blurring function. Remember that negative values go at the top end of the \ range. Also you need to think about what happens in the y direction; are all \ the matrix' rows the same, or is one of them special? Figuring this out, and \ actually constructing the matrix, are the hardest parts. I suggest trying a \ small scale example first.\ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["3. Fourier transform the matrix from 2.", "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ 4. Divide one transform by the other, and do the inverse transform.\ \ \>", "Text", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[{ "5. Draw the picture (using ", StyleBox["ListDensityPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " just as above). You might have to use ", StyleBox["Re[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " or ", StyleBox["Chop[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " to get rid of small imaginary parts." }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell["\<\ Final reminder: don't forget your semicolons, and save often.\ \>", \ "Text", Evaluatable->False, AspectRatioFixed->True] }, Closed]] }, Closed]] }, Open ]] }, FrontEndVersion->"4.2 for X", ScreenRectangle->{{0, 1280}, {0, 1024}}, WindowToolbars->{}, CellGrouping->Automatic, WindowSize->{535, 602}, WindowMargins->{{23, Automatic}, {Automatic, 68}}, PrivateNotebookOptions->{"ColorPalette"->{RGBColor, 128}}, ShowCellLabel->True, RenderingOptions->{"ObjectDithering"->True, "RasterDithering"->False}, StyleDefinitions -> Notebook[{ Cell[CellGroupData[{ Cell["Style Definitions", "Subtitle"], Cell["\<\ Modify the definitions below to change the default appearance of \ all cells in a given style. Make modifications to any definition using \ commands in the Format menu.\ \>", "Text"], Cell[CellGroupData[{ Cell["Style Environment Names", "Section"], Cell[StyleData[All, "Working"], PageWidth->WindowWidth, CellLabelMargins->{{12, Inherited}, {Inherited, Inherited}},