Patents

Search tools Text Classification Chemistry Measure Numbers Full documents Title Abstract Claims All Any Exact Not Add AND condition These CPCs and their children These exact CPCs Add AND condition
Exact Exact Batch Similar Substructure Substructure (SMARTS) Full documents Claims only Add AND condition
Add AND condition
Application Numbers Publication Numbers Either Add AND condition

Construction of LDPC (low density parity check) codes using GRS (generalized reed-solomon) code

Abstract

Construction of LDPC (Low Density Parity Check) codes using GRS (Generalized Reed-Solomon) code. A novel approach is presented by which a GRS code may be employed to generate a wide variety of types of LDPC codes. Such GRS based LDPC codes may be employed within various types of transceiver devices implemented within communication systems. This approach may be employed to generate GRS based LDPC codes particular designed for various application arenas. As one example, such a GRS based LDPC code may be specifically designed for use in communication systems that operate in accordance with any standards and/or recommended practices of the IEEE P802.3an (10GBASE-T) Task Force.

Landscapes

Show more

CN1933336A

China

Other languages
Chinese
Inventor
凯利·布赖恩·卡梅伦
豪·西恩·特
巴中·申
斯科特·理查德·鲍威尔
Current Assignee
Avago Technologies International Sales Pte Ltd

Worldwide applications
2006 CN TW CN

Application CN 200610002598 events
2010-09-08
Application granted
Expired - Fee Related
Anticipated expiration

Description

Use the GRS sign indicating number to make up the method and apparatus of LDPC sign indicating number
Technical field
The present invention relates to communication system, more specifically, the present invention relates to can be used for generating in the communication system generation of the coding of code signal.
Background technology
Data communication system sustainable development for many years, in recent years, the communication system that adopt to repeat error correcting code is the focus that researchers pay close attention to.Wherein of greatest concern is the communication system that adopts low-density checksum (Low DensityParity Check is called for short LDPC) sign indicating number.Under same state of signal-to-noise, the error rate of the communication system of repeated encoding is usually less than the selective coding.
One of this field continues and main developing direction is that signal to noise ratio essential in reducing communication system is to reach the specific error rate.Desirable target is the mountain farming limit (Shannon ' slimit) of attempting in the research communication channel, and mountain farming limit can be regarded as the data transmission rate that is used in the channel with specific signal to noise ratio, can realize not having the error code transmission by this channel.In other words, farming limit in mountain is the theoretical limit of the channel capacity of given modulation and encoding rate.
The extraordinary decoding performance that can provide in some cases near mountain farming limit has been provided the LDPC sign indicating number.In theory, the LDPC sign indicating number is proved the performance that can reach from 0.004 decibel of mountain farming limit.Length is that 1,000,000 abnormal LDPC code once reached this performance, and it has confirmed that it is very likely using the LDPC sign indicating number in communication system.
The use of ldpc coded signal can be applicable to many new fields.For example, IEEE P802.3an (10GBASE-T) seminar relates to the application of important ldpc coded signal.This IEEE P802.3an (10GBASE-T) seminar is set up by IEEE, is used to develop the copper cash 10 Gigabit Ethernet standards of transmitting data with standardization according to IEEE 802.3CSMA/CD Ethernet protocol by twisted-pair feeder.Carrier Sense Multiple Access/collision detection (CSMA/CD) is the agreement of carrier transmission visit in the Ethernet.IEEE802.3an (10GBASE-T) is a new standard by the 10Gbps Ethernet of 4 line twisted-pair feeders transmission data.More the public information about IEEE P802.3an (10GBASE-T) seminar can find in the website below:
“http://www.ieee802.org/3/an”
The High Data Rate that provides in this application is quite near the possible theoretical maximum transfer rate on 100 meters the poorest cables.Realize that the 10Gbps transmission needs approaching capacity to reach error correction coding.With the potential constraint that the legacy link sign indicating number produces, got rid of its use in this application.
Obviously, need some optional type of codings and modulation technique so that approaching capacity to be provided, reach the demand of error correction, the LDPC sign indicating number just can provide such performance.
The best way that does not have now to follow is set up well behaved LDPC sign indicating number, in the reference below [a], has set up regular LDPC sign indicating number based on two coded words of Read-Solomon (Reed-Solomon is called for short RS) sign indicating number.
[a]I.Djurdjevic,J.Xu,K.Abdel-Ghaffar?and?S.Lin,“A?Class?ofLow-Density?Parity-Check?Codes?Constructed?Based?on?Reed-Solomon?CodesWith?Two?Information?Symbols,”IEEE?Communications?Letter,vol.7,no.7,pp.317-319,July?2003.
Yet the LDPC code type that uses this prior art to propose is very narrow, and makes the flexibility of the LDPC sign indicating number that designs other types in this way very little.Lacking flexibility all is a significant challenge for the communication equipment that designs this LDPC sign indicating number and/or use this LDPC sign indicating number to realize.Clearly, under different state of signal-to-noise, be used for various communication systems and continue with the coding techniques demand of better type that the better error correction average and the error rate are provided.
Summary of the invention
A kind of equipment and the method for providing is provided in the present invention, and below in conjunction with the drawings and specific embodiments it is being elaborated.By below in conjunction with the accompanying drawing detailed description of the present invention, other features and advantages of the present invention are apparent.
According to an aspect of the present invention, provide the general Read-Solomon of a kind of use (GeneralizedReed-Solomon is called for short GRS) sign indicating number to make up the method for LDPC sign indicating number, described method comprises:
Select a group address, comprising:
A plurality of elements, wherein each element can be generated by a primitive element in the Galois Field (Galois field) that is raised to equivalency index time power, and wherein said Galois Field comprises limited predetermined element;
First degree is 1 polynomial function, is used for each element map of described group of addresses is arrived corresponding nonzero value;
Second degree is 1 polynomial function, is the non-linear scalar multiple of 1 polynomial function for described first degree;
From described Galois Field, select a plurality of nonzero elements;
The first coded word vector of identification GRS sign indicating number from a plurality of possible coded word vector value, the wherein said first coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described first degree;
The second coded word vector of the described GRS sign indicating number of identification from described a plurality of possible coded word vector value, the wherein said second coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described second degree;
Described first coded word vector and each scale factor in more than first scale factor are multiplied each other, thereby generate a plurality of adjustment first coded word vector afterwards;
Described second coded word vector and each scale factor in more than second scale factor are multiplied each other, thereby generate a plurality of adjustment second coded word vector afterwards;
With described each adjust back first coded word vector with described each adjust back second coded word addition of vectors to generate a plurality of cosets (coset);
Generate a plurality of permutation matrixes, wherein each described permutation matrix comprises a plurality of row, and every row includes the map addresses of a coset in described a plurality of coset;
Each permutation matrix in described a plurality of permutation matrixes is arranged as submatrix, thereby generates the LDPC parity matrix of corresponding described LDPC sign indicating number.
Preferably:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described a plurality of coset comprises 2 sIndividual coset;
Each permutation matrix is 2 in described a plurality of permutation matrix s* 2 sPermutation matrix.
Preferably:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer; And
ρ is less than or equal to 2 s
Preferably:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
The degree of the position node of described LDPC parity matrix is γ, and the degree of check-node is ρ;
The weight of every row of described LDPC parity matrix is γ;
The weight of every row of described LDPC parity matrix is ρ;
And ρ is less than or equal to 2 s
Preferably:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described LDPC parity matrix is 384 * 2048 matrix;
Described LDPC sign indicating number is (2048,1723) regular LDPC sign indicating number, and its encoding rate is near 0.8413;
And the minimum intersymbol certificate of described LDPC sign indicating number is more than or equal to 8.
Preferably:
Limited predetermined element in the described Galois Field comprises 2 sIndividual element, wherein s is an integer;
Described more than first scale factor comprises 2 sIndividual scale factor;
Described more than second scale factor comprises 2 sIndividual scale factor.
Preferably:
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
A plurality of elements in the described group of addresses comprise ρ element;
Described a plurality of nonzero element comprises ρ element.
Preferably:
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
When γ was integer, the minimum intersymbol distance of described LDPC sign indicating number was more than or equal to γ+2;
When γ was integer, the minimum intersymbol distance of described LDPC sign indicating number was more than or equal to γ+1.
Preferably:
Described more than first scale factor is described more than second scale factor.
Preferably:
Described LDPC sign indicating number is used for generating the ldpc coded signal of following IEEE P802.3an (10GBASE-T) seminar proposed standard.
Preferably:
The LDPC parity matrix of corresponding described LDPC sign indicating number is 384 * 2048 LDPC parity check matrix H b, shown in appendix B.
According to an aspect of the present invention, provide a kind of GRS of utilization sign indicating number to make up the method for LDPC sign indicating number, described method comprises:
The first coded word vector of identification GRS sign indicating number from a plurality of possible coded word vector value;
The second coded word vector of the described GRS sign indicating number of identification from a plurality of possible coded word vector value;
Described first coded word vector and each scale factor in more than first scale factor are multiplied each other, thereby generate a plurality of adjustment first coded word vector afterwards;
Described second coded word vector and each scale factor in more than second scale factor are multiplied each other, thereby generate a plurality of adjustment second coded word vector afterwards;
With described each adjust back first coded word vector with described each adjust back second coded word addition of vectors to generate a plurality of cosets;
Generate a plurality of permutation matrixes, wherein each described permutation matrix comprises a plurality of row, and every row includes the map addresses of a coset in described a plurality of coset;
Each permutation matrix in described a plurality of permutation matrixes is arranged as submatrix, thereby generates the LDPC parity matrix of corresponding described LDPC sign indicating number.
Preferably, described method further comprises:
Select a group address, comprising:
A plurality of elements, wherein each element can be generated by a primitive element in the Galois Field that is raised to equivalency index time power, and wherein said Galois Field comprises limited predetermined element;
First degree is 1 polynomial function, is used for each element map of described group of addresses is arrived corresponding nonzero value;
Second degree is 1 polynomial function, is the non-linear scalar multiple of 1 polynomial function for described first degree;
From described Galois Field, select a plurality of nonzero elements; The wherein said first coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described first degree;
The described second coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described second degree.
Preferably:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described a plurality of coset comprises 2 sIndividual coset;
Each permutation matrix is 2 in described a plurality of permutation matrix s* 2 sPermutation matrix;
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
The degree of the position node of described LDPC parity matrix is γ, and the degree of check-node is ρ;
The weight of every row of described LDPC parity matrix is γ;
The weight of every row of described LDPC parity matrix is ρ;
And ρ is less than or equal to 2 s
Preferably:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described LDPC parity matrix is 384 * 2048 matrix;
Described LDPC sign indicating number is (2048,1723) regular LDPC sign indicating number, and its encoding rate is near 0.8413;
And the minimum intersymbol certificate of described LDPC sign indicating number is more than or equal to 8.
Preferably:
Limited predetermined element in the described Galois Field comprises 2 sIndividual element, wherein s is an integer;
Described more than first scale factor comprises 2 sIndividual scale factor;
Described more than second scale factor comprises 2 sIndividual scale factor.
Preferably:
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
A plurality of elements in the described group of addresses comprise ρ element;
Described a plurality of nonzero element comprises ρ element.
Preferably:
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
When γ was integer, the minimum intersymbol distance of described LDPC sign indicating number was more than or equal to γ+2;
When γ was integer, the minimum intersymbol distance of described LDPC sign indicating number was more than or equal to γ+1.
Preferably:
Described LDPC sign indicating number is used for generating the ldpc coded signal of following IEEE P802.3an (10GBASE-T) seminar proposed standard.
Preferably:
The LDPC parity matrix of corresponding described LDPC sign indicating number is 384 * 2048 LDPC parity check matrix H b, shown in appendix B.
According to an aspect of the present invention, provide a kind of GRS of utilization sign indicating number to make up the device of LDPC sign indicating number, described device comprises:
Coded word vector identification module is used for:
The first coded word vector of identification GRS sign indicating number from a plurality of possible coded word vector value;
The second coded word vector of the described GRS sign indicating number of identification from a plurality of possible coded word vector value;
The coset generation module is used for:
Described first coded word vector and each scale factor in more than first scale factor are multiplied each other, to generate a plurality of adjustment first coded word vector afterwards;
Described second coded word vector and each scale factor in more than second scale factor are multiplied each other, to generate a plurality of adjustment second coded word vector afterwards;
With described each adjust back first coded word vector with described each adjust back second coded word addition of vectors to generate a plurality of cosets;
Generate a plurality of permutation matrixes, wherein each described permutation matrix comprises a plurality of row, and every row includes the map addresses of a coset in described a plurality of coset;
Each permutation matrix in described a plurality of permutation matrixes is arranged as submatrix, thereby generates the LDPC parity matrix of corresponding described LDPC sign indicating number.
Preferably, described device further comprises:
Group of addresses is selected module, comprising:
A plurality of elements, wherein each element can be generated by a primitive element in the Galois Field that is raised to equivalency index time power, and wherein said Galois Field comprises limited predetermined element;
First degree is 1 polynomial function, is used for each element map of described group of addresses is arrived corresponding nonzero value;
Second degree is 1 polynomial function, is the non-linear scalar multiple of 1 polynomial function for described first degree;
Nonzero element is selected module, is used for selecting a plurality of nonzero elements from described Galois Field;
The described first coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described first degree;
The described second coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described second degree.
Preferably:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described a plurality of coset comprises 2 sIndividual coset;
Each permutation matrix is 2 in described a plurality of permutation matrix s* 2 sPermutation matrix;
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
The degree of the position node of described LDPC parity matrix is γ, and the degree of check-node is ρ;
The weight of every row of described LDPC parity matrix is γ;
The weight of every row of described LDPC parity matrix is ρ;
And ρ is less than or equal to 2 s
Preferably:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described LDPC parity matrix is 384 * 2048 matrix;
Described LDPC sign indicating number is (2048,1723) regular LDPC sign indicating number, and its encoding rate is near 0.8413;
And the minimum intersymbol certificate of described LDPC sign indicating number is more than or equal to 8.
Preferably:
Limited predetermined element in the described Galois Field comprises 2 sIndividual element, wherein s is an integer;
Described more than first scale factor comprises 2 sIndividual scale factor;
Described more than second scale factor comprises 2 sIndividual scale factor.
Preferably:
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
A plurality of elements in the described group of addresses comprise ρ element;
Described a plurality of nonzero element comprises ρ element.
Preferably:
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
When γ was integer, the minimum intersymbol distance of described LDPC sign indicating number was more than or equal to γ+2;
When γ was integer, the minimum intersymbol distance of described LDPC sign indicating number was more than or equal to γ+1.
Preferably:
Described device and LDPC encoder communicate to connect;
Described LDPC encoder uses the LDPC sign indicating number that is made up by described device that at least one information bit is encoded, thereby generates the ldpc coded signal of following IEEE P802.3an (10GBASE-T) seminar proposed standard.
Preferably:
The LDPC parity matrix of corresponding described LDPC sign indicating number is 384 * 2048 LDPC parity check matrix H b, shown in appendix B.
Description of drawings
The invention will be further described below in conjunction with drawings and Examples, in the accompanying drawing:
Fig. 1 is the schematic diagram according to an embodiment of the communication system of foundation of the present invention;
Fig. 2 is the schematic diagram according to an embodiment of the communication system of foundation of the present invention;
Fig. 3 is the schematic diagram of an embodiment of LDPC sign indicating number two-dimensional plot;
Fig. 4 is the schematic diagram of an embodiment of transmission processing method of the ldpc coded signal that generates especially for the LDPC sign indicating number of 10GBASE-T of selection used according to the invention;
Fig. 5 is the schematic diagram of an embodiment of receiving handling method of the ldpc coded signal that generates especially for the LDPC sign indicating number of 10GBASE-T of selection used according to the invention;
Fig. 6 is the schematic diagram of an embodiment of the GRS sign indicating number used according to the invention method that makes up the LDPC sign indicating number;
Fig. 7 is the schematic diagram of an embodiment of the GRS sign indicating number used according to the invention device that makes up the LDPC sign indicating number;
Fig. 8 is the schematic diagram of another embodiment of the GRS sign indicating number used according to the invention device that makes up the LDPC sign indicating number.
Embodiment
The target of digital communication system is that numerical data is transferred to another place or subsystem from the three unities or subsystem inerrancy or with acceptable low error rate.As shown in Figure 1, data can be transmitted with various channels in plurality of communication systems: magnetic media, wireless network, optical fiber, copper cash and other media.
The communication system 100 of foundation and 200 the schematic diagram of being respectively illustrated in figures 1 and 2 according to the present invention.Referring to Fig. 1, communication system 100 comprises channel 199, and the communication equipment 110 (comprising reflector 112 with encoder 114 and the receiver 116 with decoder 118) that will be positioned at communication channel 199 1 ends is connected with the communication equipment 120 that is positioned at communication channel 199 other ends (comprising reflector 126 with encoder 128 and the receiver 122 with decoder 124).In certain embodiments, communication equipment 110 and 120 all may include only a reflector or a receiver.The media of realizing communication channel 199 have several different kinds (for example, use satellite antenna 132 and 134 satellite communication channel 130, use communication tower 142 and 144 and/or radio communication channel 140, the wire communication channel 150 of local antenna 152 and 154 and/or use the fiber optic communication channel 160 of electric light (E/O) interface 162 and photoelectricity (O/E) interface 164).In addition, can use to combine and form communication channel 199 more than a kind of media.
In order to reduce the undesired error of transmission that occurs in the communication system, adopt error correction and channel coding schemes through regular meeting.In general, these error corrections and channel coding schemes use encoder at transmitter terminal, use decoder at receiver end.
Referring to communication system shown in Figure 2 200, transmitting terminal in communication channel 299, information bit 201 is provided for transmitter 297, transmitter 297 uses encoder with symbol mapper 220 (this symbol mapper can be considered different separately functional blocks 222 and 224) information bit 201 to be encoded, thereby generate centrifugal pump modulation symbol sequence 203 and offer emission driver 230, this emission driver 230 uses digital to analog converter 232 to generate and transmits 204 continuously, and transmitting 205 continuously after using emission filter 234 to generate filtering, it is 205 abundant consistent with communication channel 299 to transmit continuously after this filtering.At the receiving terminal of communication channel 299, received signal 206 is provided for AFE (analog front end) 260 continuously, and this AFE (analog front end) 206 comprises receiving filter 262 (continuous received signal 207 after the generation filtering) and analog to digital converter 264 (generating discrete received signal 208).Measure maker 270 and generate symbol tolerance 209, decoder 208 uses this symbol to measure 209 pairs of described centrifugal pump modulation symbols and makes the best-estimated (210) with the information bit that is encoded in wherein.
Can realizing of decoder in the foregoing description according to the present invention.In addition, ensuing several accompanying drawing is described (some embodiment will provide more detailed introduction) to other and specific embodiment of the equipment that is used to support realize according to the present invention, system, function and/or method.The signal of a kind of particular type of handling according to the present invention is a ldpc coded signal.Before the present invention is introduced more specifically, earlier the LDPC sign indicating number is carried out general introduction.
Fig. 3 is the schematic diagram of an embodiment of LDPC sign indicating number two-dimensional plot 300.In the prior art, the LDPC two-dimensional plot is also referred to as Tan Natu (Tanner Graph) sometimes.The LDPC sign indicating number can be considered as having the code of binary parity check matrix, and like this, nearly all element value is 0 (for example: this binary parity check matrix is a sparse matrix) in this matrix.For example, H=(h I, j) N * MCan be counted as block length is the parity matrix of the LDPC sign indicating number of N.
In this parity matrix, 1 quantity can be expressed as d in the i row v(i), 1 the quantity that j is capable can be expressed as d c(j).If for all i, d v(i)=d v, and for all j, d c(j)=d c, this LDPC sign indicating number is called as (d so v, d c) regular LDPC sign indicating number, otherwise this LDPC sign indicating number is called abnormal LDPC code.
Provided introduction in the reference [2] that reference [1] that LDPC sign indicating number R.Gallager is below shown and M.Luby etc. are shown.
[1] R.Gallager, Low-Density Parity-Check Codes, Cambridge, MA:MIT Press, 1963. (R.Gallager, low density parity check code, Cambridge, MA:MIT publishing house, 1963)
[2]M.Luby,M.Mitzenmacher,M.A.Shokrollahi,D.A.Spielman,and?V.
Stemann, " Practical Loss-Resilient Codes ", Proc.29th Symp.on Theory ofComputing, 1997, pp.150-159. (M.Luby, M.Mitzenmacher, M.A.Shokrollahi, D.A.Spielman, and V.Stemann, " practical elastic extenuation code ", the 29th theory of computation seminar collection of thesis in 1997,150-159 page or leaf)
Rule LDPC sign indicating number can be expressed as two-dimensional plot 300, the left node of its parity matrix is represented bits of coded (or " variable node " (or " position node ") 310 decoded to ldpc coded signal with the method for position decoding) variable, and the right side node is represented verification equation (or check-node 320).Two-dimensional plot 300 by the LDPC sign indicating number of H definition can be defined by N variable node (for example N node) and M check-node.Each variable node in N variable node 310 has d v(i) individual sideline (edge, label 330 is depicted as one of them example) is with position node v i312 link to each other with one or more check-nodes (M check-node in).Sideline 330 shown in the figure is with position node v i312 with check-node c j322 connect.Sideline d vQuantity (as d among the figure vShown in 314) be called the degree (degree) of variable node i again.Approx, each check-node of M check-node 320 has just d c(j) individual sideline (is expressed as d among the figure c324) this node is connected with one or more variable nodes (or position node) 310.The quantity d in this sideline cThe degree that is called check-node j again.
At variable node v i(or position node b i) 312 and check-node c jSideline 330 between 322 may be defined as e=(i, j).But on the other hand, (i, j), the node in this sideline also can be represented as e=(v (e), c (e)) (perhaps e=(b (e), c (e)) for given sideline e=.Given variable node v i(or position node b i), can define one group from node v i(or position node b i) sideline of sending is that Ev (i)={ e|v (e)=i} (perhaps is E b(i)={ e|b (e)=i}).Given check-node c j, can define one group is E from the sideline that node cj sends c(j)={ e|c (e)=j}.Therefore, derivation result is | E v(i)=d v| (or | E b(i) |=d b) and | E c(j) |=d c
As a rule, anyly can be characterized as graphical nodes by the node that two-dimensional plot is represented.It is also to be noted that abnormal LDPC code also can be described with two-dimensional plot.Yet the degree of each group node can be selected according to some distribution in abnormal LDPC code.Therefore, for two of an abnormal LDPC code different node v I1And v I2, | E v(i 1) | may be not equal to | E v(i 2) |.This relation is also set up for two check-nodes.The notion of abnormal LDPC code provides introduction by people such as M.Luby at first in reference [2].
In a word, by the two-dimensional plot of LDPC sign indicating number, the parameter of LDPC sign indicating number can be defined by the degree that distributes, and this point has provided description at people's such as above-mentioned M.Luby reference [2] and below with reference to data [3]:
[3]T.J.Richardson?and?R.L.Urbanke,“The?capacity?of?low-density?paritycheck?code?under?message-passing?decoding,’”IEEE?Trans.Inform.Theory,Vol.47,pp.599-618,Feb.2001.
This distribution can be described to:
If λ iFor from spending the mark in the sideline of sending, establish ρ for the variable node of i iBe the mark in the sideline of sending for the check-node of i from degree, so, spend the distribution group (λ, ρ) may be defined as follows: λ ( x ) = Σ i = 2 M y λ i x i - 1 With ρ ( x ) = Σ i = 2 M c ρ i x i - 1 , M wherein vAnd M cThe maximal degree of representing variable node and check-node respectively.
Although a plurality of embodiment shown here adopt regular LDPC sign indicating number, it should be noted that the present invention also while application rule LDPC sign indicating number and abnormal LDPC code.
Introduced as people's such as above-mentioned Djurdjevic reference [a], can be made up the narrow LDPC sign indicating number of type based on two coded words of RS sign indicating number.
By contrast, the method that proposes of the application uses various types of RS sign indicating numbers (comprising the RS sign indicating number that has on a large scale with the information symbol of quantity) to make up large-scale LDPC sign indicating number.In one embodiment, the method that proposes according to the application can use the GRS sign indicating number to generate the LDPC sign indicating number.
The use GRS sign indicating number that the application proposes generates the new method of LDPC sign indicating number, for ldpc coded signal and the designer who is used to handle the communication equipment (comprising transmitting end equipment and receiving device and/or receiver equipment thereof) of this ldpc coded signal more flexibility is provided.The construction method that the present invention proposes provides more choices for the type of the LDPC sign indicating number of generation.
At first introduce an embodiment who makes up this LDPC sign indicating number.
Understand the consideration Galois Field GF of method elder generation (2 that the present invention makes up this LDPC sign indicating number s) and count ρ, wherein ρ≤2 arbitrarily s
The first step is selected a group address L, wherein at random L = { α i 0 , . . . , α i ρ - 1 } Has degree that ρ element and 2 select at random and is 1 polynomial f 0And f 1, wherein for all λ ∈ L, f (λ) ≠ 0, and for all β ∈ GF (2 s), f 1(x) ≠ β f 0(x).
Second step is from this Galois Field GF (2 s) in select ρ nonzero element v at random 0, v 1... v ρ-1
The 3rd step, get 2 coded words, as follows:
c 0 = ( v 0 f 0 ( α i 0 ) , v 1 f 0 ( α i 1 ) , . . . , v ρ - 1 f 0 ( α i ρ - 1 ) )
c 1 = ( v 0 f 1 ( α i 0 ) , v 1 f 1 ( α i 1 ) , . . . , v ρ - 1 f 1 ( α i ρ - 1 ) )
As an example of 32 limited accurate realizations, these two coded word vectors can be expressed as follows:
c 0 = ( v 0 f 0 ( α i 0 ) , v 1 f 0 ( α i 1 ) , . . . , v 31 f 0 ( α i 31 ) )
c 1 = ( v 0 f 1 ( α i 0 ) , v 1 f 1 ( α i 1 ) , . . . , v 31 f 1 ( α i 31 ) )
As described in following reference [4], by these two coded word c 0And c 1The two-dimension code that generates has minimum intersymbol apart from d Min
[4]F.J.MacWilliams?and?N.J.A.Sloane,The?Theory?of?Error-CorrectingCodes,North-Holland?Mathematical?Library,North-Holland,New?York,1998。
In the 4th step, have 2 thus sIndividual possible coset (c 0)+β c 1, wherein β belongs to Galois Field, i.e. β ∈ GF (2 s).
Use according to the present invention the above-mentioned method for designing that proposes then, the design of announcing in the reference paper that utilizes people such as Djurdjevic to deliver can make up various LDPC sign indicating numbers.
An embodiment of method who generates LDPC sign indicating number based on RS (for example, based on GRS LDPC sign indicating number) according to the present invention is as follows:
Coset C ( i ) = { c 1 , c 2 , . . . , c 2 s - 1 } , Each c wherein k={ c K, 0, c K, 1..., c K, ρ}
Map addresses: use this Galois Field, GF (2 s) → { 0,1}2 s
z(0)=(100...0),z(1)=(010...0),z(α)=(001...0),...
Z (α i)=(000...010...0), wherein 1 is positioned at the i+2 position.
One 2 s* 2 sPermutation matrix as follows:
P i , k = z ( c k , 0 ) z ( c k , 1 ) · · · z ( c k , 2 s - 1 )
This LDPC sign indicating number can use following LDPC matrix to generate:
Some attribute of this matrix is as follows:
1. the weight of every row is γ
2. the weight of every row is ρ
3. any 2 capable identical elements that do not have more than
Equally, use the degree of the position node of the LDPC sign indicating number that this method makes up to be γ, use the degree of the check-node of the LDPC sign indicating number that this method makes up to be ρ.
The minimum intersymbol of this LDPC sign indicating number is apart from d MinAs follows:
Example: root LDPC sign indicating number (Root LDPC Code sees appendix A)
An example that utilizes the LDPC sign indicating number of this method generation below is provided.
Use utilizes the GRS sign indicating number to generate this method of LDPC sign indicating number, can make up 64 * 32 * 64=131 at least, 072 kind of different LDPC sign indicating number.Therefore, it has enough randomness.
The Galois Field of selecting can be expressed as follows: GF (2 6)
The first step, a degree of Xuan Zeing is 1 polynomial f at random 0Can be expressed as 0103 (octal system), perhaps can select to use polynomial f 0 (x)=x 6+ x+1.In addition, primitive element α can be expressed as 2 (octal system), or is reduced to α=x.
Second step is from Galois Field GF (2 s) in select ρ nonzero element v at random 0, v 1... v ρ-1In the example of this root LDPC sign indicating number, the quantity ρ of nonzero element is chosen as 32.
The 3rd step, get 2 coded words, in 32 limited accurate realizations, be expressed as follows:
c 0 = ( v 0 f 0 ( α i 0 ) , v 1 f 0 ( α i 1 ) , . . . , v 31 f 0 ( α i 31 ) )
c 1 = ( v 0 f 1 ( α i 0 ) , v 1 f 1 ( α i 1 ) , . . . , v 31 f 1 ( α i 31 ) )
These two RS coded words that produce from 2 dimension RS sign indicating number generator matrix G of correspondence can be expressed as:
A:24,7,62,30,32,39,1,2,50,2,26,34,44,39,14,19,38,20,18,38,62,18,50,32,42,35,27,45,0,31,21,1
B:24,34,53,34,1,46,31,48,55,38,61,12,47,21,62,56,31,22,17,14,32,41,27,52,4,51,38,40,28,41,0,-1
Wherein count x, the α in x>-1 presentation code word x, 0 in-1 presentation code word.Obviously, α 1=α and α 0=1.
For example, coded word A and B can be expressed as:
A = α 24 , α 7 , α 62 , α 30 , α 32 , α 39 , α , α 2 , α 50 , α 2 , α 26 , α 34 , α 44 , α 39 , α 14 α 19 , α 39 , α 20 , α 18 , α 38 , α 62 , α 18 , α 50 , α 32 , α 42 , α 35 , α 27 , α 45 , 1 , α 31 , α 21 , α
B = α 24 , α 34 , α 53 , α 34 , α , α 46 , α 31 , α 48 , α 55 , α 38 , α 61 , α 12 , α 47 , α 21 , α 62 α 56 , α 31 , α 22 , α 17 , α 14 , α 32 , α 41 , α 27 , α 52 , α 4 , α 51 , α 38 , α 40 , α 28 , α 41 , 1,0
Therefore, have 64 possible selections at least.
2 GRS coded words that generate can be expressed as follows:
c 0 = α 24 , α 7 , α 62 , α 30 , α 32 , α 39 , α , α 2 , α 50 , α 2 , α 26 , α 34 , α 44 , α 39 , α 14 α 19 , α 39 , α 20 , α 18 , α 38 , α 62 , α 18 , α 50 , α 32 , α 42 , α 35 , α 27 , α 45 , 1 , α 31 , α 21 , α ;
c 1 = α 24 , α 34 , α 53 , α 34 , α , α 46 , α 31 , α 48 , α 55 , α 38 , α 61 , α 12 , α 47 , α 21 , α 62 α 56 , α 31 , α 22 , α 17 , α 14 , α 32 , α 41 , α 27 , α 52 , α 4 , α 51 , α 38 , α 40 , α 28 , α 41 , 1,0 .
These 2 GRS coded words can also be expressed as follows with coded word A and B:
c 0=(A 0,A 1,...A 16,α 19×A 17,A 18,...,A 31);
c 1=(B 0,B 1,...,B 16,α 19×B 17,B 18,...,B 31)。
The end value of these 2 GRS coded words can aforesaid form be represented, wherein emphasizes as follows with underscore for the 17th of the modification of each GRS coded word the:
c 0:24,7,62,30,32,39,1,2,50,2,26,34,44,39,14,19,38,39,18,38,62,18,50,32,42,35,27,45,0,31,21,1
c 1:24,34,53,34,1,46,31,48,55,38,61,12,47,21,62,56,31,41,17,14,32,41,27,52,4,51,38,40,28,41,0,-1
In the 4th step, can obtain 2 thus 6Individual possible coset (c 0)+β c 1, wherein β belongs to Galois Field, i.e. β ∈ GF (2 6).
The one dimension sign indicating number can be expressed as C 0=<c 0, other 5 cosets can be expressed as:
C i=C 0(i-1)×c 1,i=1,2,3,4,5。
Suitable permutation matrix (2 6* 2 6Or 64 * 64 form) reaches real subsequently LDPC parity check matrix H, can set up according to above-mentioned method.
Continue the example of above-mentioned " root LDPC sign indicating number ", the LDPC parity matrix relevant with the coding GRS-H of this structure is shown in appendix A.Because of this parity matrix is bigger, so provide at appendix A.
Example: the displacement (shown in appendix B) of the row of " root LDPC sign indicating number " and/or row
It should be noted that equally, the LDPC parity matrix that provides in above-mentioned LDPC parity matrix and the appendix A can be through the displacement of space and/or row, thereby generate various LDPC parity matrix, include in scope and spirit essence of the present invention.
The displacement of " root LDPC sign indicating number " being carried out various row and/or row can generate different LDPC parity check matrix H, total having ( ) * (384! ) individual (wherein "! " expression " factorial ").
The invention provides a kind of communication system LDPC sign indicating number of (for example, comprising the communication equipment of realizing in it) of selecting and be used in particular for, the standard that IEEE P802.3an (10GBASE-T) seminar is recommended is followed in described design of communication system and realization.
The displacement that may generate of " root LDPC sign indicating number " is shown in appendix B.This LDPC parity check matrix H b, corresponding LDPC sign indicating number according to IEEE 802.3an (10GBASE-T) standard; This matrix also is published in " IEEE Draft P802.3an/D2.1 ".
Especially select some attribute of the LDPC sign indicating number that uses as follows according to 10GBASE-T:
GF (2 s)=GF (2 6), γ=6 and ρ=32 wherein.
This parity matrix is as follows:
H (6) is 384 * 2048 matrix.
The encoding rate of result in (2048,1723) regular LDPC sign indicating number is 0.8413, and its minimum intersymbol is apart from d MinBe at least 8 (that is, γ=6, and d Min〉=γ+2 → d Min〉=8).
Fig. 4 is the schematic diagram of an embodiment of transmission processing method 400 of the ldpc coded signal that generates especially for the LDPC sign indicating number of 10GBASE-T of selection used according to the invention.Figure 4 shows that the method for carrying out at the transmitter terminal of communication channel.Described method relates to the method for using the LDPC sign indicating number that is used for 10GBASE-T in particularly the foregoing description of selecting to generate ldpc coded signal.This class ldpc coded signal comprises the ldpc coded signal based on GRS described in the foregoing description (for example, the ldpc coded signal that uses the GRS sign indicating number to generate).This ldpc coded signal also can be regarded as the ldpc coded signal of the proposed standard of following IEEE P802.3an (10GBASE-T) seminar.Described method relates to the generation of ldpc coded signal, also relate to this ldpc coded signal with will launch consistent other the required operations of the communication channel that transmits corresponding continuous time.
At first, shown in step 405, described method receives information bit.The corresponding expectation of these information bits is sent to the real information of the other end from an end of channel.At the other end of channel, will carry out the best-estimated to these original information bits.Next, in step 410, this information bit is carried out the LDPC coding, thereby generate the LDPC coded word of forming by the n bit sign.This encoding operation can use the LDPC sign indicating number especially for 10GBASE-T of selection to carry out; Perhaps, can adopt and utilize any LDPC sign indicating number that the GRS sign indicating number makes up and do not depart from the scope of the present invention and spirit.In some cases, described method is interlocked to it, shown in step 415 using after the LDPC sign indicating number encodes to everybody of LDPC coded word.
Then, shown in step 420, the described n bit sign of sign map is at least one modulation (comprising the mapping of at least one planisphere and at least one correspondence).In certain embodiments, this n bit sign is mapped as a plurality of different modulation types, thereby generates the signal with variable modulation and/or encoding rate, and the modulation of these signals and encoding rate can be based on the numerous variations of frame frequency, or based on the symbol frequent variations.Thereby this n bit sign is mapped as at least one modulation generates a centrifugal pump modulation symbol sequence, comprise many I, Q value (or planisphere of higher dimension).It should be noted that n is an integer.Herein, this centrifugal pump modulation symbol sequence can be considered ldpc coded modulation signal (is digital signal form fully at this).
Described then method manyly writes in the device each symbol in the centrifugal pump modulation symbol sequence of IQ value (or more the value of trooping of high-order) being expressed as under the modulation rate, thereby generates continuous time signal in step 430.For example, can carry out with digital to analog converter.
Afterwards, this continuous time signal (generally being arranged in base band frequency) is after digital to analog converter or the output of other equivalent devices, in the step 440, to this continuous time signal (for example, continuous time baseband signal) frequency up-converted, filtering and/or the gain of carrying out any necessity adjust, thereby after generating filtering continuous time transmit.Do not carry out frequency up-converted, filtering in possible some example and/or gain is adjusted, consistent by the form of the continuous time signal of digital to analog converter or the output of other equivalent device with its communication channel (or media) with emission.Execute any with after this signal and the corresponding to suitable processing of communication channel (or media), shown in step 450, in this communication channel with the emission of this signal.
Be the method for carrying out at the receiver end of communication channel equally shown in figure below.Described method relates to various embodiment, so that the continuous time signal (its information bit has used the LDPC sign indicating number that is used in particular for 10GBASE-T of the selection of introducing in the foregoing description to encode) that receives is handled, so that the information bit that is encoded in is wherein made best estimation as possible.In certain embodiments, the continuous time signal of this reception can be regarded as in the continuous time according to after the channel adjustment that transmitter terminal is launched communication channel and transmits.In general, channel adjustment is to emission and transmit the continuous time by its transmission (or be stored in its interior) and adjust (being generally desirably non-).Each width of cloth figure has introduced a kind of optional method among the 2 following width of cloth figure, the continuous time signal that receives is carried out to receive handle (for example, at the receiver end of communication channel), finally the information bit that is encoded in is wherein made best estimation.
Fig. 5 is the schematic diagram of an embodiment of receiving handling method 500 of the ldpc coded signal that generates especially for the LDPC sign indicating number of 10GBASE-T of selection used according to the invention.At first, in step 510, described method receives continuous time signal.In certain embodiments, the information bit in the continuous time signal of this reception may use the LDPC sign indicating number of selecting in the foregoing description especially for 10GBASE-T to encode.Perhaps, the information bit in the continuous time signal of this reception may use any LDPC sign indicating number that utilizes the GRS sign indicating number to make up according to the present invention to encode.In addition, this type of ldpc coded signal comprises the ldpc coded signal of introducing in the previous embodiment based on GRS.The reception of this continuous time signal and processing also comprise carries out necessary frequency down-converts to first continuous time signal, to generate second continuous time signal, shown in step 512.Any frequency inverted that needs to carry out can be converted to base band frequency with carrier frequency.This frequency inverted also can be carried out by intermediate frequency.No matter in which embodiment, when carrying out the method, the frequency of the continuous time signal of reception generally all is reduced to the base band continuous time signal.
In described method such as the step 520, described first (or second) continuous time signal is sampled,, and therefrom extract I, Q composition (same phase constituent, orthogonal component) with the generation discrete-time signal.This sampling process can use analog to digital converter or equivalent device to carry out, and generates discrete-time signal the continuous time signal with the reception after having carried out suitable frequency down-converts (and having carried out filtering).I, Q composition also extract in this step in each sampling of this discrete-time signal.Described then method is carried out demodulation and DO symbol mapping to this I, Q composition, thereby is generated the centrifugal pump modulation symbol sequence in step 530.
Next shown in step 540, opposite side message is carried out the iteration of pre-determined number and is upgraded.This step can be considered according to the various embodiments described above carries out the LDPC decoding.This LDPC decoding generally includes a node processing to upgrade and the relevant limit message (shown in step 542) of position node, comprises that also the processing of verification engine is to upgrade the limit message (as step 544 shown in) relevant with check-node.
When executing the last decoding of pre-determined number decoding iteration, described method is made hard decision based on the soft information of the limit message relevant with the position node of corresponding recent renewal shown in step 550.Described method at last in step 560, the best estimate of the coded word (comprising information bit) that output extracts from the continuous time signal of described reception.
Figure 6 shows that GRS sign indicating number used according to the invention makes up the schematic diagram of an embodiment of the method 600 of LDPC sign indicating number.
At first, method 600 is selected a group address shown in step 610.This group of addresses comprises a plurality of elements, wherein each element can use each primitive element in it to be upgraded to the Galois Field of equivalency index time power (GF (2 s)) in primitive element (for example, α) generate.For example, this group of addresses can be expressed as L = { α i 0 , . . . , α i ρ - 1 } . Galois Field can be regarded as the territory with limited predetermined element.In digital communicating field, the application of Galois Field is very widely, and it is the confined space, generates various codings, code signal and/or its each composition in this confined space.This group of addresses comprises that also two independent degree are 1 polynomial function (for example, first degree is that 1 the polynomial function and second degree are 1 polynomial function).Described first degree be 1 polynomial function be used for each element map of a plurality of elements of described group of addresses to corresponding non-zero extremely, and the non-linear scalar multiple of described second degree to be 1 polynomial function be described first degree is 1 polynomial function.That is to say that (for example, β), described second degree is that 1 polynomial function all can not be adjusted to other value for all scalar values in this group of addresses.
Then, shown in step 620, from this Galois Field, select a plurality of nonzero elements.These nonzero elements can be used to generate each coded word according to the GRS code identification.Shown in step 630, the first coded word vector of identification GRS sign indicating number from a plurality of possible coded word vector value.This first coded word vector can use described a plurality of nonzero element and by being 1 polynomial function (for example, f according to described first degree 0) to this group of addresses (for example, L = { α i 0 , . . . , α i ρ - 1 } ) in each element shine upon and generate.Then, shown in step 640, described method 600 continues, the second coded word vector of identification GRS sign indicating number from a plurality of possible coded word vector value.This second coded word vector can use described a plurality of nonzero element and equally by being that 1 polynomial function shines upon each element in this group of addresses and generates according to described second degree.
Shown in step 650, described method 600 multiplies each other described first coded word vector and each scale factor in more than first scale factor then, to generate a plurality of adjustment first coded word vector afterwards.Equally, shown in step 660, described method 600 multiplies each other described second coded word vector and each scale factor in more than second scale factor, to generate a plurality of adjustment second coded word vector afterwards.
These processing procedures shown in step 650 and 660 can be regarded as and make each the first coded word vector sum, second coded word vector (for example, c 0And c 1) leap (sapnning) this Galois Field.For example, for 2 sIndividual different β value, first coded word vector c 0Need to cross over (for example, (c through one dimension to Galois Field 0)=[β c 0, β is GF (2 s) in any element]).In addition, for the β in the Galois Field, always have 2 sIndividual possible values.It should be noted that and adjust back coded word Vector Groups (c 0), can be regarded as by described first coded word vector c 0The one-dimensional coding that conclusion obtains.
Similarly, for 2 of β sIndividual different value, the second coding vector c 1Need to cross over (for example, (c through one dimension to Galois Field 1)=[β c 1, β is GF (2 s) in any element]).In addition, second group of (c 1) also can be regarded as by the second coding vector c 1The one-dimensional coding that conclusion obtains.
Shown in step 670, described method 600 continues, with described a plurality of adjust in the first coded word vector of back each with described a plurality of the adjustment after each addition in the second coded word vector, to generate a plurality of cosets.In other words, in case the first coded word vector (c after described one group of adjustment 0) determine after, the various values of usage ratio factor-beta generate described each coset.Can have 2 thus sIndividual possible coset (c 0)+β c 1, these cosets can be expressed as:
Coset C ( i ) = { c 1 , c 2 , . . . , c 2 s - 1 } , Each c like this k={ c K, 0, c K, 1..., c K, ρ}
Shown in step 680, described method 600 generates a plurality of permutation matrixes, and each permutation matrix comprises a plurality of row, and wherein every row comprises the map addresses of a coset in described a plurality of coset.
A possible map addresses that can adopt is as follows:
Map addresses: use Galois Field, GF (2 s) → { 0,1}2 s
z(0)=(100...0),z(1)=(010...0),z(α)=(001...0),...
Z (α i)=(000...010...0), wherein 1 in the i+2 position
2 s* 2 sThe form of each permutation matrix in the individual permutation matrix is as follows:
P i , k = z ( c k , 0 ) z ( c k , 1 ) · · · z ( c k , 2 s - 1 )
After in these permutation matrixes each formed, shown in step 690, it was submatrix that described method is arranged described each permutation matrix, thereby generates the LDPC parity matrix of corresponding LDPC sign indicating number.This LDPC sign indicating number can generate by the LDPC parity matrix that makes up by following form:
Figure A20061000259800272
Some attribute of this parity matrix provides as follows:
1, the weight of every row is γ
2, the weight of every row is ρ
3, any 2 capable identical elements that do not have more than
Equally, utilize the degree of the position node of the LDPC sign indicating number that this method makes up to be γ, and utilize the degree of the check-node of the LDPC sign indicating number that this method makes up to be ρ.
The minimum intersymbol of this LDPC sign indicating number is apart from d MinAs follows:
Figure A20061000259800273
Utilize GRS coding (rather than only RS coding), the technology in can be compared to prior art generates how different LDPC sign indicating numbers.
It should be noted that this LDPC parity check matrix H (γ), can be used for making up generator matrix G, this generator matrix can be used at least one information bit is encoded by the LDPC encoder, to generate at least one bits of coded.
Figure 7 shows that GRS sign indicating number used according to the invention makes up the schematic diagram of an embodiment 700 of the device of LDPC sign indicating number.This embodiment shows how apparatus for establishing 710 is set up LDPC sign indicating number (shown in square frame 714) to use GRS sign indicating number (shown in square frame 712).
Device 710 provides it to encoder 722 after generating LDPC sign indicating numbers 714, generates encoded information bits 702 thereby encoded by 722 pairs of information bits 701 of encoder.In certain embodiments, encoder 722 is also exported the not bits of coded 703 of not carrying out the LDPC coding.
It should be noted that equally can also communicate to connect a decoder does not depart from the scope of the present invention and spirit to accept the LDPC sign indicating number 714 that is generated by device 710.The LDPC sign indicating number 714 that the equipment at communication channel two ends can adopt same use GRS sign indicating number 712 to make up.
Figure 8 shows that GRS sign indicating number used according to the invention makes up the schematic diagram of another embodiment 800 of the device of LDPC sign indicating number.This embodiment shows some functional blocks that can be used for device 810 (and/or module).
Device 810 uses the GRS sign indicating number to make up the LDPC sign indicating number.Device 810 comprises that the group of addresses that is used for selecting group of addresses selects module 820 and be used for selecting the nonzero element of a plurality of nonzero elements to select module 830 from Galois Field.
Device 810 also comprises coded word vector identification module 840, is used for discerning from a plurality of possible coded word vector value the first coded word vector of GRS sign indicating number.Coded word vector identification module 840 also is used for discerning from a plurality of possible coded word vector value the second coded word vector of GRS sign indicating number.
Device 810 also comprises coset generation module 850, be used for described first coded word vector and each scale factor of more than first scale factor be multiply by mutually and generate a plurality of adjustment back first coded word vector, and each scale factor in will described second coded word vectorial and more than second scale factor multiply by the second coded word vector after a plurality of adjustment of generation mutually.Coset generation module 850 also can by with a plurality of adjust in the first coded word vector of back each with a plurality of the adjustment after each addition in the second coded word vector, thereby generate a plurality of cosets.
Device 810 also comprises LDPC parity matrix generation module 860, is used to generate a plurality of permutation matrixes, and wherein each permutation matrix comprises a plurality of row, and wherein every row comprises the map addresses of a coset in described a plurality of coset.LDPC parity matrix generation module 860 can also be used for each permutation matrix of a plurality of permutation matrixes is arranged as submatrix, thereby generates the LDPC parity matrix of corresponding LDPC sign indicating number.
This device 810 also can communicate to connect with encoder 722, and this encoder 722 is used for information bit 701 is encoded to generate encoded information bits 702.In addition, encoder 722 is exported the not bits of coded 703 of not encoding through LDPC.As described in above-mentioned embodiment, can also communicate to connect a decoder and not depart from the scope of the present invention and spirit with the LDPC sign indicating number 714 of receiving system 810 generations.The LDPC sign indicating number that the equipment at communication channel two ends can adopt identical use GRS sign indicating number to make up.
It should be noted that the aforementioned method of introducing in conjunction with the accompanying drawings to can be applicable in any suitable system and/or device design (communication system, communication transmitter, communication control processor, communication transceiver and/or the function of describing in it) equally and do not depart from the scope of the present invention and spirit.
In addition, it should be noted that various function described herein, system and/or equipment and associated method embodiment can realize all in log-domain, thereby make multiplication can utilize addition to carry out, and division can utilize subtraction to carry out.
According to above detailed description of in conjunction with the accompanying drawings the present invention having been carried out, other various modifications and changes are conspicuous, and these modifications and changes do not break away from spirit of the present invention and scope.
The cross reference of related application:
Present patent application requires the priority of following U.S. Provisional Patent Application, and quotes in full the part of this application as present patent application:
1. U.S. Provisional Patent Application number is 60/642,689, name is called " uses GRS sign indicating number structure LDPC sign indicating number (Construction of LDPC codes using generalized R-S code) " (act on behalf of case number be BP4008.2), and the applying date is on January 10th, 2005.
The appendix explanation:
Each the LDPC parity matrix that is proposed has following form: in every row of this parity matrix, nonzero term is arranged in the row that nonzero value is provided.384 row of each LDPC parity matrix, every row comprises 32 nonzero value elements (so weight is 32); The value of each described nonzero value element is 1.Each described LDPC parity matrix is 384 * 2048 matrix.
Appendix A: the parity matrix of " root LDPC sign indicating number "
384 * 2048 LDPC matrix, GRS-H
GRS-H=
0,64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024,1088,1152,1216,1280,1344,1408,1472,1536,1600,1664,1728,1792,1856,1920,1984,
25,72,191,223,289,360,386,451,563,579,667,739,813,872,911,980,1063,1128,1171,1255,1343,1363,1459,1505,1579,1636,1692,1774,1793,1888,1942,1986,
26,73,129,224,290,361,387,452,564,580,668,740,814,873,912,981,1064,1129,1172,1256,1281,1364,1460,1506,1580,1637,1693,1775,1794,1889,1943,1987,
27,74,130,225,291,362,388,453,565,581,669,741,815,874,913,982,1065,1130,1173,1257,1282,1365,1461,1507,1581,1638,1694,1776,1795,1890,1944,1988,
28,75,131,226,292,363,389,454,566,582,670,742,816,875,914,983,1066,1131,1174,1258,1283,1366,1462,1508,1582,1639,1695,1777,1796,1891,1945,1989,
29,76,132,227,293,364,390,455,567,583,671,743,817,876,915,984,1067,1132,1175,1259,1284,1367,1463,1509,1583,1640,1696,1778,1797,1892,1946,1990,
30,77,133,228,294,365,391,456,568,584,672,744,818,877,916,985,1068,1133,1176,1260,1285,1368,1464,1510,1584,1641,1697,1779,1798,1893,1947,1991,
31,78,134,229,295,366,392,457,569,585,673,745,819,878,917,986,1069,1134,1177,1261,1286,1369,1465,1511,1585,1642,1698,1780,1799,1894,1948,1992,
32,79,135,230,296,367,393,458,570,586,674,746,820,879,918,987,1070,1135,1178,1262,1287,1370,1466,1512,1586,1643,1699,1781,1800,1895,1949,1993,
33,80,136,231,297,368,394,459,571,587,675,747,821,880,919,988,1071,1136,1179,1263,1288,1371,1467,1513,1587,1644,1700,1782,1801,1896,1950,1994,
34,81,137,232,298,369,395,460,572,588,676,748,822,881,920,989,1072,1137,1180,1264,1289,1372,1468,1514,1588,1645,1701,1783,1802,1897,1951,1995,
35,82,138,233,299,370,396,461,573,589,677,749,823,882,921,990,1073,1138,1181,1265,1290,1373,1469,1515,1589,1646,1702,1784,1803,1898,1952,1996,
36,83,139,234,300,371,397,462,574,590,678,750,824,883,922,991,1074,1139,1182,1266,1291,1374,1470,1516,1590,1647,1703,1785,1804,1899,1953,1997,
37,84,140,235,301,372,398,463,575,591,679,751,825,884,923,992,1075,1140,1183,1267,1292,1375,1471,1517,1591,1648,1704,1786,1805,1900,1954,1998,
38,85,141,236,302,373,399,464,513,592,680,752,826,885,924,993,1076,1141,1184,1268,1293,1376,1409,1518,1592,1649,1705,1787,1806,1901,1955,1999,
39,86,142,237,303,374,400,465,514,593,681,753,827,886,925,994,1077,1142,1185,1269,1294,1377,1410,1519,1593,1650,1706,1788,1807,1902,1956,2000,
40,87,143,238,304,375,401,466,515,594,682,754,828,887,926,995,1078,1143,1186,1270,1295,1378,1411,1520,1594,1651,1707,1789,1808,1903,1957,2001,
41,88,144,239,305,376,402,467,516,595,683,755,829,888,927,996,1079,1144,1187,1271,1296,1379,1412,1521,1595,1652,1708,1790,1809,1904,1958,2002,
42,89,145,240,306,377,403,468,517,596,684,756,830,889,928,997,1080,1145,1188,1272,1297,1380,1413,1522,1596,1653,1709,1791,1810,1905,1959,2003,
43,90,146,241,307,378,404,469,518,597,685,757,831,890,929,998,1081,1146,1189,1273,1298,1381,1414,1523,1597,1654,1710,1729,1811,1906,1960,2004,
44,91,147,242,308,379,405,470,519,598,686,758,759,891,930,999,1082,1147,1190,1274,1299,1382,1415,1524,1598,1655,1711,1730,1812,1907,1961,2005,
45,92,148,243,309,380,406,471,520,599,687,759,770,892,931,1000,1083,1148,1191,1275,1300,1383,1416,1525,1599,1656,1712,1731,1813,1908,1962,2006,
46,93,149,244,310,381,407,472,521,600,688,760,771,893,932,1001,1084,1149,1192,1276,1301,1384,1417,1526,1537,1657,1713,1732,1814,1909,1963,2007,
47,94,150,245,311,382,408,473,522,601,689,761,772,894,933,1002,1085,1150,1193,1277,1302,1385,1418,1527,1538,1658,1714,1733,1815,1910,1964,2008,
48,95,151,246,312,383,409,474,523,602,690,762,773,895,934,1003,1086,1151,1194,1278,1303,1386,1419,1528,1539,1659,1715,1734,1816,1911,1965,2009,
49,96,152,247,313,321,410,475,524,603,691,763,774,833,935,1004,1087,1089,1195,1279,1304,1387,1420,1529,1540,1660,1716,1735,1817,1912,1966,2010,
50,97,153,248,314,322,411,476,525,604,692,764,775,834,936,1005,1025,1090,1196,1217,1305,1388,1421,1530,1541,1661,1717,1736,1818,1913,1967,2011,
51,98,154,249,315,323,412,477,526,605,693,765,776,835,937,1006,1026,1091,1197,1218,1306,1389,1422,1531,1542,1662,1718,1737,1819,1914,1968,2012,
52,99,155,250,316,324,413,478,527,606,694,766,777,836,938,1007,1027,1092,1198,1219,1307,1390,1423,1532,1543,1663,1719,1738,1820,1915,1969,2013,
53,100,156,251,317,325,414,479,528,607,695,767,778,837,939,1008,1028,1093,1199,1220,1308,1391,1424,1533,1544,1601,1720,1739,1821,1916,1970,2014,
54,101,157,252,318,326,415,480,529,608,696,705,779,838,940,1009,1029,1094,1200,1221,1309,1392,1425,1534,1545,1602,1721,1740,1822,1917,1971,2015,
55,102,158,253,319,327,416,481,530,609,697,706,780,839,941,1010,1030,1095,1201,1222,1310,1393,1426,1535,1546,1603,1722,1741,1823,1918,1972,2016,
56,103,159,254,257,328,417,482,531,610,698,707,781,840,942,1011,1031,1096,1202,1223,1311,1394,1427,1473,1547,1604,1723,1742,1824,1919,1973,2017,
57,104,160,255,258,329,418,483,532,611,699,708,782,841,943,1012,1032,1097,1203,1224,1312,1395,1428,1474,1548,1605,1724,1743,1825,1857,1974,2018,
58,105,161,193,259,330,419,484,533,612,700,709,783,842,944,1013,1033,1098,1204,1225,1313,1396,1429,1475,1549,1606,1725,1744,1826,1858,1975,2019,
59,106,162,194,260,331,420,485,534,613,701,710,784,843,945,1014,1034,1099,1205,1226,1314,1397,1430,1476,1550,1607,1726,1745,1827,1859,1976,2020,
60,107,163,195,261,332,421,486,535,614,702,711,785,844,946,1015,1035,1100,1206,1227,1315,1398,1431,1477,1551,1608,1727,1746,1828,1860,1977,2021,
61,108,164,196,262,333,422,487,536,615,703,712,786,845,947,1016,1036,1101,1207,1228,1316,1399,1432,1478,1552,1609,1665,1747,1829,1861,1978,2022,
62,109,165,197,263,334,423,488,537,616,641,713,787,846,948,1017,1037,1102,1208,1229,1317,1400,1433,1479,1553,1610,1666,1748,1830,1862,1979,2023,
63,110,166,198,264,335,424,489,538,617,642,714,788,847,949,1018,1038,1103,1209,1230,1318,1401,1434,1480,1554,1611,1667,1749,1831,1863,1980,2024,
1,111,167,199,265,336,425,490,539,618,643,715,789,848,950,1019,1039,1104,1210,1231,1319,1402,1435,1481,1555,1612,1668,1750,1832,1864,1981,2025,
2,112,168,200,266,337,426,491,540,619,644,716,790,849,951,1020,1040,1105,1211,1232,1320,1403,1436,1482,1556,1613,1669,1751,1833,1865,1982,2026,
3,113,169,201,267,338,427,492,541,620,645,717,791,850,952,1021,1041,1106,1212,1233,1321,1404,1437,1483,1557,1614,1670,1752,1834,1866,1983,2027,
4,114,170,202,268,339,428,493,542,621,646,718,792,851,953,1022,1042,1107,1213,1234,1322,1405,1438,1484,1558,1615,1671,1753,1835,1867,1921,2028,
5,115,171,203,269,340,429,494,543,622,647,719,793,852,954,1023,1043,1108,1214,1235,1323,1406,1439,1485,1559,1616,1672,1754,1836,1868,1922,2029,
6,116,172,204,270,341,430,495,544,623,648,720,794,853,955,961,1044,1109,1215,1236,1324,1407,1440,1486,1560,1617,1673,1755,1837,1869,1923,2030,
7,117,173,205,271,342,431,496,545,624,649,721,795,854,956,962,1045,1110,1153,1237,1325,1345,1441,1487,1561,1618,1674,1756,1838,1870,1924,2031,
8,118,174,206,272,343,432,497,546,625,650,722,796,855,957,963,1046,1111,1154,1238,1326,1346,1442,1488,1562,1619,1675,1757,1839,1871,1925,2032,
9,119,175,207,273,344,433,498,547,626,651,723,797,856,958,964,1047,1112,1155,1239,1327,1347,1443,1489,1563,1620,1676,1758,1840,1872,1926,2033,
10,120,176,208,274,345,434,499,548,627,652,724,798,857,959,965,1048,1113,1156,1240,1328,1348,1444,1490,1564,1621,1677,1759,1841,1873,1927,2034,
11,121,177,209,275,346,435,500,549,628,653,725,799,858,897,966,1049,1114,1157,1241,1329,1349,1445,1491,1565,1622,1678,1760,1842,1874,1928,2035,
12,122,178,210,276,347,436,501,550,629,654,726,800,859,898,967,1050,1115,1158,1242,1330,1350,1446,1492,1566,1623,1679,1761,1843,1875,1929,2036,
13,123,179,211,277,348,437,502,551,630,655,727,801,860,899,968,1051,1116,1159,1243,1331,1351,1447,1493,1567,1624,1680,1762,1844,1876,1930,2037,
14,124,180,212,278,349,438,503,552,631,656,728,802,861,900,969,1052,1117,1160,1244,1332,1352,1448,1494,1568,1625,1681,1763,1845,1877,1931,2038,
15,125,181,213,279,350,439,504,553,632,657,729,803,862,901,970,1053,1118,1161,1245,1333,1353,1449,1495,1569,1626,1682,1764,1846,1878,1932,2039,
16,126,182,214,280,351,440,505,554,633,658,730,804,863,902,971,1054,1119,1162,1246,1334,1354,1450,1496,1570,1627,1683,1765,1847,1879,1933,2040,
17,127,183,215,281,352,441,506,555,634,659,731,805,864,903,972,1055,1120,1163,1247,1335,1355,1451,1497,1571,1628,1684,1766,1848,1880,1934,2041,
18,65,184,216,282,353,442,507,556,635,660,732,806,865,904,973,1056,1121,1164,1248,1336,1356,1452,1498,1572,1629,1685,1767,1849,1881,1935,2042,
19,66,185,217,283,354,443,508,557,636,661,733,807,866,905,974,1057,1122,1165,1249,1337,1357,1453,1499,1573,1630,1686,1768,1850,1882,1936,2043,
20,67,186,218,284,355,444,509,558,637,662,734,808,867,906,975,1058,1123,1166,1250,1338,1358,1454,1500,1574,1631,1687,1769,1851,1883,1937,2044,
21,68,187,219,285,356,445,510,559,638,663,735,809,868,907,976,1059,1124,1167,1251,1339,1359,1455,1501,1575,1632,1688,1770,1852,1884,1938,2045,
22,69,188,220,286,357,446,511,560,639,664,736,810,869,908,977,1060,1125,1168,1252,1340,1360,1456,1502,1576,1633,1689,1771,1853,1885,1939,2046,
23,70,189,221,287,358,447,449,561,577,665,737,811,870,909,978,1061,1126,1169,1253,1341,1361,1457,1503,1577,1634,1690,1772,1854,1886,1940,2047,
24,71,190,222,288,359,385,450,562,578,666,738,812,871,910,979,1062,1127,1170,1254,1342,1362,1458,1504,1578,1635,1691,1773,1855,1887,1941,1985,
25,99,182,227,258,367,416,497,568,615,702,717,816,854,959,1017,1056,1130,1170,1231,1313,1386,1436,1525,1541,1652,1703,1769,1821,1898,1921,1984,
0,90,164,247,292,323,432,481,562,633,680,767,782,881,919,961,1082,1140,1176,1235,1296,1378,1451,1501,1590,1606,1717,1768,1834,1886,1963,1986,
31,80,180,193,261,362,447,461,525,593,699,732,826,847,929,972,1041,1135,1182,1242,1284,1351,1440,1499,1584,1660,1691,1770,1812,1871,1971,1987,
37,85,144,237,274,361,429,490,534,612,685,721,821,850,943,995,1038,1088,1202,1238,1316,1407,1447,1534,1596,1627,1676,1732,1802,1875,1936,1988,
57,79,184,232,289,324,407,493,515,598,673,728,768,833,923,1014,1054,1136,1194,1249,1329,1362,1443,1492,1569,1611,1680,1754,1807,1917,1925,1989,
49,91,154,192,271,333,397,476,573,586,642,724,822,841,952,1000,1081,1142,1169,1272,1281,1360,1454,1479,1562,1642,1722,1751,1801,1893,1932,1990,
24,127,171,233,312,377,402,484,512,618,655,735,828,869,955,988,1058,1099,1171,1228,1326,1395,1414,1533,1580,1603,1698,1767,1813,1892,1928,1991,
26,120,142,239,302,372,396,449,574,631,670,758,785,858,938,1020,1028,1091,1196,1277,1304,1353,1433,1500,1578,1640,1697,1731,1849,1918,1939,1992,
51,75,152,196,307,320,408,501,517,583,652,714,777,865,946,970,1045,1129,1155,1265,1294,1403,1419,1484,1550,1625,1723,1771,1842,1864,1962,1993,
10,73,166,251,301,373,444,508,537,628,693,763,815,861,911,985,1079,1131,1215,1234,1299,1394,1470,1515,1571,1629,1669,1741,1797,1908,1981,1994,
7,108,146,226,313,379,437,504,529,606,683,751,817,872,900,967,1026,1093,1168,1247,1293,1361,1439,1476,1558,1608,1713,1758,1795,1903,1967,1995,
23,66,175,228,286,336,392,452,567,596,688,720,779,895,907,1008,1040,1115,1195,1262,1305,1345,1452,1513,1549,1647,1708,1729,1830,1856,1955,1996,
50,116,178,253,279,328,390,475,569,601,682,733,801,851,903,998,1083,1112,1172,1244,1341,1376,1467,1498,1579,1646,1664,1739,1851,1904,1924,1997,
27,107,161,212,297,366,425,494,531,595,694,748,798,837,914,1003,1049,1128,1205,1222,1334,1400,1449,1502,1563,1609,1709,1753,1838,1910,1937,1998,
60,74,169,209,295,368,446,480,553,607,667,730,814,888,937,997,1052,1092,1159,1275,1289,1374,1427,1481,1594,1618,1715,1733,1829,1867,1952,1999,
14,121,134,225,267,330,433,468,550,580,660,708,778,857,956,1009,1035,1132,1193,1217,1287,1359,1417,1520,1555,1662,1672,1762,1796,1859,1934,2000,
48,89,186,252,288,352,424,500,566,636,678,761,818,870,942,982,1043,1102,1203,1274,1322,1363,1422,1519,1592,1657,1727,1765,1843,1897,1975,2001,
58,113,130,229,275,349,391,450,530,591,676,766,788,885,930,975,1071,1119,1154,1223,1343,1405,1416,1482,1577,1600,1702,1748,1811,1899,1965,2002,
9,87,189,199,266,365,438,465,570,589,648,760,805,867,899,993,1060,1090,1197,1259,1330,1381,1428,1491,1581,1658,1704,1756,1835,1861,1970,2003,
52,72,137,216,296,329,406,510,540,624,669,709,776,845,912,991,1067,1100,1163,1252,1321,1380,1464,1535,1560,1601,1666,1784,1809,1883,1964,2004,
18,76,160,250,280,369,430,488,557,582,656,745,786,835,927,963,1063,1114,1166,1270,1288,1406,1457,1530,1599,1621,1688,1773,1794,1880,1976,2005,
21,118,179,197,311,339,404,478,528,632,647,738,800,840,909,984,1074,1094,1212,1268,1335,1352,1412,1472,1598,1613,1685,1780,1798,1896,1949,2006,
4,94,165,211,272,356,389,483,538,623,677,756,780,834,950,971,1034,1123,1157,1240,1303,1396,1410,1531,1561,1651,1701,1776,1840,1860,1942,2007,
12,93,153,254,309,327,393,477,552,590,661,754,809,846,940,962,1053,1126,1185,1261,1327,1391,1445,1474,1570,1653,1665,1787,1816,1900,1960,2008,
40,119,185,220,294,337,435,489,532,637,692,726,812,882,945,992,1039,1109,1174,1248,1301,1344,1466,1494,1551,1615,1705,1747,1815,1870,1958,2009,
29,65,135,223,298,351,411,462,561,605,653,747,795,875,939,976,1027,1117,1181,1239,1286,1392,1453,1486,1546,1637,1675,1766,1841,1887,1930,2010,
36,109,150,206,277,331,410,455,564,629,690,734,803,893,951,1007,1059,1145,1177,1269,1290,1398,1444,1524,1536,1634,1692,1752,1850,1858,1951,2011,
32,104,132,214,316,360,436,473,547,603,675,725,831,891,924,968,1072,1134,1188,1253,1332,1355,1411,1526,1547,1650,1726,1740,1831,1868,1938,2012,
43,64,173,242,315,363,445,471,555,588,679,755,820,863,917,1005,1087,1141,1211,1221,1308,1347,1458,1488,1553,1614,1673,1772,1826,1882,1929,2013,
3,105,163,231,278,346,426,506,520,592,658,739,827,884,935,990,1069,1137,1167,1245,1307,1385,1426,1510,1573,1654,1687,1785,1792,1862,1959,2014,
22,111,168,238,287,354,421,464,572,634,697,707,823,871,933,994,1047,1148,1153,1219,1333,1387,1450,1507,1565,1624,1667,1737,1827,1891,1943,2015,
8,68,162,234,268,382,384,451,516,610,696,731,771,862,905,973,1037,1108,1204,1267,1342,1349,1424,1523,1540,1641,1696,1782,1833,1894,1974,2016,
59,123,174,245,263,371,422,505,575,609,659,705,794,892,926,1012,1042,1127,1173,1271,1323,1371,1409,1487,1542,1612,1699,1760,1853,1877,1935,2017,
28,98,147,205,256,378,428,472,523,635,668,753,813,876,913,1011,1036,1113,1186,1250,1318,1368,1413,1527,1567,1622,1682,1750,1845,1885,1972,2018,
41,100,140,224,264,374,385,456,546,581,649,757,799,844,904,974,1048,1101,1201,1226,1280,1384,1455,1497,1589,1636,1690,1755,1820,1913,1957,2019,
56,125,158,210,270,322,440,487,565,625,644,736,787,868,934,983,1084,1133,1183,1225,1319,1348,1431,1514,1586,1616,1718,1749,1822,1902,1961,2020,
38,84,156,198,290,345,415,511,551,620,640,712,819,842,918,964,1077,1146,1161,1251,1325,1388,1430,1485,1539,1645,1707,1761,1847,1909,1940,2021,
16,81,191,230,282,364,417,485,539,576,645,711,769,890,949,1022,1032,1098,1214,1260,1282,1358,1456,1495,1566,1648,1714,1734,1806,1905,1979,2022,
6,97,149,243,257,350,442,470,571,621,651,737,784,894,910,960,1030,1143,1156,1241,1337,1375,1465,1509,1543,1631,1710,1790,1803,1916,1978,2023,
11,124,136,195,259,338,401,474,521,627,671,746,829,873,947,1023,1065,1121,1213,1236,1312,1346,1446,1489,1576,1639,1721,1745,1819,1876,1941,2024,
5,101,190,240,284,370,398,453,536,584,663,727,807,849,932,966,1086,1111,1162,1216,1314,1356,1441,1518,1593,1604,1681,1743,1846,1895,1950,2025,
17,71,157,218,306,383,414,492,518,639,701,722,797,848,936,986,1073,1116,1198,1237,1339,1370,1408,1521,1564,1656,1700,1778,1823,1881,1931,2026,
53,88,141,208,303,335,441,491,559,614,703,704,802,874,915,978,1064,1110,1191,1243,1298,1350,1442,1504,1574,1663,1686,1736,1793,1869,1926,2027,
46,122,172,213,319,380,418,454,549,616,665,723,796,883,954,1016,1031,1122,1209,1263,1295,1379,1448,1512,1588,1659,1674,1786,1810,1901,1920,2028,
1,69,133,207,283,358,388,463,554,578,687,729,808,864,953,1018,1078,1095,1207,1255,1311,1382,1468,1477,1568,1607,1706,1777,1844,1914,1927,2029,
62,83,170,219,260,348,405,507,548,600,684,749,781,859,916,980,1046,1151,1179,1230,1338,1365,1460,1529,1597,1630,1719,1744,1854,1866,1933,2030,
34,126,155,255,293,353,439,502,560,597,700,741,774,832,925,1002,1070,1106,1200,1232,1315,1373,1435,1473,1537,1649,1671,1791,1805,1911,1953,2031,
55,92,159,248,310,347,386,448,533,613,664,716,792,860,906,999,1044,1104,1187,1257,1285,1401,1437,1532,1583,1635,1716,1759,1848,1889,1945,2032,
42,95,138,203,281,359,400,503,526,577,641,718,790,866,901,1015,1029,1139,1178,1279,1302,1390,1462,1480,1591,1623,1694,1783,1814,1879,1983,2033,
33,78,177,201,291,332,443,509,544,617,674,743,825,886,896,979,1033,1097,1208,1276,1336,1397,1421,1503,1556,1655,1684,1757,1817,1884,1922,2034,
63,86,176,236,305,325,409,466,542,587,691,765,783,878,902,1019,1075,1147,1192,1229,1283,1393,1418,1522,1545,1605,1689,1742,1800,1878,1947,2035,
47,114,139,194,285,343,412,458,514,604,662,762,770,853,908,989,1051,1138,1160,1256,1297,1404,1434,1508,1552,1620,1683,1746,1808,1890,1969,2036,
15,103,148,244,314,341,395,496,535,638,672,715,824,855,928,1006,1050,1105,1184,1233,1340,1364,1461,1496,1548,1602,1695,1788,1836,1863,1966,2037,
39,110,129,235,317,376,403,498,522,585,686,742,791,880,920,977,1076,1089,1158,1266,1306,1383,1438,1528,1559,1643,1668,1764,1825,1919,1982,2038,
13,106,187,202,300,334,431,460,513,599,666,719,775,839,958,987,1085,1120,1206,1220,1309,1369,1471,1478,1582,1633,1724,1763,1832,1874,1946,2039,
61,117,128,249,308,321,420,482,543,579,695,752,806,836,897,1001,1066,1144,1210,1254,1292,1357,1425,1493,1538,1638,1679,1789,1828,1872,1923,2040,
2,77,188,217,273,375,427,479,527,608,698,706,830,852,922,981,1061,1118,1189,1264,1300,1389,1459,1475,1587,1632,1677,1735,1839,1907,1956,2041,
44,96,131,241,262,342,423,495,558,611,681,740,804,879,944,1010,1024,1103,1165,1278,1328,1402,1469,1516,1575,1644,1712,1779,1799,1865,1973,2042,
20,82,151,215,269,326,434,459,519,594,689,750,789,856,941,1013,1062,1107,1164,1258,1317,1354,1420,1506,1544,1617,1670,1774,1818,1915,1944,2043,
19,70,143,200,265,357,394,499,556,602,654,764,793,889,957,996,1068,1149,1190,1224,1324,1399,1463,1511,1557,1610,1720,1728,1804,1906,1954,2044,
45,102,181,204,276,381,413,469,541,630,643,744,772,843,921,1004,1025,1125,1199,1227,1320,1377,1429,1505,1572,1628,1711,1775,1855,1873,1968,2045,
54,115,183,246,299,355,399,486,545,619,650,710,811,877,898,969,1080,1124,1180,1273,1331,1367,1432,1517,1554,1626,1678,1781,1824,1857,1948,2046,
35,67,145,222,318,340,387,457,524,626,646,713,810,887,931,1021,1055,1150,1175,1218,1291,1372,1415,1490,1595,1661,1725,1738,1837,1888,1977,2047,
30,112,167,221,304,344,419,467,563,622,657,759,773,838,948,965,1057,1096,1152,1246,1310,1366,1423,1483,1585,1619,1693,1730,1852,1912,1980,1985,
26,100,183,228,259,368,417,498,569,616,703,718,817,855,897,1018,1057,1131,1171,1232,1314,1387,1437,1526,1542,1653,1704,1770,1822,1899,1922,1984,
31,113,168,222,305,345,420,468,564,623,658,760,774,839,949,966,1058,1097,1152,1247,1311,1367,1424,1484,1586,1620,1694,1731,1853,1913,1981,1986,
0,91,165,248,293,324,433,482,563,634,681,705,783,882,920,962,1083,1141,1177,1236,1297,1379,1452,1502,1591,1607,1718,1769,1835,1887,1964,1987,
32,81,181,194,262,363,385,462,526,594,700,733,827,848,930,973,1042,1136,1183,1243,1285,1352,1441,1500,1585,1661,1692,1771,1813,1872,1972,1988,
38,86,145,238,275,362,430,491,535,613,686,722,822,851,944,996,1039,1088,1203,1239,1317,1345,1448,1535,1597,1628,1677,1733,1803,1876,1937,1989,
58,80,185,233,290,325,408,494,516,599,674,729,768,834,924,1015,1055,1137,1195,1250,1330,1363,1444,1493,1570,1612,1681,1755,1808,1918,1926,1990,
50,92,155,192,272,334,398,477,574,587,643,725,823,842,953,1001,1082,1143,1170,1273,1282,1361,1455,1480,1563,1643,1723,1752,1802,1894,1933,1991,
25,65,172,234,313,378,403,485,512,619,656,736,829,870,956,989,1059,1100,1172,1229,1327,1396,1415,1534,1581,1604,1699,1768,1814,1893,1929,1992,
27,121,143,240,303,373,397,450,575,632,671,759,786,859,939,1021,1029,1092,1197,1278,1305,1354,1434,1501,1579,1641,1698,1732,1850,1919,1940,1993,
52,76,153,197,308,320,409,502,518,584,653,715,778,866,947,971,1046,1130,1156,1266,1295,1404,1420,1485,1551,1626,1724,1772,1843,1865,1963,1994,
11,74,167,252,302,374,445,509,538,629,694,764,816,862,912,986,1080,1132,1153,1235,1300,1395,1471,1516,1572,1630,1670,1742,1798,1909,1982,1995,
8,109,147,227,314,380,438,505,530,607,684,752,818,873,901,968,1027,1094,1169,1248,1294,1362,1440,1477,1559,1609,1714,1759,1796,1904,1968,1996,
24,67,176,229,287,337,393,453,568,597,689,721,780,833,908,1009,1041,1116,1196,1263,1306,1346,1453,1514,1550,1648,1709,1730,1831,1856,1956,1997,
51,117,179,254,280,329,391,476,570,602,683,734,802,852,904,999,1084,1113,1173,1245,1342,1377,1468,1499,1580,1647,1664,1740,1852,1905,1925,1998,
28,108,162,213,298,367,426,495,532,596,695,749,799,838,915,1004,1050,1129,1206,1223,1335,1401,1450,1503,1564,1610,1710,1754,1839,1911,1938,1999,
61,75,170,210,296,369,447,481,554,608,668,731,815,889,938,998,1053,1093,1160,1276,1290,1375,1428,1482,1595,1619,1716,1734,1830,1868,1953,2000,
15,122,135,226,268,331,434,469,551,581,661,709,779,858,957,1010,1036,1133,1194,1218,1288,1360,1418,1521,1556,1663,1673,1763,1797,1860,1935,2001,
49,90,187,253,289,353,425,501,567,637,679,762,819,871,943,983,1044,1103,1204,1275,1323,1364,1423,1520,1593,1658,1665,1766,1844,1898,1976,2002,
59,114,131,230,276,350,392,451,531,592,677,767,789,886,931,976,1072,1120,1155,1224,1281,1406,1417,1483,1578,1600,1703,1749,1812,1900,1966,2003,
10,88,190,200,267,366,439,466,571,590,649,761,806,868,900,994,1061,1091,1198,1260,1331,1382,1429,1492,1582,1659,1705,1757,1836,1862,1971,2004,
53,73,138,217,297,330,407,511,541,625,670,710,777,846,913,992,1068,1101,1164,1253,1322,1381,1465,1473,1561,1602,1667,1785,1810,1884,1965,2005,
19,77,161,251,281,370,431,489,558,583,657,746,787,836,928,964,1064,1115,1167,1271,1289,1407,1458,1531,1537,1622,1689,1774,1795,1881,1977,2006,
22,119,180,198,312,340,405,479,529,633,648,739,801,841,910,985,1075,1095,1213,1269,1336,1353,1413,1472,1599,1614,1686,1781,1799,1897,1950,2007,
5,95,166,212,273,357,390,484,539,624,678,757,781,835,951,972,1035,1124,1158,1241,1304,1397,1411,1532,1562,1652,1702,1777,1841,1861,1943,2008,
13,94,154,255,310,328,394,478,553,591,662,755,810,847,941,963,1054,1127,1186,1262,1328,1392,1446,1475,1571,1654,1666,1788,1817,1901,1961,2009,
41,120,186,221,295,338,436,490,533,638,693,727,813,883,946,993,1040,1110,1175,1249,1302,1344,1467,1495,1552,1616,1706,1748,1816,1871,1959,2010,
30,66,136,224,299,352,412,463,562,606,654,748,796,876,940,977,1028,1118,1182,1240,1287,1393,1454,1487,1547,1638,1676,1767,1842,1888,1931,2011,
37,110,151,207,278,332,411,456,565,630,691,735,804,894,952,1008,1060,1146,1178,1270,1291,1399,1445,1525,1536,1635,1693,1753,1851,1859,1952,2012,
33,105,133,215,317,361,437,474,548,604,676,726,769,892,925,969,1073,1135,1189,1254,1333,1356,1412,1527,1548,1651,1727,1741,1832,1869,1939,2013,
44,64,174,243,316,364,446,472,556,589,680,756,821,864,918,1006,1025,1142,1212,1222,1309,1348,1459,1489,1554,1615,1674,1773,1827,1883,1930,2014,
4,106,164,232,279,347,427,507,521,593,659,740,828,885,936,991,1070,1138,1168,1246,1308,1386,1427,1511,1574,1655,1688,1786,1792,1863,1960,2015,
23,112,169,239,288,355,422,465,573,635,698,708,824,872,934,995,1048,1149,1154,1220,1334,1388,1451,1508,1566,1625,1668,1738,1828,1892,1944,2016,
9,69,163,235,269,383,384,452,517,611,697,732,772,863,906,974,1038,1109,1205,1268,1343,1350,1425,1524,1541,1642,1697,1783,1834,1895,1975,2017,
60,124,175,246,264,372,423,506,513,610,660,706,795,893,927,1013,1043,1128,1174,1272,1324,1372,1410,1488,1543,1613,1700,1761,1854,1878,1936,2018,
29,99,148,206,256,379,429,473,524,636,669,754,814,877,914,1012,1037,1114,1187,1251,1319,1369,1414,1528,1568,1623,1683,1751,1846,1886,1973,2019,
42,101,141,225,265,375,386,457,547,582,650,758,800,845,905,975,1049,1102,1202,1227,1280,1385,1456,1498,1590,1637,1691,1756,1821,1914,1958,2020,
57,126,159,211,271,323,441,488,566,626,645,737,788,869,935,984,1085,1134,1184,1226,1320,1349,1432,1515,1587,1617,1719,1750,1823,1903,1962,2021,
39,85,157,199,291,346,416,449,552,621,640,713,820,843,919,965,1078,1147,1162,1252,1326,1389,1431,1486,1540,1646,1708,1762,1848,1910,1941,2022,
17,82,129,231,283,365,418,486,540,576,646,712,770,891,950,1023,1033,1099,1215,1261,1283,1359,1457,1496,1567,1649,1715,1735,1807,1906,1980,2023,
7,98,150,244,258,351,443,471,572,622,652,738,785,895,911,960,1031,1144,1157,1242,1338,1376,1466,1510,1544,1632,1711,1791,1804,1917,1979,2024,
12,125,137,196,260,339,402,475,522,628,672,747,830,874,948,961,1066,1122,1214,1237,1313,1347,1447,1490,1577,1640,1722,1746,1820,1877,1942,2025,
6,102,191,241,285,371,399,454,537,585,664,728,808,850,933,967,1087,1112,1163,1216,1315,1357,1442,1519,1594,1605,1682,1744,1847,1896,1951,2026,
18,72,158,219,307,321,415,493,519,577,702,723,798,849,937,987,1074,1117,1199,1238,1340,1371,1408,1522,1565,1657,1701,1779,1824,1882,1932,2027,
54,89,142,209,304,336,442,492,560,615,641,704,803,875,916,979,1065,1111,1192,1244,1299,1351,1443,1505,1575,1601,1687,1737,1794,1870,1927,2028,
47,123,173,214,257,381,419,455,550,617,666,724,797,884,955,1017,1032,1123,1210,1264,1296,1380,1449,1513,1589,1660,1675,1787,1811,1902,1920,2029,
2,70,134,208,284,359,389,464,555,579,688,730,809,865,954,1019,1079,1096,1208,1256,1312,1383,1469,1478,1569,1608,1707,1778,1845,1915,1928,2030,
63,84,171,220,261,349,406,508,549,601,685,750,782,860,917,981,1047,1089,1180,1231,1339,1366,1461,1530,1598,1631,1720,1745,1855,1867,1934,2031,
35,127,156,193,294,354,440,503,561,598,701,742,775,832,926,1003,1071,1107,1201,1233,1316,1374,1436,1474,1538,1650,1672,1729,1806,1912,1954,2032,
56,93,160,249,311,348,387,448,534,614,665,717,793,861,907,1000,1045,1105,1188,1258,1286,1402,1438,1533,1584,1636,1717,1760,1849,1890,1946,2033,
43,96,139,204,282,360,401,504,527,578,642,719,791,867,902,1016,1030,1140,1179,1217,1303,1391,1463,1481,1592,1624,1695,1784,1815,1880,1921,2034,
34,79,178,202,292,333,444,510,545,618,675,744,826,887,896,980,1034,1098,1209,1277,1337,1398,1422,1504,1557,1656,1685,1758,1818,1885,1923,2035,
1,87,177,237,306,326,410,467,543,588,692,766,784,879,903,1020,1076,1148,1193,1230,1284,1394,1419,1523,1546,1606,1690,1743,1801,1879,1948,2036,
48,115,140,195,286,344,413,459,515,605,663,763,771,854,909,990,1052,1139,1161,1257,1298,1405,1435,1509,1553,1621,1684,1747,1809,1891,1970,2037,
16,104,149,245,315,342,396,497,536,639,673,716,825,856,929,1007,1051,1106,1185,1234,1341,1365,1462,1497,1549,1603,1696,1789,1837,1864,1967,2038,
40,111,130,236,318,377,404,499,523,586,687,743,792,881,921,978,1077,1090,1159,1267,1307,1384,1439,1529,1560,1644,1669,1765,1826,1857,1983,2039,
14,107,188,203,301,335,432,461,514,600,667,720,776,840,959,988,1086,1121,1207,1221,1310,1370,1409,1479,1583,1634,1725,1764,1833,1875,1947,2040,
62,118,128,250,309,322,421,483,544,580,696,753,807,837,898,1002,1067,1145,1211,1255,1293,1358,1426,1494,1539,1639,1680,1790,1829,1873,1924,2041,
3,78,189,218,274,376,428,480,528,609,699,707,831,853,923,982,1062,1119,1190,1265,1301,1390,1460,1476,1588,1633,1678,1736,1840,1908,1957,2042,
45,97,132,242,263,343,424,496,559,612,682,741,805,880,945,1011,1024,1104,1166,1279,1329,1403,1470,1517,1576,1645,1713,1780,1800,1866,1974,2043,
21,83,152,216,270,327,435,460,520,595,690,751,790,857,942,1014,1063,1108,1165,1259,1318,1355,1421,1507,1545,1618,1671,1775,1819,1916,1945,2044,
20,71,144,201,266,358,395,500,557,603,655,765,794,890,958,997,1069,1150,1191,1225,1325,1400,1464,1512,1558,1611,1721,1728,1805,1907,1955,2045,
46,103,182,205,277,382,414,470,542,631,644,745,773,844,922,1005,1026,1126,1200,1228,1321,1378,1430,1506,1573,1629,1712,1776,1793,1874,1969,2046,
55,116,184,247,300,356,400,487,546,620,651,711,812,878,899,970,1081,1125,1181,1274,1332,1368,1433,1518,1555,1627,1679,1782,1825,1858,1949,2047,
36,68,146,223,319,341,388,458,525,627,647,714,811,888,932,1022,1056,1151,1176,1219,1292,1373,1416,1491,1596,1662,1726,1739,1838,1889,1978,1985,
27,101,184,229,260,369,418,499,570,617,641,719,818,856,898,1019,1058,1132,1172,1233,1315,1388,1438,1527,1543,1654,1705,1771,1823,1900,1923,1984,
37,69,147,224,257,342,389,459,526,628,648,715,812,889,933,1023,1057,1089,1177,1220,1293,1374,1417,1492,1597,1663,1727,1740,1839,1890,1979,1986,
32,114,169,223,306,346,421,469,565,624,659,761,775,840,950,967,1059,1098,1152,1248,1312,1368,1425,1485,1587,1621,1695,1732,1854,1914,1982,1987,
0,92,166,249,294,325,434,483,564,635,682,706,784,883,921,963,1084,1142,1178,1237,1298,1380,1453,1503,1592,1608,1719,1770,1836,1888,1965,1988,
33,82,182,195,263,364,386,463,527,595,701,734,828,849,931,974,1043,1137,1184,1244,1286,1353,1442,1501,1586,1662,1693,1772,1814,1873,1973,1989,
39,87,146,239,276,363,431,492,536,614,687,723,823,852,945,997,1040,1088,1204,1240,1318,1346,1449,1473,1598,1629,1678,1734,1804,1877,1938,1990,
59,81,186,234,291,326,409,495,517,600,675,730,768,835,925,1016,1056,1138,1196,1251,1331,1364,1445,1494,1571,1613,1682,1756,1809,1919,1927,1991,
51,93,156,192,273,335,399,478,575,588,644,726,824,843,954,1002,1083,1144,1171,1274,1283,1362,1456,1481,1564,1644,1724,1753,1803,1895,1934,1992,
26,66,173,235,314,379,404,486,512,620,657,737,830,871,957,990,1060,1101,1173,1230,1328,1397,1416,1535,1582,1605,1700,1769,1815,1894,1930,1993,
28,122,144,241,304,374,398,451,513,633,672,760,787,860,940,1022,1030,1093,1198,1279,1306,1355,1435,1502,1580,1642,1699,1733,1851,1857,1941,1994,
53,77,154,198,309,320,410,503,519,585,654,716,779,867,948,972,1047,1131,1157,1267,1296,1405,1421,1486,1552,1627,1725,1773,1844,1866,1964,1995,
12,75,168,253,303,375,446,510,539,630,695,765,817,863,913,987,1081,1133,1154,1236,1301,1396,1409,1517,1573,1631,1671,1743,1799,1910,1983,1996,
9,110,148,228,315,381,439,506,531,608,685,753,819,874,902,969,1028,1095,1170,1249,1295,1363,1441,1478,1560,1610,1715,1760,1797,1905,1969,1997,
25,68,177,230,288,338,394,454,569,598,690,722,781,834,909,1010,1042,1117,1197,1264,1307,1347,1454,1515,1551,1649,1710,1731,1832,1856,1957,1998,
52,118,180,255,281,330,392,477,571,603,684,735,803,853,905,1000,1085,1114,1174,1246,1343,1378,1469,1500,1581,1648,1664,1741,1853,1906,1926,1999,
29,109,163,214,299,368,427,496,533,597,696,750,800,839,916,1005,1051,1130,1207,1224,1336,1402,1451,1504,1565,1611,1711,1755,1840,1912,1939,2000,
62,76,171,211,297,370,385,482,555,609,669,732,816,890,939,999,1054,1094,1161,1277,1291,1376,1429,1483,1596,1620,1717,1735,1831,1869,1954,2001,
16,123,136,227,269,332,435,470,552,582,662,710,780,859,958,1011,1037,1134,1195,1219,1289,1361,1419,1522,1557,1601,1674,1764,1798,1861,1936,2002,
50,91,188,254,290,354,426,502,568,638,680,763,820,872,944,984,1045,1104,1205,1276,1324,1365,1424,1521,1594,1659,1666,1767,1845,1899,1977,2003,
60,115,132,231,277,351,393,452,532,593,678,705,790,887,932,977,1073,1121,1156,1225,1282,1407,1418,1484,1579,1600,1704,1750,1813,1901,1967,2004,
11,89,191,201,268,367,440,467,572,591,650,762,807,869,901,995,1062,1092,1199,1261,1332,1383,1430,1493,1583,1660,1706,1758,1837,1863,1972,2005,
54,74,139,218,298,331,408,449,542,626,671,711,778,847,914,993,1069,1102,1165,1254,1323,1382,1466,1474,1562,1603,1668,1786,1811,1885,1966,2006,
20,78,162,252,282,371,432,490,559,584,658,747,788,837,929,965,1065,1116,1168,1272,1290,1345,1459,1532,1538,1623,1690,1775,1796,1882,1978,2007,
23,120,181,199,313,341,406,480,530,634,649,740,802,842,911,986,1076,1096,1214,1270,1337,1354,1414,1472,1537,1615,1687,1782,1800,1898,1951,2008,
6,96,167,213,274,358,391,485,540,625,679,758,782,836,952,973,1036,1125,1159,1242,1305,1398,1412,1533,1563,1653,1703,1778,1842,1862,1944,2009,
14,95,155,193,311,329,395,479,554,592,663,756,811,848,942,964,1055,1128,1187,1263,1329,1393,1447,1476,1572,1655,1667,1789,1818,1902,1962,2010,
42,121,187,222,296,339,437,491,534,639,694,728,814,884,947,994,1041,1111,1176,1250,1303,1344,1468,1496,1553,1617,1707,1749,1817,1872,1960,2011,
31,67,137,225,300,353,413,464,563,607,655,749,797,877,941,978,1029,1119,1183,1241,1288,1394,1455,1488,1548,1639,1677,1768,1843,1889,1932,2012,
38,111,152,208,279,333,412,457,566,631,692,736,805,895,953,1009,1061,1147,1179,1271,1292,1400,1446,1526,1536,1636,1694,1754,1852,1860,1953,2013,
34,106,134,216,318,362,438,475,549,605,677,727,770,893,926,970,1074,1136,1190,1255,1334,1357,1413,1528,1549,1652,1665,1742,1833,1870,1940,2014,
45,64,175,244,317,365,447,473,557,590,681,757,822,865,919,1007,1026,1143,1213,1223,1310,1349,1460,1490,1555,1616,1675,1774,1828,1884,1931,2015,
5,107,165,233,280,348,428,508,522,594,660,741,829,886,937,992,1071,1139,1169,1247,1309,1387,1428,1512,1575,1656,1689,1787,1792,1864,1961,2016,
24,113,170,240,289,356,423,466,574,636,699,709,825,873,935,996,1049,1150,1155,1221,1335,1389,1452,1509,1567,1626,1669,1739,1829,1893,1945,2017,
10,70,164,236,270,321,384,453,518,612,698,733,773,864,907,975,1039,1110,1206,1269,1281,1351,1426,1525,1542,1643,1698,1784,1835,1896,1976,2018,
61,125,176,247,265,373,424,507,514,611,661,707,796,894,928,1014,1044,1129,1175,1273,1325,1373,1411,1489,1544,1614,1701,1762,1855,1879,1937,2019,
30,100,149,207,256,380,430,474,525,637,670,755,815,878,915,1013,1038,1115,1188,1252,1320,1370,1415,1529,1569,1624,1684,1752,1847,1887,1974,2020,
43,102,142,226,266,376,387,458,548,583,651,759,801,846,906,976,1050,1103,1203,1228,1280,1386,1457,1499,1591,1638,1692,1757,1822,1915,1959,2021,
58,127,160,212,272,324,442,489,567,627,646,738,789,870,936,985,1086,1135,1185,1227,1321,1350,1433,1516,1588,1618,1720,1751,1824,1904,1963,2022,
40,86,158,200,292,347,417,450,553,622,640,714,821,844,920,966,1079,1148,1163,1253,1327,1390,1432,1487,1541,1647,1709,1763,1849,1911,1942,2023,
18,83,130,232,284,366,419,487,541,576,647,713,771,892,951,961,1034,1100,1153,1262,1284,1360,1458,1497,1568,1650,1716,1736,1808,1907,1981,2024,
8,99,151,245,259,352,444,472,573,623,653,739,786,833,912,960,1032,1145,1158,1243,1339,1377,1467,1511,1545,1633,1712,1729,1805,1918,1980,2025,
13,126,138,197,261,340,403,476,523,629,673,748,831,875,949,962,1067,1123,1215,1238,1314,1348,1448,1491,1578,1641,1723,1747,1821,1878,1943,2026,
7,103,129,242,286,372,400,455,538,586,665,729,809,851,934,968,1025,1113,1164,1216,1316,1358,1443,1520,1595,1606,1683,1745,1848,1897,1952,2027,
19,73,159,220,308,322,416,494,520,578,703,724,799,850,938,988,1075,1118,1200,1239,1341,1372,1408,1523,1566,1658,1702,1780,1825,1883,1933,2028,
55,90,143,210,305,337,443,493,561,616,642,704,804,876,917,980,1066,1112,1193,1245,1300,1352,1444,1506,1576,1602,1688,1738,1795,1871,1928,2029,
48,124,174,215,258,382,420,456,551,618,667,725,798,885,956,1018,1033,1124,1211,1265,1297,1381,1450,1514,1590,1661,1676,1788,1812,1903,1920,2030,
3,71,135,209,285,360,390,465,556,580,689,731,810,866,955,1020,1080,1097,1209,1257,1313,1384,1470,1479,1570,1609,1708,1779,1846,1916,1929,2031,
1,85,172,221,262,350,407,509,550,602,686,751,783,861,918,982,1048,1090,1181,1232,1340,1367,1462,1531,1599,1632,1721,1746,1793,1868,1935,2032,
36,65,157,194,295,355,441,504,562,599,702,743,776,832,927,1004,1072,1108,1202,1234,1317,1375,1437,1475,1539,1651,1673,1730,1807,1913,1955,2033,
57,94,161,250,312,349,388,448,535,615,666,718,794,862,908,1001,1046,1106,1189,1259,1287,1403,1439,1534,1585,1637,1718,1761,1850,1891,1947,2034,
44,97,140,205,283,361,402,505,528,579,643,720,792,868,903,1017,1031,1141,1180,1218,1304,1392,1464,1482,1593,1625,1696,1785,1816,1881,1922,2035,
35,80,179,203,293,334,445,511,546,619,676,745,827,888,896,981,1035,1099,1210,1278,1338,1399,1423,1505,1558,1657,1686,1759,1819,1886,1924,2036,
2,88,178,238,307,327,411,468,544,589,693,767,785,880,904,1021,1077,1149,1194,1231,1285,1395,1420,1524,1547,1607,1691,1744,1802,1880,1949,2037,
49,116,141,196,287,345,414,460,516,606,664,764,772,855,910,991,1053,1140,1162,1258,1299,1406,1436,1510,1554,1622,1685,1748,1810,1892,1971,2038,
17,105,150,246,316,343,397,498,537,577,674,717,826,857,930,1008,1052,1107,1186,1235,1342,1366,1463,1498,1550,1604,1697,1790,1838,1865,1968,2039,
41,112,131,237,319,378,405,500,524,587,688,744,793,882,922,979,1078,1091,1160,1268,1308,1385,1440,1530,1561,1645,1670,1766,1827,1858,1921,2040,
15,108,189,204,302,336,433,462,515,601,668,721,777,841,897,989,1087,1122,1208,1222,1311,1371,1410,1480,1584,1635,1726,1765,1834,1876,1948,2041,
63,119,128,251,310,323,422,484,545,581,697,754,808,838,899,1003,1068,1146,1212,1256,1294,1359,1427,1495,1540,1640,1681,1791,1830,1874,1925,2042,
4,79,190,219,275,377,429,481,529,610,700,708,769,854,924,983,1063,1120,1191,1266,1302,1391,1461,1477,1589,1634,1679,1737,1841,1909,1958,2043,
46,98,133,243,264,344,425,497,560,613,683,742,806,881,946,1012,1024,1105,1167,1217,1330,1404,1471,1518,1577,1646,1714,1781,1801,1867,1975,2044,
22,84,153,217,271,328,436,461,521,596,691,752,791,858,943,1015,1064,1109,1166,1260,1319,1356,1422,1508,1546,1619,1672,1776,1820,1917,1946,2045,
21,72,145,202,267,359,396,501,558,604,656,766,795,891,959,998,1070,1151,1192,1226,1326,1401,1465,1513,1559,1612,1722,1728,1806,1908,1956,2046,
47,104,183,206,278,383,415,471,543,632,645,746,774,845,923,1006,1027,1127,1201,1229,1322,1379,1431,1507,1574,1630,1713,1777,1794,1875,1970,2047,
56,117,185,248,301,357,401,488,547,621,652,712,813,879,900,971,1082,1126,1182,1275,1333,1369,1434,1519,1556,1628,1680,1783,1826,1859,1950,1985,
28,102,185,230,261,370,419,500,571,618,642,720,819,857,899,1020,1059,1133,1173,1234,1316,1389,1439,1528,1544,1655,1706,1772,1824,1901,1924,1984,
57,118,186,249,302,358,402,489,548,622,653,713,814,880,901,972,1083,1127,1183,1276,1334,1370,1435,1520,1557,1629,1681,1784,1827,1860,1951,1986,
38,70,148,225,258,343,390,460,527,629,649,716,813,890,934,961,1058,1090,1178,1221,1294,1375,1418,1493,1598,1601,1665,1741,1840,1891,1980,1987,
33,115,170,224,307,347,422,470,566,625,660,762,776,841,951,968,1060,1099,1152,1249,1313,1369,1426,1486,1588,1622,1696,1733,1855,1915,1983,1988,
0,93,167,250,295,326,435,484,565,636,683,707,785,884,922,964,1085,1143,1179,1238,1299,1381,1454,1504,1593,1609,1720,1771,1837,1889,1966,1989,
34,83,183,196,264,365,387,464,528,596,702,735,829,850,932,975,1044,1138,1185,1245,1287,1354,1443,1502,1587,1663,1694,1773,1815,1874,1974,1990,
40,88,147,240,277,364,432,493,537,615,688,724,824,853,946,998,1041,1088,1205,1241,1319,1347,1450,1474,1599,1630,1679,1735,1805,1878,1939,1991,
60,82,187,235,292,327,410,496,518,601,676,731,768,836,926,1017,1057,1139,1197,1252,1332,1365,1446,1495,1572,1614,1683,1757,1810,1857,1928,1992,
52,94,157,192,274,336,400,479,513,589,645,727,825,844,955,1003,1084,1145,1172,1275,1284,1363,1457,1482,1565,1645,1725,1754,1804,1896,1935,1993,
27,67,174,236,315,380,405,487,512,621,658,738,831,872,958,991,1061,1102,1174,1231,1329,1398,1417,1473,1583,1606,1701,1770,1816,1895,1931,1994,
29,123,145,242,305,375,399,452,514,634,673,761,788,861,941,1023,1031,1094,1199,1217,1307,1356,1436,1503,1581,1643,1700,1734,1852,1858,1942,1995,
54,78,155,199,310,320,411,504,520,586,655,717,780,868,949,973,1048,1132,1158,1268,1297,1406,1422,1487,1553,1628,1726,1774,1845,1867,1965,1996,
13,76,169,254,304,376,447,511,540,631,696,766,818,864,914,988,1082,1134,1155,1237,1302,1397,1410,1518,1574,1632,1672,1744,1800,1911,1921,1997,
10,111,149,229,316,382,440,507,532,609,686,754,820,875,903,970,1029,1096,1171,1250,1296,1364,1442,1479,1561,1611,1716,1761,1798,1906,1970,1998,
26,69,178,231,289,339,395,455,570,599,691,723,782,835,910,1011,1043,1118,1198,1265,1308,1348,1455,1516,1552,1650,1711,1732,1833,1856,1958,1999,
53,119,181,193,282,331,393,478,572,604,685,736,804,854,906,1001,1086,1115,1175,1247,1281,1379,1470,1501,1582,1649,1664,1742,1854,1907,1927,2000,
30,110,164,215,300,369,428,497,534,598,697,751,801,840,917,1006,1052,1131,1208,1225,1337,1403,1452,1505,1566,1612,1712,1756,1841,1913,1940,2001,
63,77,172,212,298,371,386,483,556,610,670,733,817,891,940,1000,1055,1095,1162,1278,1292,1377,1430,1484,1597,1621,1718,1736,1832,1870,1955,2002,
17,124,137,228,270,333,436,471,553,583,663,711,781,860,959,1012,1038,1135,1196,1220,1290,1362,1420,1523,1558,1602,1675,1765,1799,1862,1937,2003,
51,92,189,255,291,355,427,503,569,639,681,764,821,873,945,985,1046,1105,1206,1277,1325,1366,1425,1522,1595,1660,1667,1768,1846,1900,1978,2004,
61,116,133,232,278,352,394,453,533,594,679,706,791,888,933,978,1074,1122,1157,1226,1283,1345,1419,1485,1580,1600,1705,1751,1814,1902,1968,2005,
12,90,129,202,269,368,441,468,573,592,651,763,808,870,902,996,1063,1093,1200,1262,1333,1384,1431,1494,1584,1661,1707,1759,1838,1864,1973,2006,
55,75,140,219,299,332,409,450,543,627,672,712,779,848,915,994,1070,1103,1166,1255,1324,1383,1467,1475,1563,1604,1669,1787,1812,1886,1967,2007,
21,79,163,253,283,372,433,491,560,585,659,748,789,838,930,966,1066,1117,1169,1273,1291,1346,1460,1533,1539,1624,1691,1776,1797,1883,1979,2008,
24,121,182,200,314,342,407,481,531,635,650,741,803,843,912,987,1077,1097,1215,1271,1338,1355,1415,1472,1538,1616,1688,1783,1801,1899,1952,2009,
7,97,168,214,275,359,392,486,541,626,680,759,783,837,953,974,1037,1126,1160,1243,1306,1399,1413,1534,1564,1654,1704,1779,1843,1863,1945,2010,
15,96,156,194,312,330,396,480,555,593,664,757,812,849,943,965,1056,1129,1188,1264,1330,1394,1448,1477,1573,1656,1668,1790,1819,1903,1963,2011,
43,122,188,223,297,340,438,492,535,577,695,729,815,885,948,995,1042,1112,1177,1251,1304,1344,1469,1497,1554,1618,1708,1750,1818,1873,1961,2012,
32,68,138,226,301,354,414,465,564,608,656,750,798,878,942,979,1030,1120,1184,1242,1289,1395,1456,1489,1549,1640,1678,1769,1844,1890,1933,2013,
39,112,153,209,280,334,413,458,567,632,693,737,806,833,954,1010,1062,1148,1180,1272,1293,1401,1447,1527,1536,1637,1695,1755,1853,1861,1954,2014,
35,107,135,217,319,363,439,476,550,606,678,728,771,894,927,971,1075,1137,1191,1256,1335,1358,1414,1529,1550,1653,1666,1743,1834,1871,1941,2015,
46,64,176,245,318,366,385,474,558,591,682,758,823,866,920,1008,1027,1144,1214,1224,1311,1350,1461,1491,1556,1617,1676,1775,1829,1885,1932,2016,
6,108,166,234,281,349,429,509,523,595,661,742,830,887,938,993,1072,1140,1170,1248,1310,1388,1429,1513,1576,1657,1690,1788,1792,1865,1962,2017,
25,114,171,241,290,357,424,467,575,637,700,710,826,874,936,997,1050,1151,1156,1222,1336,1390,1453,1510,1568,1627,1670,1740,1830,1894,1946,2018,
11,71,165,237,271,322,384,454,519,613,699,734,774,865,908,976,1040,1111,1207,1270,1282,1352,1427,1526,1543,1644,1699,1785,1836,1897,1977,2019,
62,126,177,248,266,374,425,508,515,612,662,708,797,895,929,1015,1045,1130,1176,1274,1326,1374,1412,1490,1545,1615,1702,1763,1793,1880,1938,2020,
31,101,150,208,256,381,431,475,526,638,671,756,816,879,916,1014,1039,1116,1189,1253,1321,1371,1416,1530,1570,1625,1685,1753,1848,1888,1975,2021,
44,103,143,227,267,377,388,459,549,584,652,760,802,847,907,977,1051,1104,1204,1229,1280,1387,1458,1500,1592,1639,1693,1758,1823,1916,1960,2022,
59,65,161,213,273,325,443,490,568,628,647,739,790,871,937,986,1087,1136,1186,1228,1322,1351,1434,1517,1589,1619,1721,1752,1825,1905,1964,2023,
41,87,159,201,293,348,418,451,554,623,640,715,822,845,921,967,1080,1149,1164,1254,1328,1391,1433,1488,1542,1648,1710,1764,1850,1912,1943,2024,
19,84,131,233,285,367,420,488,542,576,648,714,772,893,952,962,1035,1101,1154,1263,1285,1361,1459,1498,1569,1651,1717,1737,1809,1908,1982,2025,
9,100,152,246,260,353,445,473,574,624,654,740,787,834,913,960,1033,1146,1159,1244,1340,1378,1468,1512,1546,1634,1713,1730,1806,1919,1981,2026,
14,127,139,198,262,341,404,477,524,630,674,749,769,876,950,963,1068,1124,1153,1239,1315,1349,1449,1492,1579,1642,1724,1748,1822,1879,1944,2027,
8,104,130,243,287,373,401,456,539,587,666,730,810,852,935,969,1026,1114,1165,1216,1317,1359,1444,1521,1596,1607,1684,1746,1849,1898,1953,2028,
20,74,160,221,309,323,417,495,521,579,641,725,800,851,939,989,1076,1119,1201,1240,1342,1373,1408,1524,1567,1659,1703,1781,1826,1884,1934,2029,
56,91,144,211,306,338,444,494,562,617,643,704,805,877,918,981,1067,1113,1194,1246,1301,1353,1445,1507,1577,1603,1689,1739,1796,1872,1929,2030,
49,125,175,216,259,383,421,457,552,619,668,726,799,886,957,1019,1034,1125,1212,1266,1298,1382,1451,1515,1591,1662,1677,1789,1813,1904,1920,2031,
4,72,136,210,286,361,391,466,557,581,690,732,811,867,956,1021,1081,1098,1210,1258,1314,1385,1471,1480,1571,1610,1709,1780,1847,1917,1930,2032,
2,86,173,222,263,351,408,510,551,603,687,752,784,862,919,983,1049,1091,1182,1233,1341,1368,1463,1532,1537,1633,1722,1747,1794,1869,1936,2033,
37,66,158,195,296,356,442,505,563,600,703,744,777,832,928,1005,1073,1109,1203,1235,1318,1376,1438,1476,1540,1652,1674,1731,1808,1914,1956,2034,
58,95,162,251,313,350,389,448,536,616,667,719,795,863,909,1002,1047,1107,1190,1260,1288,1404,1440,1535,1586,1638,1719,1762,1851,1892,1948,2035,
45,98,141,206,284,362,403,506,529,580,644,721,793,869,904,1018,1032,1142,1181,1219,1305,1393,1465,1483,1594,1626,1697,1786,1817,1882,1923,2036,
36,81,180,204,294,335,446,449,547,620,677,746,828,889,896,982,1036,1100,1211,1279,1339,1400,1424,1506,1559,1658,1687,1760,1820,1887,1925,2037,
3,89,179,239,308,328,412,469,545,590,694,705,786,881,905,1022,1078,1150,1195,1232,1286,1396,1421,1525,1548,1608,1692,1745,1803,1881,1950,2038,
50,117,142,197,288,346,415,461,517,607,665,765,773,856,911,992,1054,1141,1163,1259,1300,1407,1437,1511,1555,1623,1686,1749,1811,1893,1972,2039,
18,106,151,247,317,344,398,499,538,578,675,718,827,858,931,1009,1053,1108,1187,1236,1343,1367,1464,1499,1551,1605,1698,1791,1839,1866,1969,2040,
42,113,132,238,257,379,406,501,525,588,689,745,794,883,923,980,1079,1092,1161,1269,1309,1386,1441,1531,1562,1646,1671,1767,1828,1859,1922,2041,
16,109,190,205,303,337,434,463,516,602,669,722,778,842,898,990,1025,1123,1209,1223,1312,1372,1411,1481,1585,1636,1727,1766,1835,1877,1949,2042,
1,120,128,252,311,324,423,485,546,582,698,755,809,839,900,1004,1069,1147,1213,1257,1295,1360,1428,1496,1541,1641,1682,1729,1831,1875,1926,2043,
5,80,191,220,276,378,430,482,530,611,701,709,770,855,925,984,1064,1121,1192,1267,1303,1392,1462,1478,1590,1635,1680,1738,1842,1910,1959,2044,
47,99,134,244,265,345,426,498,561,614,684,743,807,882,947,1013,1024,1106,1168,1218,1331,1405,1409,1519,1578,1647,1715,1782,1802,1868,1976,2045,
23,85,154,218,272,329,437,462,522,597,692,753,792,859,944,1016,1065,1110,1167,1261,1320,1357,1423,1509,1547,1620,1673,1777,1821,1918,1947,2046,
22,73,146,203,268,360,397,502,559,605,657,767,796,892,897,999,1071,1089,1193,1227,1327,1402,1466,1514,1560,1613,1723,1728,1807,1909,1957,2047,
48,105,184,207,279,321,416,472,544,633,646,747,775,846,924,1007,1028,1128,1202,1230,1323,1380,1432,1508,1575,1631,1714,1778,1795,1876,1971,1985,
29,103,186,231,262,371,420,501,572,619,643,721,820,858,900,1021,1060,1134,1174,1235,1317,1390,1440,1529,1545,1656,1707,1773,1825,1902,1925,1984,
49,106,185,208,280,322,417,473,545,634,647,748,776,847,925,1008,1029,1129,1203,1231,1324,1381,1433,1509,1576,1632,1715,1779,1796,1877,1972,1986,
58,119,187,250,303,359,403,490,549,623,654,714,815,881,902,973,1084,1128,1184,1277,1335,1371,1436,1521,1558,1630,1682,1785,1828,1861,1952,1987,
39,71,149,226,259,344,391,461,528,630,650,717,814,891,935,962,1059,1091,1179,1222,1295,1376,1419,1494,1599,1602,1666,1742,1841,1892,1981,1988,
34,116,171,225,308,348,423,471,567,626,661,763,777,842,952,969,1061,1100,1152,1250,1314,1370,1427,1487,1589,1623,1697,1734,1793,1916,1921,1989,
0,94,168,251,296,327,436,485,566,637,684,708,786,885,923,965,1086,1144,1180,1239,1300,1382,1455,1505,1594,1610,1721,1772,1838,1890,1967,1990,
35,84,184,197,265,366,388,465,529,597,703,736,830,851,933,976,1045,1139,1186,1246,1288,1355,1444,1503,1588,1601,1695,1774,1816,1875,1975,1991,
41,89,148,241,278,365,433,494,538,616,689,725,825,854,947,999,1042,1088,1206,1242,1320,1348,1451,1475,1537,1631,1680,1736,1806,1879,1940,1992,
61,83,188,236,293,328,411,497,519,602,677,732,768,837,927,1018,1058,1140,1198,1253,1333,1366,1447,1496,1573,1615,1684,1758,1811,1858,1929,1993,
53,95,158,192,275,337,401,480,514,590,646,728,826,845,956,1004,1085,1146,1173,1276,1285,1364,1458,1483,1566,1646,1726,1755,1805,1897,1936,1994,
28,68,175,237,316,381,406,488,512,622,659,739,769,873,959,992,1062,1103,1175,1232,1330,1399,1418,1474,1584,1607,1702,1771,1817,1896,1932,1995,
30,124,146,243,306,376,400,453,515,635,674,762,789,862,942,961,1032,1095,1200,1218,1308,1357,1437,1504,1582,1644,1701,1735,1853,1859,1943,1996,
55,79,156,200,311,320,412,505,521,587,656,718,781,869,950,974,1049,1133,1159,1269,1298,1407,1423,1488,1554,1629,1727,1775,1846,1868,1966,1997,
14,77,170,255,305,377,385,449,541,632,697,767,819,865,915,989,1083,1135,1156,1238,1303,1398,1411,1519,1575,1633,1673,1745,1801,1912,1922,1998,
11,112,150,230,317,383,441,508,533,610,687,755,821,876,904,971,1030,1097,1172,1251,1297,1365,1443,1480,1562,1612,1717,1762,1799,1907,1971,1999,
27,70,179,232,290,340,396,456,571,600,692,724,783,836,911,1012,1044,1119,1199,1266,1309,1349,1456,1517,1553,1651,1712,1733,1834,1856,1959,2000,
54,120,182,194,283,332,394,479,573,605,686,737,805,855,907,1002,1087,1116,1176,1248,1282,1380,1471,1502,1583,1650,1664,1743,1855,1908,1928,2001,
31,111,165,216,301,370,429,498,535,599,698,752,802,841,918,1007,1053,1132,1209,1226,1338,1404,1453,1506,1567,1613,1713,1757,1842,1914,1941,2002,
1,78,173,213,299,372,387,484,557,611,671,734,818,892,941,1001,1056,1096,1163,1279,1293,1378,1431,1485,1598,1622,1719,1737,1833,1871,1956,2003,
18,125,138,229,271,334,437,472,554,584,664,712,782,861,897,1013,1039,1136,1197,1221,1291,1363,1421,1524,1559,1603,1676,1766,1800,1863,1938,2004,
52,93,190,193,292,356,428,504,570,577,682,765,822,874,946,986,1047,1106,1207,1278,1326,1367,1426,1523,1596,1661,1668,1769,1847,1901,1979,2005,
62,117,134,233,279,353,395,454,534,595,680,707,792,889,934,979,1075,1123,1158,1227,1284,1346,1420,1486,1581,1600,1706,1752,1815,1903,1969,2006,
13,91,130,203,270,369,442,469,574,593,652,764,809,871,903,997,1064,1094,1201,1263,1334,1385,1432,1495,1585,1662,1708,1760,1839,1865,1974,2007,
56,76,141,220,300,333,410,451,544,628,673,713,780,849,916,995,1071,1104,1167,1256,1325,1384,1468,1476,1564,1605,1670,1788,1813,1887,1968,2008,
22,80,164,254,284,373,434,492,561,586,660,749,790,839,931,967,1067,1118,1170,1274,1292,1347,1461,1534,1540,1625,1692,1777,1798,1884,1980,2009,
25,122,183,201,315,343,408,482,532,636,651,742,804,844,913,988,1078,1098,1153,1272,1339,1356,1416,1472,1539,1617,1689,1784,1802,1900,1953,2010,
8,98,169,215,276,360,393,487,542,627,681,760,784,838,954,975,1038,1127,1161,1244,1307,1400,1414,1535,1565,1655,1705,1780,1844,1864,1946,2011,
16,97,157,195,313,331,397,481,556,594,665,758,813,850,944,966,1057,1130,1189,1265,1331,1395,1449,1478,1574,1657,1669,1791,1820,1904,1964,2012,
44,123,189,224,298,341,439,493,536,578,696,730,816,886,949,996,1043,1113,1178,1252,1305,1344,1470,1498,1555,1619,1709,1751,1819,1874,1962,2013,
33,69,139,227,302,355,415,466,565,609,657,751,799,879,943,980,1031,1121,1185,1243,1290,1396,1457,1490,1550,1641,1679,1770,1845,1891,1934,2014,
40,113,154,210,281,335,414,459,568,633,694,738,807,834,955,1011,1063,1149,1181,1273,1294,1402,1448,1528,1536,1638,1696,1756,1854,1862,1955,2015,
36,108,136,218,257,364,440,477,551,607,679,729,772,895,928,972,1076,1138,1192,1257,1336,1359,1415,1530,1551,1654,1667,1744,1835,1872,1942,2016,
47,64,177,246,319,367,386,475,559,592,683,759,824,867,921,1009,1028,1145,1215,1225,1312,1351,1462,1492,1557,1618,1677,1776,1830,1886,1933,2017,
7,109,167,235,282,350,430,510,524,596,662,743,831,888,939,994,1073,1141,1171,1249,1311,1389,1430,1514,1577,1658,1691,1789,1792,1866,1963,2018,
26,115,172,242,291,358,425,468,513,638,701,711,827,875,937,998,1051,1089,1157,1223,1337,1391,1454,1511,1569,1628,1671,1741,1831,1895,1947,2019,
12,72,166,238,272,323,384,455,520,614,700,735,775,866,909,977,1041,1112,1208,1271,1283,1353,1428,1527,1544,1645,1700,1786,1837,1898,1978,2020,
63,127,178,249,267,375,426,509,516,613,663,709,798,833,930,1016,1046,1131,1177,1275,1327,1375,1413,1491,1546,1616,1703,1764,1794,1881,1939,2021,
32,102,151,209,256,382,432,476,527,639,672,757,817,880,917,1015,1040,1117,1190,1254,1322,1372,1417,1531,1571,1626,1686,1754,1849,1889,1976,2022,
45,104,144,228,268,378,389,460,550,585,653,761,803,848,908,978,1052,1105,1205,1230,1280,1388,1459,1501,1593,1640,1694,1759,1824,1917,1961,2023,
60,66,162,214,274,326,444,491,569,629,648,740,791,872,938,987,1025,1137,1187,1229,1323,1352,1435,1518,1590,1620,1722,1753,1826,1906,1965,2024,
42,88,160,202,294,349,419,452,555,624,640,716,823,846,922,968,1081,1150,1165,1255,1329,1392,1434,1489,1543,1649,1711,1765,1851,1913,1944,2025,
20,85,132,234,286,368,421,489,543,576,649,715,773,894,953,963,1036,1102,1155,1264,1286,1362,1460,1499,1570,1652,1718,1738,1810,1909,1983,2026,
10,101,153,247,261,354,446,474,575,625,655,741,788,835,914,960,1034,1147,1160,1245,1341,1379,1469,1513,1547,1635,1714,1731,1807,1857,1982,2027,
15,65,140,199,263,342,405,478,525,631,675,750,770,877,951,964,1069,1125,1154,1240,1316,1350,1450,1493,1580,1643,1725,1749,1823,1880,1945,2028,
9,105,131,244,288,374,402,457,540,588,667,731,811,853,936,970,1027,1115,1166,1216,1318,1360,1445,1522,1597,1608,1685,1747,1850,1899,1954,2029,
21,75,161,222,310,324,418,496,522,580,642,726,801,852,940,990,1077,1120,1202,1241,1343,1374,1408,1525,1568,1660,1704,1782,1827,1885,1935,2030,
57,92,145,212,307,339,445,495,563,618,644,704,806,878,919,982,1068,1114,1195,1247,1302,1354,1446,1508,1578,1604,1690,1740,1797,1873,1930,2031,
50,126,176,217,260,321,422,458,553,620,669,727,800,887,958,1020,1035,1126,1213,1267,1299,1383,1452,1516,1592,1663,1678,1790,1814,1905,1920,2032,
5,73,137,211,287,362,392,467,558,582,691,733,812,868,957,1022,1082,1099,1211,1259,1315,1386,1409,1481,1572,1611,1710,1781,1848,1918,1931,2033,
3,87,174,223,264,352,409,511,552,604,688,753,785,863,920,984,1050,1092,1183,1234,1342,1369,1464,1533,1538,1634,1723,1748,1795,1870,1937,2034,
38,67,159,196,297,357,443,506,564,601,641,745,778,832,929,1006,1074,1110,1204,1236,1319,1377,1439,1477,1541,1653,1675,1732,1809,1915,1957,2035,
59,96,163,252,314,351,390,448,537,617,668,720,796,864,910,1003,1048,1108,1191,1261,1289,1405,1441,1473,1587,1639,1720,1763,1852,1893,1949,2036,
46,99,142,207,285,363,404,507,530,581,645,722,794,870,905,1019,1033,1143,1182,1220,1306,1394,1466,1484,1595,1627,1698,1787,1818,1883,1924,2037,
37,82,181,205,295,336,447,450,548,621,678,747,829,890,896,983,1037,1101,1212,1217,1340,1401,1425,1507,1560,1659,1688,1761,1821,1888,1926,2038,
4,90,180,240,309,329,413,470,546,591,695,706,787,882,906,1023,1079,1151,1196,1233,1287,1397,1422,1526,1549,1609,1693,1746,1804,1882,1951,2039,
51,118,143,198,289,347,416,462,518,608,666,766,774,857,912,993,1055,1142,1164,1260,1301,1345,1438,1512,1556,1624,1687,1750,1812,1894,1973,2040,
19,107,152,248,318,345,399,500,539,579,676,719,828,859,932,1010,1054,1109,1188,1237,1281,1368,1465,1500,1552,1606,1699,1729,1840,1867,1970,2041,
43,114,133,239,258,380,407,502,526,589,690,746,795,884,924,981,1080,1093,1162,1270,1310,1387,1442,1532,1563,1647,1672,1768,1829,1860,1923,2042,
17,110,191,206,304,338,435,464,517,603,670,723,779,843,899,991,1026,1124,1210,1224,1313,1373,1412,1482,1586,1637,1665,1767,1836,1878,1950,2043,
2,121,128,253,312,325,424,486,547,583,699,756,810,840,901,1005,1070,1148,1214,1258,1296,1361,1429,1497,1542,1642,1683,1730,1832,1876,1927,2044,
6,81,129,221,277,379,431,483,531,612,702,710,771,856,926,985,1065,1122,1193,1268,1304,1393,1463,1479,1591,1636,1681,1739,1843,1911,1960,2045,
48,100,135,245,266,346,427,499,562,615,685,744,808,883,948,1014,1024,1107,1169,1219,1332,1406,1410,1520,1579,1648,1716,1783,1803,1869,1977,2046,
24,86,155,219,273,330,438,463,523,598,693,754,793,860,945,1017,1066,1111,1168,1262,1321,1358,1424,1510,1548,1621,1674,1778,1822,1919,1948,2047,
23,74,147,204,269,361,398,503,560,606,658,705,797,893,898,1000,1072,1090,1194,1228,1328,1403,1467,1515,1561,1614,1724,1728,1808,1910,1958,1985。
Appendix B: the row and/or the column permutation of " root LDPC sign indicating number "
384 * 2048 LDPC matrix, Hb
The result that this LDPC parity matrix generates for the displacement of " root LDPC sign indicating number " being carried out row and/or row, the LDPC parity matrix that described " root LDPC sign indicating number " is corresponding provides in appendix A.In other words, this parity matrix is to generate in the LDPC parity matrix from appendix A.This LDPC parity check matrix H, the corresponding LDPC sign indicating number of realizing according to IEEE 802.3an (10GBASE-T) standard; This matrix also is published in " IEEE Draft P802.3an/D2.1 ".
Hb=
53,110,170,224,279,332,447,505,616,668,1496,1497,1498,1499,1500,1501,1502,1503,1505,1509,1514,1519,1525,1532,1536,1552,1575,1607,1648,1687,1718,1724,
51,139,223,241,307,356,408,476,515,600,617,689,762,797,854,927,990,1023,1059,1077,1138,1200,1292,1442,1488,1522,1535,1550,1585,1681,1994,1996,
50,92,138,222,240,306,355,407,475,599,688,761,853,989,1003,1022,1076,1137,1199,1291,1441,1521,1534,1549,1584,1707,1808,1837,1904,1948,2003,2007,
91,137,221,239,305,474,514,598,687,760,796,852,926,988,1021,1075,1136,1290,1440,1520,1533,1548,1647,1680,1801,1824,1833,1845,1850,1919,1940,1942,
49,90,220,238,304,354,406,473,513,597,667,686,759,795,851,887,925,987,1074,1135,1198,1289,1583,1646,1679,1747,1892,1901,1907,1944,1977,1978,
48,89,136,219,237,303,353,405,472,512,596,666,685,758,794,830,850,924,986,1020,1073,1134,1197,1275,1288,1383,1439,1547,1582,1645,1678,1725,
47,88,135,218,236,302,352,404,471,511,595,665,684,757,777,793,849,923,985,1019,1072,1133,1196,1274,1287,1382,1438,1546,1581,1644,1706,1726,
46,87,134,217,235,301,351,403,470,510,594,664,683,722,756,792,848,922,984,1018,1071,1132,1195,1273,1286,1381,1437,1545,1580,1677,1705,1727,
45,133,216,402,469,593,682,755,847,983,1017,1070,1131,1194,1272,1380,1436,1544,1643,1676,1788,1792,1859,1886,1891,1902,1924,1965,1997,2019,2037,2038,
44,86,132,215,234,300,350,391,401,468,509,592,663,681,754,791,846,921,982,1016,1069,1130,1193,1271,1285,1379,1435,1543,1579,1642,1675,1728,
43,85,131,233,349,467,508,662,753,790,845,920,981,1015,1270,1378,1455,1542,1578,1641,1674,1704,1830,1895,1918,1971,1981,1982,1993,2009,2013,2014,
42,84,130,214,232,348,400,591,661,680,752,789,844,919,1014,1068,1129,1269,1434,1454,1541,1577,1640,1673,1764,1829,1843,1860,1867,1914,1946,1951,
41,83,129,213,231,299,347,399,466,507,590,660,679,751,788,843,918,980,1067,1128,1192,1268,1284,1377,1433,1453,1487,1540,1639,1672,1703,1729,
82,128,212,230,298,346,398,465,506,589,659,678,750,787,842,917,979,1013,1066,1127,1191,1267,1283,1376,1432,1452,1576,1638,1671,1702,1750,1810,
40,81,127,211,229,297,345,397,464,560,588,658,677,749,786,841,916,978,1012,1065,1126,1190,1266,1375,1431,1451,1486,1531,1539,1637,1778,1811,
39,80,126,210,228,296,344,396,559,657,785,840,915,977,1011,1064,1125,1189,1265,1374,1450,1483,1530,1701,1753,1809,1842,1910,1925,1937,1953,1961,
38,125,209,227,295,343,395,463,587,656,676,748,839,976,1010,1063,1124,1188,1264,1373,1430,1482,1529,1538,1636,1670,1700,1900,2006,2023,2034,2036,
37,79,124,208,226,294,342,394,462,558,586,655,675,747,784,838,914,975,1009,1062,1123,1187,1263,1372,1429,1449,1481,1528,1699,1786,1807,1812,
36,78,123,207,225,293,341,393,461,557,585,654,674,746,783,837,913,974,1008,1061,1122,1186,1262,1371,1428,1448,1480,1527,1537,1635,1698,1730,
35,77,122,278,340,460,556,584,745,782,836,912,973,1261,1370,1447,1479,1526,1634,1669,1697,1772,1849,1884,1885,1957,1964,1986,1989,2028,2041,2042,
34,76,277,292,339,459,555,583,673,781,911,972,1007,1121,1185,1260,1328,1427,1446,1478,1508,1633,1696,1770,1773,1787,1844,1852,1854,1857,1858,1876,
33,75,121,206,276,291,338,392,458,554,653,672,744,780,835,910,971,1006,1111,1120,1184,1259,1327,1369,1425,1426,1445,1477,1632,1668,1932,1934,
32,74,120,205,275,290,337,446,457,582,671,743,834,970,1119,1183,1258,1326,1368,1390,1424,1507,1631,1765,1793,1795,1882,1903,1941,1987,2032,2035,
31,73,119,204,274,289,336,445,456,553,581,652,742,779,833,909,969,1005,1109,1118,1182,1257,1325,1367,1389,1423,1444,1476,1630,1754,1802,1813,
30,72,118,203,273,288,335,444,455,552,580,651,670,741,778,832,908,968,1004,1117,1181,1324,1366,1388,1422,1443,1506,1667,1695,1760,1784,1814,
29,71,117,202,287,443,454,551,579,650,669,740,831,907,967,1107,1116,1180,1256,1323,1365,1387,1466,1504,1629,1759,1766,1800,1841,1862,1875,1877,
28,70,116,201,272,286,334,442,453,550,578,649,721,739,829,886,906,966,1058,1106,1115,1179,1255,1322,1364,1386,1421,1465,1558,1666,1694,1731,
27,69,115,200,285,441,452,549,648,720,738,828,885,905,965,1057,1105,1178,1321,1385,1420,1464,1557,1665,1769,1780,1828,1839,1848,1869,1933,1935,
26,68,114,199,271,333,440,451,548,577,647,719,737,827,884,904,964,1056,1104,1114,1177,1254,1320,1363,1384,1419,1463,1556,1628,1664,1693,1732,
25,67,113,270,450,547,576,646,883,903,1055,1103,1253,1319,1362,1418,1462,1555,1627,1758,1781,1803,1894,1898,1913,1922,1955,1960,1980,1985,1988,1990,
24,66,112,198,269,284,390,439,449,546,575,645,718,736,882,902,963,1054,1102,1176,1252,1318,1334,1361,1417,1461,1513,1663,1692,1771,1806,1815,
23,65,197,283,389,438,448,545,574,644,717,735,826,881,901,962,1053,1101,1175,1251,1317,1333,1360,1416,1460,1554,1626,1782,1790,1921,1952,1962,
22,64,111,268,388,504,544,573,643,734,825,880,900,961,1052,1250,1316,1359,1459,1662,1691,1742,1826,1831,1943,1958,1959,1973,1999,2008,2027,2029,
21,63,169,196,267,282,387,437,503,543,572,642,716,733,824,879,899,960,1051,1100,1174,1249,1315,1332,1358,1415,1458,1512,1574,1625,1690,1733,
20,62,168,195,266,281,386,436,502,542,571,641,715,732,823,878,898,959,1050,1099,1173,1248,1314,1331,1414,1511,1573,1606,1624,1661,1822,1878,
19,61,167,194,265,280,385,435,501,541,570,640,714,731,822,877,897,958,1049,1098,1172,1247,1313,1330,1357,1413,1510,1605,1623,1660,1689,1734,
18,60,166,264,384,434,500,540,639,821,896,957,1048,1171,1246,1329,1356,1412,1604,1622,1659,1743,1873,1888,1947,1950,1969,1976,1995,2002,2022,2030,
17,59,165,193,263,331,383,433,499,539,569,638,713,730,820,876,895,956,1047,1097,1163,1170,1245,1282,1312,1355,1572,1603,1621,1658,1688,1735,
16,58,164,192,262,330,382,432,498,538,568,637,712,729,875,894,955,1046,1096,1162,1244,1281,1311,1411,1518,1571,1620,1767,1881,1897,1909,1915,
15,57,163,191,261,329,381,431,497,537,567,636,711,728,819,874,893,954,1045,1095,1161,1243,1280,1310,1354,1410,1517,1570,1602,1619,1657,1736,
14,56,162,260,380,430,496,536,566,635,727,818,873,892,953,1044,1160,1242,1279,1353,1409,1569,1601,1618,1656,1717,1856,1912,1974,1984,1991,1992,
13,55,161,190,259,328,379,429,495,535,565,634,710,726,817,872,891,952,1043,1094,1159,1278,1309,1352,1408,1568,1600,1617,1716,1748,1755,1816,
12,54,160,189,258,327,378,428,494,534,564,633,709,725,816,871,890,951,1042,1093,1158,1241,1308,1351,1407,1516,1553,1567,1616,1655,1715,1737,
109,159,188,257,326,377,427,493,533,563,632,708,815,870,889,950,1041,1092,1157,1277,1307,1350,1406,1515,1566,1599,1615,1654,1749,1762,1889,1906,
11,108,158,187,256,325,376,426,492,532,562,631,707,724,814,869,888,949,1040,1091,1156,1217,1240,1276,1306,1349,1405,1565,1598,1614,1714,1738,
10,107,157,186,255,324,375,425,491,531,561,630,706,723,813,868,943,948,1039,1090,1155,1216,1224,1305,1348,1404,1564,1597,1653,1713,1756,1817,
9,106,156,185,254,323,374,424,490,530,615,705,776,812,867,947,1038,1154,1215,1223,1239,1304,1347,1403,1563,1596,1613,1791,1825,1832,1861,1879,
8,155,253,373,489,529,614,629,811,942,946,1037,1222,1238,1346,1402,1612,1652,1741,1746,1893,1896,1899,1923,1956,1968,2001,2020,2021,2033,2044,2045,
7,154,322,372,423,488,528,613,704,775,810,941,945,1036,1089,1153,1221,1237,1345,1401,1562,1595,1763,1796,1823,1887,1911,1938,1954,1979,2004,2005,
6,105,153,184,252,321,371,422,487,527,612,628,703,774,809,866,940,944,1035,1088,1152,1214,1220,1236,1303,1344,1400,1561,1594,1611,1651,1739,
5,104,152,183,251,320,370,421,486,526,611,627,702,773,808,865,939,1002,1034,1151,1213,1219,1235,1302,1343,1399,1560,1593,1610,1712,1777,1818,
4,103,182,250,319,369,420,485,525,610,626,701,807,938,1001,1087,1150,1218,1342,1398,1457,1592,1609,1834,1835,1864,1866,1868,1926,1939,1998,2000,
102,151,181,318,368,419,524,609,625,700,772,806,864,937,1000,1033,1086,1149,1169,1212,1234,1301,1341,1397,1559,1711,1872,1908,1916,1945,2024,2026,
3,150,180,249,317,367,418,484,608,699,771,863,936,1032,1085,1148,1168,1211,1233,1340,1396,1456,1650,1776,1836,1905,1917,1930,2025,2031,2046,2047,
2,101,149,179,316,366,417,523,698,770,805,862,935,999,1031,1084,1147,1210,1232,1300,1339,1475,1608,1649,1752,1785,1797,1840,1847,1890,1931,1936,
1,100,148,178,248,315,365,416,483,522,607,624,697,769,804,861,934,998,1030,1083,1146,1167,1209,1231,1299,1338,1395,1474,1494,1591,1710,1740,
0,99,147,177,247,314,364,415,482,521,606,623,696,803,860,933,997,1029,1082,1145,1166,1208,1230,1298,1394,1473,1493,1495,1709,1745,1789,1819,
98,146,176,246,313,363,414,481,520,605,622,695,768,802,859,932,996,1081,1144,1165,1207,1229,1297,1337,1472,1485,1590,1686,1723,1798,1804,1820,
97,145,175,312,362,413,480,519,604,621,694,767,801,858,931,995,1028,1080,1143,1164,1206,1228,1336,1393,1471,1589,1685,1838,1851,1870,1928,1929,
144,174,245,311,361,412,479,603,693,766,857,994,1027,1113,1142,1205,1227,1296,1470,1484,1722,1751,1757,1774,1794,1874,1920,1927,1983,2012,2015,2017,
96,143,173,244,310,360,411,478,518,692,765,800,993,1026,1112,1141,1204,1226,1295,1469,1492,1588,1684,1721,1744,1768,1846,1853,1871,1883,1966,1972,
95,142,172,243,309,359,410,477,517,602,620,691,764,856,930,992,1025,1079,1110,1140,1203,1225,1294,1335,1392,1468,1491,1683,1719,1799,1805,1821,
94,141,171,242,308,358,409,619,690,799,855,929,1078,1108,1139,1202,1293,1391,1467,1490,1524,1587,1682,1720,1775,1779,1827,1863,1880,2010,2016,2018,
52,93,140,357,516,601,618,763,798,928,991,1024,1060,1201,1489,1523,1551,1586,1708,1761,1783,1855,1865,1949,1963,1967,1970,1975,2011,2039,2040,2043,
53,109,130,245,299,342,442,458,535,580,641,763,796,859,894,944,1038,1074,1158,1171,1245,1287,1346,1416,1574,1582,1664,1740,1902,1960,1992,1994,
51,74,141,189,286,386,399,478,521,587,655,707,757,787,943,982,1015,1100,1190,1231,1360,1402,1466,1557,1621,1669,1718,1787,1851,1855,1978,1980,
50,66,155,244,404,480,531,609,666,701,751,871,933,973,1045,1065,1144,1174,1265,1322,1391,1606,1675,1705,1854,1860,1875,1930,1940,1995,2011,2019,
97,275,322,365,393,449,524,561,638,734,874,960,1003,1042,1069,1154,1248,1313,1353,1405,1483,1500,1561,1702,1811,1812,1833,1849,1900,1926,2014,2020,
49,112,210,256,318,381,417,485,528,601,627,694,741,791,861,897,979,1148,1195,1260,1350,1424,1442,1485,1504,1509,1529,1556,1578,1676,1690,1741,
48,101,135,215,259,283,351,498,602,674,785,836,910,951,1051,1152,1272,1282,1364,1517,1540,1563,1607,1759,1773,1779,1839,1948,1951,1982,2015,2021,
47,104,136,206,246,301,389,407,450,556,572,629,713,762,822,857,921,948,1025,1063,1141,1212,1242,1388,1448,1495,1532,1577,1614,1708,1786,1822,
46,95,176,276,302,353,479,538,650,739,828,883,891,964,1034,1121,1198,1233,1284,1431,1452,1481,1541,1651,1707,1813,1847,1937,1952,2018,2030,2039,
45,75,162,183,243,367,435,493,552,565,657,680,775,867,935,957,1104,1161,1214,1275,1342,1423,1527,1603,1629,1679,1724,1820,1848,1986,2003,2008,
44,56,121,219,328,363,415,507,573,708,723,795,838,923,990,1032,1075,1116,1178,1235,1311,1336,1432,1451,1462,1619,1739,1837,1857,1914,1920,1921,
43,70,125,221,290,384,427,501,532,658,696,764,885,938,1023,1073,1127,1187,1254,1318,1339,1387,1397,1446,1583,1634,1658,1758,1791,1796,1836,1880,
42,81,170,192,278,294,347,436,468,520,615,649,682,740,807,872,903,993,1004,1102,1155,1183,1262,1279,1288,1468,1534,1545,1581,1685,1775,1823,
41,106,124,174,270,332,348,408,481,509,588,619,699,761,810,835,912,997,1041,1086,1143,1188,1257,1286,1365,1460,1475,1547,1609,1653,1694,1742,
119,185,257,293,383,423,477,523,568,624,717,722,731,797,865,908,987,1055,1088,1177,1263,1316,1349,1409,1435,1624,1659,1810,1845,2013,2017,2031,
40,84,159,193,274,288,374,391,395,496,544,590,662,672,772,827,863,913,965,1009,1076,1146,1200,1253,1300,1361,1392,1437,1593,1616,1680,1743,
39,99,167,220,325,430,463,721,742,794,902,947,1035,1103,1207,1331,1371,1401,1512,1521,1567,1727,1769,1776,1777,1801,1866,1883,1891,1950,2026,2032,
38,62,131,182,248,337,397,549,600,632,673,733,869,926,961,1072,1118,1166,1192,1228,1289,1343,1410,1461,1484,1695,1730,1915,1961,1967,2010,2022,
37,72,129,262,409,495,554,563,617,804,846,972,1012,1095,1114,1168,1267,1317,1496,1546,1560,1580,1647,1655,1867,1874,1878,1949,1956,1957,1971,1973,
36,67,165,188,254,298,336,486,543,584,626,685,738,777,829,856,916,1000,1027,1082,1119,1216,1269,1374,1396,1490,1568,1601,1670,1763,1788,1824,
35,73,144,208,232,330,425,448,511,585,633,691,821,850,918,989,1047,1105,1239,1309,1332,1425,1436,1511,1590,1641,1681,1693,1819,1871,1919,1922,
34,61,147,222,310,371,392,453,562,663,676,766,808,854,942,975,1057,1097,1132,1211,1404,1455,1463,1474,1625,1678,1761,1804,1863,1870,1897,1907,
33,132,218,235,313,379,505,558,608,623,677,725,843,924,1052,1087,1217,1232,1277,1319,1363,1389,1652,1768,1770,1772,1815,1872,1909,2016,2038,2043,
32,166,239,343,424,452,559,571,651,703,773,877,934,953,1058,1101,1112,1122,1310,1358,1620,1756,1762,1802,1916,1944,1946,1954,1983,1993,1996,2001,
31,77,128,203,229,331,341,416,503,526,576,683,799,862,963,1046,1124,1206,1268,1426,1459,1544,1554,1731,1765,1832,1842,1853,1869,1917,2000,2005,
30,79,156,204,263,297,377,434,484,616,695,759,813,873,917,958,1014,1150,1179,1227,1278,1315,1354,1399,1438,1700,1799,1903,1911,1929,2037,2040,
29,102,140,184,247,355,438,491,519,575,664,704,752,884,1130,1167,1213,1293,1377,1421,1585,1643,1686,1725,1861,1892,1894,1918,1935,1972,2025,2033,
28,85,168,175,258,307,358,447,459,527,661,756,783,904,952,1084,1142,1181,1291,1330,1383,1559,1630,1703,1834,1841,1846,1881,1882,1888,1923,1925,
27,96,158,191,269,280,344,457,606,690,746,792,845,937,978,1007,1059,1151,1193,1256,1367,1384,1398,1591,1645,1733,1792,1905,1979,1999,2028,2034,
26,103,145,195,242,324,378,432,489,516,613,646,718,726,786,831,887,906,984,1030,1070,1123,1191,1270,1298,1369,1385,1478,1613,1687,1697,1744,
25,78,164,224,231,311,340,413,471,545,581,647,698,765,790,848,919,967,1013,1064,1138,1209,1219,1266,1327,1408,1456,1579,1622,1661,1715,1745,
24,92,194,329,368,421,474,522,579,719,776,780,915,969,1024,1068,1164,1175,1230,1375,1412,1467,1482,1617,1656,1805,1887,1895,1901,1933,1936,1943,
23,63,134,190,234,303,352,443,460,547,611,618,678,732,814,875,932,995,1031,1145,1176,1250,1444,1487,1507,1528,1535,1552,1566,1623,1684,1746,
22,98,150,172,251,380,441,490,560,592,631,675,760,798,870,899,976,1006,1090,1208,1251,1283,1338,1453,1476,1513,1571,1612,1689,1735,1886,1908,
21,65,142,180,260,316,370,419,456,557,595,636,693,748,809,876,900,988,1020,1077,1125,1199,1229,1324,1368,1406,1447,1575,1596,1633,1665,1747,
20,116,199,255,308,356,400,482,518,582,668,714,735,820,866,931,996,1048,1215,1382,1450,1520,1551,1570,1584,1638,1699,1781,1818,1968,2036,2041,
19,76,126,198,261,285,376,402,467,540,612,635,715,750,793,834,925,968,1026,1096,1140,1238,1290,1355,1395,1558,1564,1592,1626,1649,1691,1748,
18,94,120,178,250,295,349,444,492,541,578,692,770,782,840,941,983,1050,1071,1163,1220,1241,1301,1335,1417,1441,1519,1602,1627,1671,1778,1825,
17,58,123,211,273,289,346,420,517,603,684,724,823,830,879,889,954,1357,1472,1488,1508,1516,1525,1674,1710,1831,1840,1850,1884,1912,1997,2002,
16,59,113,214,226,361,440,472,510,589,621,702,774,881,991,1005,1098,1139,1285,1477,1502,1631,1666,1713,1798,1844,1890,1906,1989,2004,2023,2027,
15,93,151,200,265,284,354,410,488,525,614,642,706,802,852,888,956,1022,1062,1131,1197,1236,1326,1366,1538,1553,1573,1604,1642,1650,1712,1749,
14,86,133,179,267,317,388,396,464,530,605,640,769,811,832,939,970,1043,1080,1149,1204,1274,1312,1454,1470,1480,1489,1498,1533,1663,1714,1750,
13,146,197,237,300,338,422,462,593,705,737,806,844,922,966,1044,1089,1172,1225,1351,1418,1428,1443,1497,1526,1709,1783,1806,1966,2012,2044,2046,
12,157,223,272,312,333,412,529,610,700,744,812,853,929,986,1021,1085,1170,1246,1280,1295,1352,1394,1514,1594,1637,1803,1807,1885,1938,1953,1963,
110,127,207,230,323,335,469,586,656,681,728,801,880,895,949,1153,1202,1244,1302,1333,1415,1445,1729,1793,1797,1817,1835,1889,1977,1981,2045,2047,
11,105,115,181,238,296,385,418,500,508,583,643,689,730,826,839,893,950,1029,1108,1147,1184,1299,1376,1471,1523,1548,1595,1644,1683,1717,1751,
10,100,160,171,266,362,454,598,711,754,778,927,985,1129,1169,1186,1258,1303,1337,1588,1615,1672,1732,1734,1767,1858,1893,1927,1939,2007,2029,2042,
9,83,118,212,225,326,345,446,504,536,591,639,710,736,816,847,909,977,1107,1136,1165,1173,1261,1294,1341,1439,1458,1494,1505,1628,1704,1752,
8,90,138,177,252,287,357,405,451,534,567,665,687,747,818,868,911,994,1033,1092,1159,1203,1218,1247,1314,1390,1465,1536,1550,1668,1782,1826,
7,54,148,205,233,305,369,398,497,513,577,652,669,755,788,882,896,999,1028,1060,1094,1157,1321,1340,1473,1518,1524,1598,1640,1667,1698,1753,
6,108,143,202,253,314,339,429,550,570,622,671,729,824,878,928,1011,1066,1134,1194,1243,1305,1329,1393,1440,1503,1610,1677,1728,1737,1794,1827,
5,88,149,216,268,309,387,439,461,553,574,667,712,743,781,842,892,998,1018,1099,1180,1271,1307,1373,1422,1429,1486,1555,1611,1736,1809,1828,
4,68,137,209,264,315,372,433,473,537,564,654,688,771,789,864,920,992,1039,1111,1117,1205,1222,1255,1380,1420,1469,1530,1605,1639,1654,1754,
71,163,187,228,304,390,437,483,514,599,620,709,749,817,905,974,1037,1067,1160,1196,1224,1226,1347,1386,1542,1632,1662,1785,1947,1998,2024,2035,
3,55,111,196,426,455,533,648,679,841,930,981,1016,1093,1135,1185,1273,1325,1345,1449,1537,1576,1657,1701,1808,1864,1877,1913,1931,1934,1965,1974,
2,89,152,249,282,359,406,499,506,594,645,803,833,945,1053,1106,1156,1201,1259,1281,1378,1403,1433,1492,1531,1599,1660,1711,1873,1924,1984,1985,
1,107,154,227,319,445,546,604,659,727,784,851,1002,1056,1081,1126,1306,1359,1413,1427,1464,1522,1648,1688,1800,1879,1941,1942,1945,1955,1969,1975,
0,80,321,360,401,502,515,653,745,805,855,980,1040,1061,1252,1320,1362,1407,1491,1562,1589,1716,1726,1780,1790,1852,1862,1899,1904,1958,2006,2009,
64,161,217,236,291,350,411,466,566,628,670,767,819,901,959,1017,1083,1137,1189,1223,1249,1296,1348,1411,1479,1501,1572,1646,1696,1723,1766,1829,
91,114,201,241,327,375,475,551,607,637,686,768,815,898,962,1036,1128,1182,1264,1328,1379,1400,1565,1673,1760,1771,1774,1789,1865,1928,1990,1991,
82,122,213,279,382,428,470,512,569,630,716,849,914,946,1008,1091,1110,1115,1297,1344,1543,1569,1600,1636,1682,1722,1814,1838,1868,1876,1987,1988,
69,153,240,292,364,414,476,542,634,886,907,1049,1109,1133,1234,1308,1370,1419,1457,1597,1608,1721,1795,1821,1843,1856,1898,1910,1932,1962,1970,1976,
87,169,320,366,431,465,539,596,625,753,800,837,936,1001,1019,1078,1113,1304,1356,1434,1493,1510,1539,1692,1719,1738,1784,1816,1859,1896,1959,1964,
60,139,186,271,281,334,394,487,555,660,720,758,779,860,890,971,1010,1079,1162,1237,1276,1323,1334,1381,1515,1549,1586,1635,1720,1757,1764,1830,
52,57,117,173,277,306,373,403,494,548,597,644,697,825,858,940,955,1054,1120,1210,1221,1240,1292,1372,1414,1430,1499,1506,1587,1618,1706,1755,
53,108,129,198,244,298,341,391,441,457,534,579,640,710,762,795,858,893,1002,1037,1073,1157,1170,1244,1286,1345,1493,1573,1581,1707,1781,1831,
51,56,116,172,276,305,372,402,493,547,596,643,696,824,857,939,954,1053,1107,1119,1209,1220,1291,1371,1413,1429,1499,1586,1617,1655,1705,1756,
50,73,140,188,245,285,385,398,477,520,586,654,706,756,786,835,981,1014,1099,1189,1230,1292,1359,1401,1439,1465,1513,1556,1620,1718,1773,1832,
65,154,206,243,307,334,403,479,530,608,665,700,750,791,870,887,932,972,1044,1064,1143,1173,1264,1321,1377,1551,1572,1605,1608,1674,1792,1833,
49,151,214,274,321,364,448,615,637,704,733,873,914,959,1041,1185,1247,1352,1404,1482,1500,1560,1635,1778,1809,1940,1947,1982,2017,2042,2044,2047,
48,209,255,317,380,416,527,600,626,693,740,790,860,896,978,1058,1147,1194,1259,1349,1423,1441,1509,1528,1555,1577,1675,1878,1929,1938,1945,1952,
47,100,134,258,423,497,518,763,950,1050,1068,1151,1271,1281,1284,1607,1628,1668,1694,1750,1787,1850,1856,1869,1880,1941,1964,1965,2001,2008,2014,2023,
46,103,135,205,388,449,555,571,712,761,821,920,947,1062,1140,1211,1357,1387,1447,1487,1532,1537,1686,1816,1817,1824,1846,1851,1886,1994,2005,2010,
45,94,111,175,275,301,352,408,478,537,607,649,670,738,827,882,890,1097,1120,1197,1232,1283,1451,1480,1540,1636,1777,1845,1894,1939,1949,1953,
44,74,161,182,242,282,366,434,492,551,564,656,679,774,796,934,956,1028,1103,1160,1213,1274,1341,1422,1427,1526,1678,1693,1724,1731,1893,1909,
43,55,120,218,268,327,362,414,466,506,572,653,707,776,794,837,922,989,1031,1074,1115,1177,1310,1431,1450,1461,1618,1680,1712,1744,1794,1834,
42,69,124,220,252,289,383,426,500,531,601,657,695,884,937,999,1022,1072,1126,1186,1253,1317,1338,1386,1396,1445,1582,1633,1746,1779,1815,1881,
41,80,170,191,277,293,346,435,467,519,614,648,681,739,806,871,902,992,1101,1154,1182,1261,1278,1287,1467,1504,1533,1544,1580,1611,1708,1757,
123,173,269,332,347,407,480,508,618,698,760,809,834,911,996,1040,1085,1142,1187,1332,1364,1459,1474,1546,1741,1788,1810,1814,1848,1872,1879,1910,
40,96,118,256,382,422,522,567,623,907,986,1054,1129,1262,1315,1348,1408,1623,1658,1747,1797,1818,1827,1873,1899,1902,1918,1955,1973,1989,1998,2003,
39,83,158,192,273,287,373,394,495,543,589,661,671,771,862,912,964,1008,1075,1145,1199,1252,1299,1360,1391,1436,1455,1592,1615,1679,1688,1758,
38,98,166,219,249,324,333,429,462,553,602,663,720,741,793,876,901,946,1034,1102,1206,1301,1330,1370,1400,1511,1520,1566,1583,1643,1785,1835,
37,61,130,181,247,331,336,396,463,548,599,631,672,732,819,868,925,960,1024,1071,1117,1165,1191,1227,1288,1342,1409,1442,1460,1492,1669,1759,
36,71,128,261,299,494,562,716,775,803,845,971,1011,1266,1316,1457,1496,1535,1545,1646,1654,1689,1854,1890,1946,1948,1972,1980,1991,1997,2032,2039,
35,66,164,187,253,297,335,406,485,542,583,625,684,722,737,828,855,915,1026,1081,1118,1215,1268,1285,1373,1489,1567,1600,1739,1752,1807,1836,
34,72,143,207,231,329,390,424,504,510,584,632,690,768,820,849,917,988,1046,1104,1198,1238,1308,1331,1335,1424,1435,1510,1589,1640,1803,1837,
33,60,146,221,241,309,370,446,452,516,561,662,675,765,807,853,941,974,1056,1096,1131,1210,1275,1296,1354,1403,1454,1462,1473,1624,1726,1838,
32,86,131,217,312,378,392,505,557,622,826,842,923,991,1051,1086,1138,1216,1231,1276,1318,1362,1388,1602,1749,1805,1847,1858,1859,1911,1925,1930,
31,92,165,184,238,342,451,570,650,702,800,933,952,1057,1110,1192,1239,1547,1562,1619,1667,1714,1822,1864,1867,1912,1950,2021,2029,2031,2034,2041,
30,76,127,202,228,330,340,415,502,525,575,628,682,748,798,861,942,962,1045,1079,1123,1205,1267,1300,1363,1390,1458,1543,1711,1742,1802,1839,
29,78,155,203,262,296,376,433,509,616,652,694,758,812,872,916,957,1077,1149,1178,1226,1314,1353,1398,1437,1484,1553,1587,1651,1699,1729,1840,
28,139,183,246,322,490,574,703,751,805,883,930,963,1020,1166,1254,1376,1420,1434,1584,1642,1685,1706,1855,1868,1891,1942,1999,2013,2015,2045,2046,
27,84,167,174,257,306,357,447,458,526,569,660,676,755,782,856,903,951,1005,1083,1141,1180,1234,1290,1329,1382,1421,1456,1595,1657,1702,1760,
26,95,157,343,437,456,558,605,745,844,936,977,1003,1006,1150,1255,1303,1366,1397,1508,1644,1661,1728,1789,1913,1921,1936,1971,1975,1984,2019,2022,
25,102,144,194,323,377,431,488,515,612,645,717,725,785,830,886,905,983,1029,1069,1122,1190,1269,1297,1368,1384,1392,1477,1612,1687,1696,1761,
24,77,163,224,230,310,339,412,470,544,580,646,697,764,789,847,918,966,1012,1063,1137,1208,1218,1265,1326,1337,1407,1475,1578,1621,1660,1762,
23,91,136,271,367,420,473,521,578,624,866,968,1023,1067,1113,1229,1374,1481,1512,1616,1735,1755,1775,1900,1951,1956,1958,1967,1969,1974,1985,1987,
22,62,133,189,233,302,351,442,459,546,610,617,677,731,813,874,931,994,1030,1109,1144,1175,1249,1443,1527,1534,1552,1565,1576,1622,1683,1763,
21,97,149,171,250,300,379,440,489,559,630,674,759,797,869,898,975,1207,1250,1411,1452,1531,1570,1650,1743,1745,1784,1790,1823,1830,1861,1882,
20,64,141,179,259,315,369,418,455,556,594,635,692,747,808,875,899,987,1019,1076,1124,1228,1323,1367,1405,1446,1575,1632,1664,1725,1919,1923,
19,79,115,254,355,399,481,517,581,668,734,865,995,1047,1087,1121,1381,1550,1569,1637,1663,1698,1801,1874,1896,1907,1915,1960,1976,1979,2006,2011,
18,75,125,197,260,375,401,539,611,634,714,749,792,833,924,967,1025,1095,1139,1237,1289,1394,1494,1516,1557,1563,1690,1732,1826,1897,1914,1916,
17,93,119,177,294,348,443,491,540,629,691,769,781,839,940,982,1049,1070,1162,1219,1416,1440,1519,1601,1701,1780,1806,1811,1906,1917,2018,2026,
16,57,122,210,288,345,419,483,667,683,723,777,822,878,888,953,1007,1111,1163,1309,1356,1415,1471,1515,1525,1579,1673,1709,1808,1862,1863,1883,
15,58,112,213,225,292,360,471,588,701,773,784,880,990,1004,1167,1214,1240,1369,1393,1502,1574,1630,1665,1791,1895,1927,1990,2030,2035,2037,2043,
14,150,199,264,283,353,409,487,524,613,641,705,724,801,851,943,955,1021,1061,1130,1196,1235,1277,1325,1365,1603,1641,1649,1734,1786,1996,2000,
13,85,132,178,266,316,387,395,529,604,639,810,831,938,969,1042,1148,1203,1273,1311,1453,1469,1479,1488,1498,1539,1713,1751,1819,1961,1962,1977,
12,101,145,236,337,421,461,592,620,843,965,1043,1088,1153,1171,1328,1350,1417,1497,1524,1588,1626,1681,1800,1804,1898,1924,1959,1986,1993,2020,2025,
105,156,222,311,411,476,528,609,699,743,811,852,928,985,1084,1245,1279,1294,1351,1430,1514,1518,1593,1692,1730,1798,1857,1889,1892,1922,1933,1937,
11,110,126,229,400,468,523,585,655,727,879,894,948,1013,1089,1152,1201,1243,1383,1414,1591,1613,1754,1795,1866,1875,1908,1957,1983,2009,2027,2033,
10,104,114,180,237,295,384,417,499,642,688,729,825,838,892,949,1060,1146,1183,1298,1375,1470,1522,1594,1682,1716,1727,1820,1829,1853,1934,1944,
9,99,159,265,361,453,514,597,753,984,1033,1100,1128,1168,1257,1302,1336,1425,1614,1671,1736,1770,1799,1849,1877,1887,1904,1966,1970,1988,1992,1995,
8,82,117,211,278,325,344,445,503,535,590,638,709,735,815,846,908,976,1106,1135,1164,1172,1260,1293,1340,1395,1438,1495,1505,1606,1627,1764,
7,89,137,176,251,286,356,404,450,533,566,664,686,746,817,867,910,993,1032,1091,1158,1169,1202,1246,1313,1389,1464,1536,1549,1625,1691,1765,
6,109,147,204,232,304,368,397,496,512,576,651,721,754,787,881,895,998,1027,1059,1093,1156,1320,1339,1472,1517,1523,1538,1597,1639,1697,1766,
5,107,142,201,313,338,428,549,621,728,823,877,927,1010,1065,1133,1193,1242,1282,1304,1503,1599,1609,1676,1704,1796,1813,1871,1888,1920,1963,1978,
4,87,148,215,267,308,386,438,460,552,573,666,711,742,780,841,891,997,1017,1098,1114,1179,1270,1306,1372,1428,1483,1610,1670,1717,1771,1841,
67,208,263,314,371,432,472,536,563,687,770,788,863,919,1038,1116,1204,1221,1379,1419,1468,1507,1529,1604,1638,1695,1738,1885,1901,1935,2016,2024,
3,70,162,186,227,303,389,436,482,513,598,619,708,816,864,904,973,1036,1066,1159,1195,1223,1225,1312,1346,1385,1476,1541,1631,1710,1733,1842,
2,54,169,195,248,328,350,425,454,532,582,647,678,772,829,840,929,1015,1092,1134,1184,1272,1324,1334,1344,1448,1486,1647,1656,1700,1772,1843,
1,88,190,281,358,405,498,560,593,644,718,730,802,832,921,944,1052,1105,1155,1200,1258,1280,1402,1432,1491,1530,1598,1659,1776,1860,1926,1931,
0,106,153,193,226,318,354,444,484,545,603,658,689,726,783,850,909,1001,1055,1080,1125,1176,1305,1358,1412,1426,1463,1521,1558,1648,1652,1767,
121,272,320,359,501,577,680,804,926,979,1039,1174,1251,1319,1361,1406,1449,1490,1561,1677,1715,1723,1865,1876,1903,1943,1954,1981,2007,2012,2028,2036,
63,160,216,235,290,349,410,465,507,565,627,669,766,818,900,958,1016,1082,1136,1188,1222,1248,1295,1347,1410,1478,1501,1571,1645,1666,1928,1932,
90,113,200,240,326,374,439,474,550,606,636,685,767,814,854,897,961,1035,1094,1127,1181,1263,1327,1378,1399,1554,1564,1590,1629,1672,1722,1768,
81,212,279,284,381,427,469,511,568,715,744,779,848,913,945,1090,1108,1212,1256,1343,1542,1568,1721,1737,1774,1783,1812,1825,1828,1852,1870,1884,
68,152,223,239,291,363,413,475,541,587,633,713,736,799,885,906,980,1048,1132,1233,1307,1418,1444,1506,1559,1596,1662,1719,1740,1748,1793,1844,
168,196,234,319,365,430,464,538,595,673,752,836,935,1000,1018,1112,1241,1355,1433,1466,1485,1653,1720,1753,1782,1821,1905,1968,2002,2004,2038,2040,
52,59,138,185,270,280,393,486,554,591,659,719,757,778,859,889,970,1009,1078,1161,1217,1224,1236,1322,1333,1380,1548,1585,1634,1684,1703,1769,
53,107,128,197,243,297,340,440,456,533,578,639,709,761,794,857,892,1001,1036,1072,1156,1243,1344,1415,1455,1485,1518,1580,1663,1734,1788,1845,
51,58,137,269,333,485,590,658,756,858,888,969,1008,1160,1216,1223,1235,1321,1379,1584,1633,1683,1702,1877,1899,1944,1985,2022,2027,2032,2040,2042,
50,55,115,171,275,304,371,401,492,546,595,642,695,823,938,953,1052,1106,1118,1208,1219,1239,1290,1370,1412,1428,1499,1585,1616,1654,1792,1846,
72,139,187,244,384,397,519,585,705,755,785,834,942,1098,1188,1229,1291,1358,1400,1438,1464,1555,1619,1668,1718,1729,1732,1790,1827,1833,1843,1885,
49,64,153,205,242,306,402,478,529,664,699,749,790,830,869,931,971,1043,1063,1142,1172,1263,1320,1376,1550,1571,1604,1673,1728,1740,1769,1847,
48,96,150,213,273,320,363,504,523,614,636,703,732,872,887,913,958,1040,1068,1153,1184,1246,1312,1351,1403,1457,1481,1500,1634,1670,1701,1770,
47,105,111,208,254,316,379,415,484,526,599,625,692,739,789,859,895,977,1057,1146,1193,1258,1348,1422,1440,1484,1487,1509,1527,1674,1689,1771,
46,99,133,214,257,282,350,422,496,517,601,667,673,762,784,835,909,949,1049,1067,1150,1270,1280,1283,1363,1539,1562,1607,1627,1748,1765,1848,
45,102,134,204,245,300,387,406,448,554,570,628,711,760,820,856,919,946,1024,1061,1139,1210,1241,1356,1386,1446,1532,1576,1613,1685,1707,1772,
44,93,169,174,274,351,407,477,536,606,648,669,737,881,889,963,1033,1096,1119,1196,1231,1430,1450,1479,1531,1535,1747,1750,1758,1812,1835,1886,
43,73,160,181,281,365,433,491,550,563,655,678,773,795,933,955,1027,1102,1159,1273,1328,1340,1426,1602,1724,1726,1761,1803,1839,1841,1868,1887,
42,54,119,217,267,326,361,413,465,560,571,706,793,836,988,1030,1073,1234,1392,1460,1617,1679,1828,1871,1903,1912,1924,1953,1955,1956,2000,2006,
41,68,123,219,251,288,382,425,499,530,600,656,694,763,826,883,936,998,1021,1071,1125,1252,1316,1385,1581,1632,1657,1745,1752,1763,1795,1849,
170,276,345,434,613,647,738,870,901,1058,1181,1260,1286,1543,1553,1610,1684,1810,1914,1967,1977,1984,1989,1994,1997,2009,2015,2016,2025,2029,2036,2044,
40,122,172,332,346,479,587,617,697,759,808,833,910,995,1039,1084,1141,1186,1256,1285,1331,1458,1473,1545,1652,1693,1824,1829,1869,1921,1930,1938,
39,95,117,255,292,381,391,421,521,566,622,716,730,796,864,906,985,1053,1087,1128,1176,1261,1314,1347,1407,1434,1591,1622,1725,1881,1954,1963,
38,82,157,191,286,372,393,494,542,588,660,770,861,911,1074,1144,1251,1298,1359,1435,1454,1551,1614,1678,1767,1813,1815,1862,1884,1894,1916,1919,
37,97,165,218,323,428,461,552,662,719,740,792,875,900,945,1101,1205,1329,1399,1510,1565,1582,1642,1710,1844,1880,1907,1908,1917,1922,1931,1939,
36,60,129,180,246,330,335,395,462,547,598,630,671,731,818,867,924,959,1023,1070,1116,1164,1190,1226,1287,1341,1408,1441,1459,1491,1694,1773,
35,70,127,206,260,298,408,493,553,561,715,774,802,844,930,970,1010,1094,1167,1192,1265,1315,1496,1513,1534,1544,1559,1579,1645,1738,1743,1850,
34,65,163,186,296,405,541,683,827,999,1025,1080,1117,1267,1372,1395,1488,1566,1712,1730,1737,1796,1865,1875,1895,1896,1898,1900,1902,1905,1934,1945,
33,71,142,230,389,503,583,631,767,848,916,987,1045,1103,1197,1237,1307,1330,1423,1639,1680,1692,1915,1918,1957,1974,1975,2002,2012,2018,2021,2037,
32,59,145,220,240,308,369,445,451,515,615,661,674,764,806,852,940,973,1055,1095,1130,1209,1274,1295,1353,1402,1453,1461,1472,1623,1677,1774,
31,85,130,216,234,311,377,446,505,556,607,621,676,724,825,841,922,990,1050,1085,1137,1215,1224,1230,1317,1361,1387,1425,1601,1608,1651,1775,
30,91,164,183,237,299,341,423,450,558,649,701,772,876,932,951,1056,1100,1108,1121,1191,1238,1309,1357,1546,1561,1618,1713,1766,1797,1821,1888,
29,75,126,201,227,329,339,414,501,524,574,627,681,747,797,860,941,961,1044,1078,1122,1204,1266,1299,1332,1362,1389,1542,1606,1628,1667,1776,
28,77,154,202,261,295,375,432,483,508,616,651,693,757,811,871,915,956,1013,1076,1148,1177,1225,1277,1313,1352,1397,1436,1492,1586,1698,1777,
27,101,138,182,321,354,437,489,518,573,663,702,750,804,882,929,962,1019,1089,1129,1165,1212,1253,1292,1375,1419,1433,1641,1705,1757,1801,1851,
26,83,166,173,256,305,356,447,457,525,568,659,675,754,781,855,902,950,1004,1082,1140,1179,1233,1282,1289,1381,1420,1475,1594,1629,1656,1778,
25,94,156,190,268,331,342,436,455,557,604,624,689,791,843,935,976,1111,1149,1302,1334,1365,1396,1590,1660,1704,1727,1876,1882,1935,1940,1946,
24,143,241,376,430,487,611,644,777,885,904,982,1189,1268,1367,1391,1687,1749,1820,1823,1870,1913,1932,1969,1973,1982,2007,2023,2033,2035,2041,2046,
23,76,162,224,229,309,338,411,469,543,579,645,696,788,846,917,965,1011,1062,1136,1169,1207,1264,1325,1336,1406,1474,1577,1620,1659,1714,1779,
22,90,135,193,270,328,366,419,472,520,623,718,775,779,865,914,967,1022,1066,1112,1174,1228,1284,1373,1411,1442,1480,1511,1615,1655,1708,1780,
21,61,132,188,232,301,441,458,545,609,812,873,993,1029,1143,1248,1486,1506,1526,1533,1552,1564,1621,1682,1739,1800,1873,1874,1925,1948,1958,1965,
20,148,378,488,591,758,868,897,974,1005,1206,1249,1337,1410,1451,1466,1530,1569,1611,1649,1688,1825,1943,1964,1970,1990,1993,2003,2017,2026,2034,2045,
19,63,140,178,258,314,368,417,454,555,593,634,691,746,807,874,898,986,1018,1075,1123,1198,1227,1322,1366,1404,1445,1575,1595,1631,1706,1781,
18,78,114,198,253,307,398,480,580,668,713,733,819,994,1046,1086,1120,1275,1303,1380,1449,1549,1568,1583,1697,1863,1937,1942,1962,1972,1998,2004,
17,74,124,259,374,466,538,610,633,832,923,966,1236,1288,1354,1495,1515,1556,1625,1798,1842,1878,1959,1976,1981,1988,1991,2001,2010,2019,2031,2043,
16,118,176,249,293,347,442,490,539,577,690,780,838,939,981,1048,1069,1161,1218,1240,1300,1519,1600,1626,1700,1809,1819,1831,1949,1978,1996,2005,
15,56,209,272,287,344,418,482,516,602,666,682,722,776,821,877,943,952,1006,1162,1217,1308,1355,1414,1470,1507,1525,1578,1647,1672,1804,1852,
14,57,212,278,291,359,439,470,509,700,783,879,989,1097,1138,1166,1213,1368,1476,1502,1504,1573,1664,1746,1756,1760,1864,1910,1920,1951,1952,1966,
13,92,149,263,352,486,612,640,723,850,954,1195,1276,1324,1364,1494,1537,1640,1711,1832,1834,1892,1909,1960,1983,1995,2008,2013,2020,2028,2039,2047,
12,84,131,177,265,315,386,394,463,528,603,638,768,809,886,937,968,1041,1147,1202,1272,1310,1383,1452,1468,1478,1498,1662,1753,1791,1808,1853,
100,144,196,235,336,420,460,619,704,736,805,842,921,964,1042,1152,1170,1327,1349,1416,1427,1497,1523,1558,1799,1818,1826,1830,1837,1838,1867,1889,
11,104,155,221,271,310,390,410,475,527,608,653,698,742,810,851,927,984,1020,1083,1244,1278,1293,1350,1393,1429,1514,1517,1592,1636,1669,1782,
10,110,125,228,322,334,399,467,522,584,654,680,726,800,878,893,947,1012,1088,1151,1200,1242,1301,1382,1413,1444,1574,1612,1650,1695,1789,1854,
9,103,113,179,236,294,383,416,498,507,582,641,687,728,824,837,891,948,1028,1059,1079,1145,1182,1297,1374,1469,1521,1547,1593,1643,1715,1783,
8,98,158,223,264,284,360,392,452,513,596,620,710,752,829,866,926,983,1032,1099,1127,1185,1424,1572,1587,1717,1794,1811,1814,1817,1866,1890,
7,81,116,210,277,324,343,444,502,534,589,637,708,734,814,845,907,975,1105,1113,1134,1171,1259,1339,1394,1437,1505,1605,1686,1703,1806,1855,
6,88,175,250,285,355,403,449,532,565,685,745,816,992,1031,1090,1157,1168,1201,1245,1388,1463,1536,1548,1624,1690,1802,1891,1893,1901,1941,1947,
5,108,146,203,231,303,367,396,495,511,575,650,720,753,786,880,894,997,1003,1026,1092,1155,1319,1338,1471,1522,1596,1638,1666,1696,1786,1856,
4,106,141,200,252,312,337,427,476,548,569,670,727,822,1009,1064,1132,1281,1335,1439,1503,1598,1675,1744,1764,1816,1872,1904,1927,1950,1968,1971,
147,266,385,459,551,572,665,741,840,890,996,1016,1178,1269,1305,1371,1421,1482,1554,1609,1716,1807,1980,1986,1987,1992,1999,2011,2014,2024,2030,2038,
3,66,136,207,262,313,370,431,471,535,562,686,769,787,862,918,991,1037,1109,1115,1203,1220,1254,1378,1418,1467,1528,1603,1637,1653,1759,1857,
2,69,161,185,226,302,388,435,481,512,597,618,707,748,815,863,903,972,1035,1065,1158,1194,1222,1311,1345,1384,1524,1540,1630,1661,1709,1784,
1,109,168,194,247,327,349,424,453,531,581,646,677,771,828,839,928,980,1014,1091,1133,1183,1271,1323,1333,1343,1447,1483,1646,1699,1755,1858,
0,87,151,189,248,280,357,404,497,559,592,643,717,729,801,831,920,1002,1051,1104,1154,1199,1257,1279,1377,1401,1431,1490,1529,1597,1658,1785,
152,192,225,317,353,443,544,657,688,725,782,849,908,1000,1054,1124,1175,1304,1390,1462,1520,1557,1648,1723,1735,1736,1741,1751,1822,1840,1883,1911,
79,120,184,319,358,400,500,514,576,652,679,744,803,854,925,978,1038,1173,1250,1318,1360,1405,1448,1489,1508,1512,1560,1588,1676,1762,1928,1933,
62,159,215,289,348,409,464,506,564,626,721,765,817,899,957,1015,1081,1135,1187,1221,1247,1294,1346,1409,1477,1501,1570,1644,1665,1722,1793,1859,
89,112,199,239,325,373,438,473,549,605,635,684,766,813,853,896,960,1034,1093,1126,1180,1262,1326,1398,1563,1589,1671,1721,1731,1742,1805,1860,
80,121,211,279,283,380,426,468,510,567,629,714,743,778,847,912,944,1007,1060,1114,1211,1255,1296,1342,1541,1567,1599,1635,1681,1719,1768,1861,
67,222,238,290,362,412,474,540,586,632,712,735,798,884,905,979,1047,1107,1131,1232,1306,1369,1417,1443,1456,1493,1516,1720,1733,1754,1923,1926,
52,86,167,195,233,318,364,429,537,594,672,751,799,934,1017,1077,1110,1163,1214,1432,1465,1538,1691,1787,1836,1879,1897,1906,1929,1936,1961,1979,
53,106,127,242,296,339,455,532,638,708,760,793,891,1000,1035,1071,1155,1242,1285,1343,1414,1454,1517,1747,1780,1846,1929,1959,1962,1990,1995,1997,
51,85,166,194,232,317,363,428,463,536,593,624,671,750,798,835,933,999,1016,1076,1108,1162,1213,1240,1303,1354,1431,1464,1484,1652,1690,1786,
50,57,331,553,589,657,718,755,829,857,943,968,1077,1159,1215,1222,1320,1378,1547,1574,1632,1682,1770,1778,1801,1834,1884,1901,1921,1922,1945,1954,
54,114,274,303,370,491,545,594,641,694,822,856,937,952,1051,1105,1117,1207,1218,1238,1289,1499,1584,1615,1728,1735,1738,1833,1844,1970,1981,1986,
49,71,138,186,243,383,396,584,754,833,941,980,1013,1187,1228,1290,1399,1437,1463,1618,1718,1765,1771,1822,1857,1943,1963,1988,2015,2020,2023,2030,
48,63,152,204,305,333,401,477,528,607,698,777,789,868,970,1042,1062,1141,1171,1262,1319,1375,1493,1549,1570,1603,1672,1704,1761,1842,1874,1891,
47,95,149,212,319,362,392,503,522,613,635,702,731,830,871,912,957,1039,1067,1152,1183,1245,1311,1350,1402,1480,1500,1559,1633,1700,1807,1862,
46,104,169,207,253,315,378,414,525,598,691,738,788,858,894,976,1056,1145,1257,1347,1492,1509,1526,1554,1576,1673,1743,1840,1841,1905,1971,1978,
45,98,132,213,256,281,349,421,495,600,666,672,761,783,834,908,948,1048,1066,1149,1269,1279,1362,1516,1531,1561,1607,1693,1753,1802,1806,1863,
44,133,203,244,386,405,504,627,759,855,918,945,1023,1209,1355,1385,1445,1486,1532,1612,1757,1845,1858,1888,1906,1915,1992,1993,2028,2032,2043,2046,
43,168,173,273,300,535,605,647,721,880,888,962,1032,1095,1118,1195,1230,1429,1478,1530,1534,1539,1635,1725,1815,1824,1827,1898,1908,1965,1996,2006,
42,72,159,180,241,280,364,432,490,549,562,654,677,794,866,932,954,1026,1101,1158,1212,1272,1327,1339,1390,1421,1601,1628,1677,1692,1724,1864,
41,109,118,216,266,325,360,412,464,559,570,652,705,775,792,921,987,1029,1072,1114,1176,1233,1309,1335,1391,1430,1449,1459,1616,1678,1711,1787,
67,122,218,250,287,381,424,498,529,599,655,693,762,825,882,935,997,1070,1124,1185,1251,1315,1337,1384,1395,1444,1580,1631,1656,1739,1810,1892,
40,79,170,190,275,292,344,433,466,518,612,646,680,737,805,869,900,991,1057,1100,1153,1180,1259,1277,1383,1442,1542,1579,1609,1683,1707,1788,
39,105,171,268,332,345,406,478,507,586,696,758,807,832,994,1038,1083,1140,1255,1330,1363,1472,1544,1606,1608,1803,1849,1852,1895,1911,1941,1948,
38,94,116,184,254,291,380,420,476,520,565,621,715,729,795,863,905,984,1052,1086,1127,1175,1260,1313,1346,1406,1433,1455,1621,1657,1706,1789,
37,81,156,272,285,371,493,541,659,670,769,826,860,910,963,1007,1073,1143,1198,1250,1297,1358,1453,1550,1726,1736,1817,1910,1918,1984,2031,2042,
36,164,217,248,390,427,460,551,601,661,739,874,899,944,1033,1204,1275,1282,1300,1369,1398,1564,1581,1641,1650,1709,1985,2002,2017,2019,2029,2033,
35,59,128,179,329,394,461,546,597,817,923,958,1022,1069,1113,1115,1189,1225,1286,1340,1407,1440,1458,1490,1668,1813,1825,1848,1851,1873,1875,1893,
34,69,126,205,259,297,407,492,552,615,667,714,773,801,843,929,969,1009,1093,1166,1191,1264,1314,1456,1496,1533,1543,1578,1644,1653,1688,1790,
33,64,162,185,252,295,334,391,404,484,540,582,682,736,854,914,998,1116,1266,1371,1394,1565,1599,1669,1751,1758,1808,1936,1951,2000,2004,2010,
32,70,141,229,328,388,423,502,509,630,689,766,819,847,915,986,1044,1102,1163,1196,1236,1306,1329,1422,1434,1588,1638,1679,1782,1854,1934,1949,
31,58,144,219,239,368,444,450,614,660,851,939,972,1054,1208,1273,1294,1352,1401,1452,1460,1471,1622,1676,1768,1779,1964,1991,2007,2011,2013,2025,
30,84,129,215,233,310,376,445,505,555,606,675,723,824,840,989,1049,1084,1136,1223,1229,1316,1360,1386,1424,1600,1708,1740,1777,1896,1924,1927,
29,90,163,182,236,298,340,422,449,557,569,648,700,771,799,875,931,950,1055,1060,1099,1120,1190,1237,1308,1356,1545,1560,1591,1617,1666,1791,
28,74,125,200,226,338,413,500,573,626,746,859,940,960,1043,1203,1265,1298,1331,1361,1388,1541,1605,1627,1766,1785,1974,2003,2009,2040,2041,2047,
27,76,153,201,260,294,374,431,482,616,650,692,756,810,870,955,1012,1075,1147,1276,1351,1396,1435,1491,1524,1585,1697,1829,1835,1900,1947,1955,
26,100,137,181,245,320,353,436,488,517,572,662,701,749,803,881,928,961,1018,1088,1128,1164,1211,1252,1291,1374,1418,1432,1583,1640,1684,1792,
25,82,165,172,255,304,355,447,456,524,567,658,674,753,780,901,949,1081,1139,1178,1232,1281,1288,1380,1419,1474,1504,1593,1701,1731,1755,1865,
24,93,155,189,267,330,341,435,454,556,603,623,688,744,790,842,887,934,975,1005,1148,1192,1254,1333,1364,1507,1589,1643,1659,1752,1764,1866,
23,101,142,193,240,322,375,429,486,514,610,643,716,722,724,784,884,903,981,1028,1068,1121,1188,1267,1296,1334,1366,1476,1551,1611,1687,1793,
22,75,161,224,228,308,337,410,468,542,578,644,695,763,787,845,916,964,1010,1061,1135,1168,1206,1263,1324,1405,1473,1487,1619,1658,1713,1794,
21,89,134,192,269,327,365,418,471,519,577,622,717,774,778,913,966,1021,1065,1110,1173,1227,1283,1372,1410,1441,1479,1510,1614,1654,1994,1998,
20,60,131,187,231,350,440,457,544,608,676,730,811,872,992,1107,1142,1174,1247,1328,1483,1552,1558,1563,1620,1712,1783,1820,1850,1886,1972,1977,
19,96,147,223,249,377,439,487,558,590,629,673,757,796,867,896,973,1004,1089,1205,1248,1336,1409,1450,1465,1494,1512,1529,1568,1610,1767,1867,
18,62,139,177,257,313,367,416,453,554,592,633,690,745,806,873,897,985,1017,1074,1122,1197,1226,1321,1365,1403,1575,1594,1630,1663,1705,1795,
17,77,113,197,306,354,397,479,516,579,668,712,732,818,864,930,993,1045,1085,1119,1214,1274,1302,1379,1448,1548,1567,1582,1636,1662,1696,1796,
16,73,123,196,258,284,373,400,465,537,609,632,713,748,791,831,922,965,1024,1094,1138,1217,1235,1287,1353,1393,1555,1562,1624,1686,1689,1797,
15,92,117,175,346,441,489,538,576,628,768,837,938,1047,1160,1169,1299,1415,1439,1519,1535,1670,1699,1737,1756,1826,1843,1931,1975,1982,1987,1989,
14,55,121,208,286,343,417,481,515,665,681,820,951,1109,1161,1216,1307,1413,1469,1525,1577,1646,1671,1832,1838,1880,1882,1897,1902,1933,1950,1956,
13,56,111,211,277,290,358,438,469,508,587,620,699,772,782,878,988,1058,1096,1137,1165,1239,1284,1367,1502,1629,1734,1744,1763,1781,1784,1868,
12,91,148,198,262,282,351,408,485,523,611,639,704,776,800,849,942,953,1020,1129,1194,1224,1234,1323,1495,1508,1572,1602,1639,1772,1776,1869,
83,130,176,264,314,385,393,462,527,637,767,808,885,936,967,1040,1079,1146,1201,1271,1382,1451,1467,1477,1498,1538,1647,1733,1746,1883,1889,1912,
11,99,143,195,299,335,419,459,591,618,703,735,804,841,920,1041,1087,1151,1326,1348,1426,1497,1518,1522,1557,1587,1625,1680,1774,1831,1859,1894,
10,103,154,220,270,309,389,409,474,526,697,741,809,850,983,1019,1082,1243,1349,1428,1514,1553,1691,1773,1812,1847,1855,1856,1903,1904,1916,1920,
9,110,124,206,227,321,398,521,583,679,725,877,892,946,1011,1150,1199,1381,1412,1443,1573,1590,1649,1759,1769,1816,1818,1821,1823,1885,1914,1917,
8,102,112,178,235,293,382,415,497,506,581,640,686,727,823,836,890,947,1003,1027,1078,1144,1181,1373,1468,1520,1546,1592,1642,1681,1762,1870,
7,97,157,222,263,283,359,446,451,512,595,619,709,751,828,865,925,982,1031,1098,1126,1167,1184,1256,1301,1423,1571,1586,1613,1716,1809,1871,
6,80,115,209,276,323,342,443,501,533,588,636,707,733,813,844,906,974,1104,1112,1133,1170,1258,1292,1338,1436,1505,1604,1626,1685,1702,1798,
5,87,136,174,402,448,531,564,663,684,815,909,1030,1156,1200,1244,1312,1387,1462,1536,1623,1667,1732,1861,1876,1878,1887,1890,1942,1944,2016,2026,
4,107,145,202,230,302,366,395,494,510,574,649,719,752,785,879,893,996,1025,1091,1154,1318,1470,1521,1537,1637,1665,1745,1748,1923,1932,1940,
140,199,251,311,336,426,475,547,568,669,726,821,876,926,1008,1063,1131,1241,1280,1392,1438,1503,1597,1674,1703,1741,1930,1946,1966,1979,2018,2024,
3,86,146,214,265,307,384,437,458,550,571,664,710,740,779,839,889,995,1015,1097,1177,1268,1304,1370,1420,1427,1481,1513,1715,1730,1742,1872,
2,65,135,261,312,369,430,470,534,561,653,685,786,861,917,990,1036,1202,1219,1253,1417,1506,1527,1694,1819,1828,1860,1879,1909,1937,1957,1967,
1,68,160,225,301,387,434,480,511,596,617,706,747,814,862,902,971,1034,1064,1157,1193,1221,1310,1344,1466,1523,1660,1750,1760,1804,1899,1913,
0,108,167,246,326,348,452,530,580,645,770,827,838,927,979,1090,1132,1182,1270,1322,1342,1425,1446,1482,1645,1655,1698,1729,1925,1969,2021,2027,
150,188,247,356,403,496,642,728,886,919,1001,1050,1103,1278,1376,1400,1489,1528,1596,1710,1723,1814,1830,1881,1919,1953,1973,1983,2022,2034,2038,2044,
191,278,316,352,442,483,543,602,656,687,781,848,907,1053,1123,1357,1389,1411,1461,1556,1648,1651,1717,1749,1836,1853,1907,1926,1928,1938,1958,1968,
78,119,183,271,318,357,399,499,513,575,651,678,743,802,853,924,977,1037,1111,1172,1249,1317,1359,1404,1447,1457,1488,1511,1675,1714,1722,1799,
61,158,234,288,347,560,563,625,720,764,816,898,956,1014,1080,1134,1186,1220,1246,1293,1345,1408,1501,1569,1664,1721,1727,1754,1961,2014,2035,2039,
88,238,324,372,472,548,604,634,683,765,812,852,895,959,1092,1125,1179,1261,1325,1332,1377,1397,1719,1775,1811,1839,1939,1952,1960,1999,2001,2012,
120,210,279,379,425,467,566,742,846,911,1002,1006,1059,1210,1295,1341,1540,1566,1598,1634,1720,1805,1837,1877,1935,1976,1980,2005,2008,2036,2037,2045,
52,66,151,221,237,289,361,411,473,539,585,631,711,734,797,883,904,978,1046,1106,1130,1231,1305,1368,1416,1475,1485,1515,1595,1661,1695,1800,
53,126,196,295,338,439,454,531,577,637,707,759,792,856,890,1034,1070,1154,1342,1413,1453,1484,1572,1579,1662,1725,1741,1761,1816,1836,1856,1895,
51,65,150,220,236,288,360,410,472,538,584,630,733,882,903,977,1045,1105,1217,1230,1304,1367,1474,1558,1594,1660,1759,1831,1929,1992,2003,2013,
50,84,165,231,316,362,427,462,535,592,623,749,797,834,932,998,1015,1060,1075,1161,1302,1353,1463,1492,1537,1756,1813,1868,1878,1911,1953,1969,
56,136,184,268,330,390,392,484,552,588,656,717,754,828,967,1007,1076,1158,1221,1234,1319,1546,1573,1583,1631,1701,1783,1832,1833,1846,1860,1896,
49,109,113,223,273,302,369,400,490,544,593,640,693,821,855,936,951,1050,1104,1116,1169,1206,1237,1288,1369,1411,1427,1499,1614,1653,1704,1801,
48,70,137,185,242,284,382,395,476,518,583,653,704,753,784,832,940,979,1012,1097,1186,1227,1289,1357,1398,1436,1462,1512,1554,1617,1718,1802,
47,62,203,241,304,527,606,663,697,722,748,788,867,969,1041,1061,1140,1170,1261,1318,1374,1485,1548,1569,1671,1764,1827,1909,1922,1926,1972,1981,
46,94,148,211,272,318,361,446,502,521,612,634,701,777,870,911,956,1038,1066,1151,1182,1244,1310,1349,1401,1456,1479,1500,1632,1699,1730,1873,
45,103,168,314,377,413,483,524,597,690,737,787,857,893,975,1055,1144,1328,1346,1421,1439,1486,1491,1509,1672,1688,1742,1796,1814,1936,1946,1957,
44,97,131,212,255,280,348,420,494,516,599,665,671,760,782,833,907,947,1047,1065,1148,1268,1278,1361,1515,1530,1538,1560,1607,1626,1667,1803,
43,101,132,202,243,385,404,503,553,569,626,710,758,819,917,944,1022,1138,1208,1240,1384,1425,1483,1508,1532,1684,1747,1795,1823,1865,1867,1897,
42,92,167,172,350,406,534,604,646,720,736,826,879,943,961,1031,1117,1194,1229,1428,1449,1477,1529,1533,1634,1650,1706,1753,1862,1963,1991,1993,
41,71,158,179,240,363,431,489,548,561,772,793,865,931,953,1025,1157,1211,1271,1326,1338,1389,1420,1600,1627,1676,1724,1782,1885,1925,2022,2029,
108,117,215,265,324,359,411,651,774,835,920,986,1071,1175,1232,1308,1429,1448,1458,1551,1615,1726,1776,1810,1820,1888,1961,1980,2018,2019,2020,2034,
40,66,217,286,380,497,528,598,654,692,761,824,881,934,996,1020,1069,1123,1184,1250,1314,1336,1394,1443,1630,1712,1755,1852,1913,1997,2021,2026,
39,78,170,189,274,291,343,432,465,517,611,645,679,804,868,899,990,1056,1099,1152,1179,1258,1276,1285,1382,1441,1541,1578,1682,1845,1872,1898,
38,104,121,267,332,344,405,477,506,585,695,757,806,831,909,993,1037,1082,1139,1185,1329,1362,1471,1543,1605,1651,1692,1740,1850,1935,1951,1970,
37,93,115,183,253,290,379,419,475,519,564,714,728,794,862,904,983,1051,1085,1126,1259,1345,1405,1432,1454,1590,1620,1656,1705,1927,1947,1958,
36,80,155,190,370,492,540,587,658,669,825,859,962,1006,1072,1142,1197,1249,1434,1452,1549,1613,1677,1717,1732,1770,1797,1819,1822,1870,1933,1941,
35,96,163,216,247,322,389,426,459,550,600,660,718,738,791,873,898,1002,1032,1100,1163,1203,1274,1281,1299,1368,1397,1563,1580,1640,1649,1804,
34,58,127,178,245,334,393,460,545,596,629,670,730,816,922,957,1021,1112,1188,1339,1406,1489,1524,1606,1693,1765,1788,1828,1887,1974,1978,1982,
33,68,125,204,258,296,491,551,614,666,842,928,968,1008,1092,1165,1190,1263,1313,1475,1496,1542,1577,1727,1767,1824,1864,1879,1943,1976,1977,1983,
32,63,161,251,294,403,539,581,624,681,735,853,913,997,1024,1115,1214,1265,1284,1370,1455,1564,1598,1647,1711,1769,1773,1798,1815,1840,1853,1899,
31,69,140,206,228,327,387,422,501,508,582,688,765,818,846,985,1043,1101,1162,1195,1235,1282,1305,1433,1535,1637,1678,1691,1799,1825,1841,1900,
30,57,143,218,238,307,367,443,449,514,613,659,673,763,805,850,938,971,1053,1094,1129,1207,1272,1293,1351,1400,1451,1459,1470,1621,1675,1805,
29,83,128,232,309,375,444,505,554,605,674,776,823,839,921,988,1048,1083,1135,1222,1228,1315,1359,1385,1423,1493,1737,1835,1966,1994,2004,2014,
28,89,162,181,235,297,339,421,448,556,568,647,699,770,798,874,949,1054,1059,1098,1119,1189,1236,1307,1355,1457,1544,1616,1665,1746,1789,1874,
27,73,124,199,225,328,337,412,499,523,572,625,680,745,796,858,939,959,1042,1077,1121,1202,1264,1297,1330,1360,1387,1540,1604,1666,1710,1806,
26,75,152,200,259,293,373,430,481,507,616,649,691,755,809,869,914,954,1011,1074,1146,1176,1224,1312,1350,1490,1523,1584,1696,1752,1908,1918,
25,99,180,244,319,352,435,487,571,661,700,802,880,927,960,1017,1113,1127,1210,1251,1290,1373,1417,1431,1582,1639,1683,1728,1818,1842,1863,1901,
24,81,164,171,254,303,447,455,566,657,752,854,900,948,1058,1080,1177,1231,1280,1287,1379,1418,1473,1592,1655,1700,1839,1942,1964,1987,2043,2047,
23,154,188,266,329,340,434,453,555,622,687,743,789,830,841,933,974,1004,1109,1147,1191,1253,1301,1395,1642,1658,1703,1869,1883,1996,2012,2027,
22,100,141,192,239,321,374,428,485,513,609,642,715,723,783,883,902,1027,1067,1120,1187,1266,1295,1333,1365,1550,1610,1687,1754,1784,1843,1902,
21,74,160,224,227,336,409,467,541,643,694,762,786,844,915,1009,1134,1205,1262,1323,1404,1472,1576,1618,1780,1791,1871,1881,1890,1894,2011,2028,
20,88,133,191,326,364,417,470,576,621,773,864,912,965,1064,1108,1172,1226,1371,1409,1440,1478,1531,1707,1738,1817,1877,1892,1921,1973,2002,2015,
19,59,130,186,230,300,349,456,543,667,675,729,810,871,930,1028,1106,1141,1173,1246,1327,1383,1482,1552,1557,1619,1681,1847,1990,2000,2001,2016,
18,95,146,222,299,376,438,486,557,589,672,756,795,895,972,1088,1204,1247,1408,1464,1495,1504,1511,1528,1567,1609,1736,1794,1893,1931,2005,2006,
17,61,138,176,256,312,366,415,452,632,872,896,984,1016,1073,1196,1225,1320,1364,1402,1444,1575,1593,1760,1792,1830,1876,1962,1975,2025,2032,2041,
16,76,112,252,305,353,396,478,515,578,668,711,731,817,863,929,992,1044,1084,1118,1213,1273,1378,1447,1566,1581,1733,1812,1866,1932,1944,1959,
15,72,122,195,257,283,372,399,464,536,608,631,712,747,790,886,964,1023,1093,1137,1216,1286,1352,1561,1591,1623,1685,1743,1771,1834,1920,1924,
14,91,116,174,248,292,345,440,488,537,575,627,689,767,779,836,937,980,1046,1068,1159,1168,1239,1298,1414,1438,1519,1534,1599,1625,1698,1807,
13,54,120,207,271,285,342,391,416,480,601,664,775,876,942,950,1005,1160,1215,1306,1354,1412,1468,1487,1506,1525,1645,1774,1811,1915,2007,2009,
12,55,169,210,276,289,357,468,586,619,698,771,781,877,987,1057,1095,1136,1164,1212,1238,1283,1366,1392,1466,1502,1663,1731,1739,1829,1995,1999,
90,147,197,261,281,407,522,610,638,703,848,941,952,1019,1111,1128,1193,1223,1233,1322,1363,1571,1601,1638,1686,1785,1821,1858,1889,1945,1956,1965,
11,82,129,175,263,313,384,461,526,602,636,766,807,884,935,966,1039,1078,1145,1200,1270,1309,1381,1450,1498,1646,1661,1763,1786,1967,2035,2042,
10,98,142,194,234,298,418,458,590,617,702,734,803,840,919,963,1040,1086,1150,1325,1347,1390,1415,1497,1517,1521,1556,1586,1624,1679,1768,1875,
9,102,153,219,269,308,388,473,525,607,652,696,740,808,849,926,982,1018,1081,1242,1277,1292,1348,1514,1635,1668,1690,1744,1748,1986,2031,2039,
8,110,123,205,226,320,333,397,466,520,678,799,891,945,1010,1087,1149,1241,1300,1380,1494,1589,1611,1694,1734,1735,1749,1800,1857,1919,1934,1950,
7,177,381,414,496,560,580,639,685,726,822,889,946,1026,1143,1180,1296,1372,1467,1545,1641,1714,1787,1837,1859,1907,1916,1940,1952,1989,2040,2046,
6,156,221,262,358,445,450,511,594,618,708,750,827,924,981,1030,1125,1166,1183,1255,1335,1422,1570,1585,1612,1670,1715,1917,1998,2008,2017,2030,
5,114,208,275,341,442,500,532,635,706,732,812,843,905,973,1103,1110,1132,1257,1291,1393,1435,1505,1518,1603,1745,1757,1778,1826,1910,2033,2036,
4,135,173,249,354,401,504,530,563,662,683,744,814,866,908,991,1029,1155,1167,1199,1243,1311,1386,1461,1536,1547,1622,1689,1766,1988,2038,2045,
106,144,201,229,301,365,394,493,573,648,751,878,887,892,995,1090,1317,1337,1469,1516,1520,1595,1664,1772,1793,1937,1985,2010,2023,2024,2037,2044,
3,139,250,310,335,425,474,546,567,620,721,725,820,875,925,1062,1130,1192,1279,1303,1391,1437,1503,1596,1608,1673,1702,1884,1906,1938,1949,1960,
2,85,145,213,264,306,383,436,457,549,570,709,739,778,838,888,994,1014,1096,1267,1332,1419,1426,1480,1669,1762,1790,1844,1891,1930,1955,1968,
1,64,134,260,311,368,429,469,533,615,684,768,785,860,916,989,1035,1107,1114,1201,1218,1252,1377,1416,1442,1526,1602,1636,1652,1848,1854,1903,
0,67,159,278,386,433,479,510,595,705,746,813,861,901,970,1063,1156,1220,1334,1343,1465,1522,1539,1629,1659,1838,1886,1912,1939,1948,1954,1971,
107,166,193,325,347,423,451,529,579,644,676,769,837,978,1013,1131,1181,1269,1321,1341,1424,1445,1481,1574,1644,1654,1697,1723,1758,1851,1861,1904,
86,149,187,246,331,355,402,495,558,591,641,716,727,800,885,918,1000,1049,1102,1153,1198,1256,1375,1399,1430,1488,1527,1553,1657,1709,1923,1928,
105,151,277,315,351,441,482,542,655,686,724,780,847,906,999,1052,1079,1122,1174,1275,1356,1388,1410,1460,1555,1648,1716,1722,1777,1880,1979,1984,
77,118,182,270,317,356,398,498,512,574,650,677,742,801,852,923,976,1036,1171,1248,1316,1358,1403,1446,1507,1510,1559,1587,1674,1713,1721,1808,
60,157,214,233,287,346,408,463,559,562,719,815,897,955,1133,1219,1245,1344,1407,1476,1501,1568,1643,1695,1719,1729,1751,1779,1781,1849,1855,1905,
87,111,198,237,323,371,437,471,547,603,633,682,764,811,851,894,958,1033,1091,1124,1178,1260,1324,1331,1376,1396,1562,1588,1628,1708,1720,1809,
52,79,119,209,279,282,378,424,509,565,628,713,741,829,845,910,1001,1003,1089,1209,1254,1294,1340,1513,1565,1597,1633,1680,1750,1775,1882,1914。

Claims (10)
Hide Dependent

1, a kind of method of using the GRS sign indicating number to make up the LDPC sign indicating number, described method comprises:
Select a group address, comprising:
A plurality of elements, wherein each element can be generated by a primitive element in the Galois Field that is raised to equivalency index time power, and wherein said Galois Field comprises limited predetermined element;
First degree is 1 polynomial function, is used for each element map of described group of addresses is arrived corresponding nonzero value;
Second degree is 1 polynomial function, is the non-linear scalar multiple of 1 polynomial function for described first degree;
From described Galois Field, select a plurality of nonzero elements;
The first coded word vector of identification GRS sign indicating number from a plurality of possible coded word vector value, the wherein said first coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described first degree;
The second coded word vector of the described GRS sign indicating number of identification from described a plurality of possible coded word vector value, the wherein said second coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described second degree;
Described first coded word vector and each scale factor in more than first scale factor are multiplied each other, thereby generate a plurality of adjustment first coded word vector afterwards;
Described second coded word vector and each scale factor in more than second scale factor are multiplied each other, thereby generate a plurality of adjustment second coded word vector afterwards;
With described each adjust back first coded word vector with described each adjust back second coded word addition of vectors to generate a plurality of cosets;
Generate a plurality of permutation matrixes, wherein each described permutation matrix comprises a plurality of row, and every row includes the map addresses of a coset in described a plurality of coset;
Each permutation matrix in described a plurality of permutation matrixes is arranged as submatrix, thereby generates the LDPC parity matrix of corresponding described LDPC sign indicating number.
2, method according to claim 1 is characterized in that:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described a plurality of coset comprises 2 sIndividual coset;
Each permutation matrix is 2 in described a plurality of permutation matrix s* 2 sPermutation matrix.
3, method according to claim 1 is characterized in that:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer; And
ρ is less than or equal to 2 s
4, method according to claim 1 is characterized in that:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
The degree of the position node of described LDPC parity matrix is γ, and the degree of check-node is ρ;
The weight of every row of described LDPC parity matrix is γ;
The weight of every row of described LDPC parity matrix is ρ;
And ρ is less than or equal to 2 s
5, method according to claim 1 is characterized in that:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described LDPC parity matrix is 384 * 2048 matrix;
Described LDPC sign indicating number is (2048,1723) regular LDPC sign indicating number, and its encoding rate is near 0.8413;
And the minimum intersymbol certificate of described LDPC sign indicating number is more than or equal to 8.
6, a kind of method of utilizing the GRS sign indicating number to make up the LDPC sign indicating number, described method comprises:
The first coded word vector of identification GRS sign indicating number from a plurality of possible coded word vector value;
The second coded word vector of the described GRS sign indicating number of identification from a plurality of possible coded word vector value;
Described first coded word vector and each scale factor in more than first scale factor are multiplied each other, thereby generate a plurality of adjustment first coded word vector afterwards;
Described second coded word vector and each scale factor in more than second scale factor are multiplied each other, thereby generate a plurality of adjustment second coded word vector afterwards;
With described each adjust back first coded word vector with described each adjust back second coded word addition of vectors to generate a plurality of cosets;
Generate a plurality of permutation matrixes, wherein each described permutation matrix comprises a plurality of row, and every row includes the map addresses of a coset in described a plurality of coset;
Each permutation matrix in described a plurality of permutation matrixes is arranged as submatrix, thereby generates the LDPC parity matrix of corresponding described LDPC sign indicating number.
7, method according to claim 6 is characterized in that, described method further comprises:
Select a group address, comprising:
A plurality of elements, wherein each element can be generated by a primitive element in the Galois Field that is raised to equivalency index time power, and wherein said Galois Field comprises limited predetermined element;
First degree is 1 polynomial function, is used for each element map of described group of addresses is arrived corresponding nonzero value;
Second degree is 1 polynomial function, is the non-linear scalar multiple of 1 polynomial function for described first degree;
From described Galois Field, select a plurality of nonzero elements; The wherein said first coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described first degree;
The described second coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described second degree.
8, a kind of device that utilizes the GRS sign indicating number to make up the LDPC sign indicating number, described device comprises:
Coded word vector identification module is used for:
The first coded word vector of identification GRS sign indicating number from a plurality of possible coded word vector value;
The second coded word vector of the described GRS sign indicating number of identification from a plurality of possible coded word vector value; The coset generation module is used for:
Described first coded word vector and each scale factor in more than first scale factor are multiplied each other, to generate a plurality of adjustment first coded word vector afterwards;
Described second coded word vector and each scale factor in more than second scale factor are multiplied each other, to generate a plurality of adjustment second coded word vector afterwards;
With described each adjust back first coded word vector with described each adjust back second coded word addition of vectors to generate a plurality of cosets;
Generate a plurality of permutation matrixes, wherein each described permutation matrix comprises a plurality of row, and every row includes the map addresses of a coset in described a plurality of coset;
Each permutation matrix in described a plurality of permutation matrixes is arranged as submatrix, thereby generates the LDPC parity matrix of corresponding described LDPC sign indicating number.
9, device according to claim 8 is characterized in that, described device further comprises:
Group of addresses is selected module, comprising:
A plurality of elements, wherein each element can be generated by a primitive element in the Galois Field that is raised to equivalency index time power, and wherein said Galois Field comprises limited predetermined element;
First degree is 1 polynomial function, is used for each element map of described group of addresses is arrived corresponding nonzero value;
Second degree is 1 polynomial function, is the non-linear scalar multiple of 1 polynomial function for described first degree;
Nonzero element is selected module, is used for selecting a plurality of nonzero elements from described Galois Field;
The described first coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described first degree;
The described second coded word vector can use described a plurality of nonzero element and be that 1 polynomial function shines upon each element in the described group of addresses and generates according to described second degree.
10, device according to claim 8 is characterized in that:
Limited predetermined in described Galois Field element comprises 2 sIndividual element, wherein s is an integer;
Described a plurality of coset comprises 2s coset;
Each permutation matrix is 2 in described a plurality of permutation matrix s* 2 sPermutation matrix;
Described LDPC parity matrix comprises γ * ρ the permutation matrix that is arranged as submatrix, and wherein γ and ρ are integer;
The degree of the position node of described LDPC parity matrix is γ, and the degree of check-node is ρ;
The weight of every row of described LDPC parity matrix is γ;
The weight of every row of described LDPC parity matrix is ρ;
And ρ is less than or equal to 2 s