CN114079533A - 编码方法及装置 - Google Patents
编码方法及装置 Download PDFInfo
- Publication number
- CN114079533A CN114079533A CN202010839880.7A CN202010839880A CN114079533A CN 114079533 A CN114079533 A CN 114079533A CN 202010839880 A CN202010839880 A CN 202010839880A CN 114079533 A CN114079533 A CN 114079533A
- Authority
- CN
- China
- Prior art keywords
- code
- reliability
- subchannel
- sub
- outer code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/033—Theoretical methods to calculate these checking codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/612—Aspects specific to channel or signal-to-noise ratio estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0067—Rate matching
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
- Optical Modulation, Optical Deflection, Nonlinear Optics, Optical Demodulation, Optical Logic Elements (AREA)
Abstract
本申请提供一种编码方法及装置。该方法包括:获取待编码信息和母码长度N,待编码信息包括K个信息比特,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,X个外码子码由第一类型外码子码和第二类型外码子码组成或由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码的码率小于或等于LB,第二类型外码子码的码率大于或等于HB,第三类型外码子码的码率大于LB且小于HB,LB大于0且小于HB,HB小于或等于1,根据I和F进行极化编码。从而可降低译码时延。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种编码方法及装置。
背景技术
通信系统通常采用信道编码提高数据传输的可靠性,保证通信的质量,Polar(极化)码是第一种能够被严格证明“达到”信道容量的信道编码方法。Polar码是一种线性块码,其生成矩阵为GN,其编码过程为是一个二进制的行矢量,长度为N(即码长);且这里BN是一个N×N的转置矩阵,例如比特逆序转置矩阵;定义为log2N个矩阵F2的克罗内克(Kronecker)乘积,x1 N是编码后的比特(也叫码字),与生成矩阵GN相乘后就得到编码后的比特,相乘的过程就是编码的过程。在Polar码的编码过程中,中的一部分比特用来携带信息,称为信息比特,信息比特的索引的集合记作A;中另外的一部分比特置为收发端预先约定的固定值,称之为冻结比特(或固定比特),其索引的集合用A的补集Ac表示。冻结比特通常被设为0,只需要收发端预先约定,冻结比特序列可以被任意设置。Polar码的构造过程即集合A的选取过程,决定了Polar码的性能。
现有的Polar码的译码算法主要有逐比特消除(Successive Cancellation,SC)译码算法和逐次消除列表(Successive Cancellation List,SCL)译码算法,SC译码算法和SCL译码算法在短码时译码性能较好,但是在实际应用中,译码比特的数目是非常大的,SC译码算法和SCL译码算法只能提供串行译码,译码时延较大,为降低译码时延,现有的一种简化的SC/SCL译码算法中,通过将外码合并为多个外码子码,对多个外码子码进行并行译码,以降低译码时延。
但是,外码子码的码率接近1或0时,比较容易并行化,而外码子码的码率接近1/2时,译码复杂度较高,不易并行化。
发明内容
本申请提供一种编码方法及装置,可降低译码时延,提高译码吞吐率。
第一方面,本申请提供一种编码方法,包括:
获取待编码信息和母码长度N,待编码信息包括K个信息比特,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码的码率小于或等于第一阈值LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,其中,LB大于0且小于HB,HB小于或等于1,K、B、N和X为正整数,根据I和F进行极化编码。
通过第一方面提供的编码方法,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,其中的第一类型外码子码的码率小于或等于LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,LB和HB划分低码率外码子码、中间码率外码子码和高码率外码子码的门限,因此,X个外码子码由高码率的外码子码和低码率的外码子码组成,或者,X个外码子码由高码率的外码子码、低码率的外码子码和一个中间码率的外码子码组成,由于没有中间码率的外码子码或者只有一个中间码率的外码子码,因此在译码端译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。
如何根据K和N确定I,本申请中有三种可实施的方式,在一种可能的设计中,I根据K、第一可靠度序列Q1和第二可靠度序列Q2确定。其中,Q1和Q2的长度之和为最大母码码长Nmax,Q1包括个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号;Q2包括个外码子码中可靠度大于LB*B且小于HB*B的子信道序号;Q1中的子信道序号根据子信道可靠度按照第一顺序排列,第一顺序为从大到小或从小到大;Q2中的子信道序号根据外码子码的可靠度按照第一顺序排列,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照第一顺序排列。
在一种可能的设计中,Q1和Q2可以是根据Q、B、LB和HB确定,Q为与Nmax对应的各个子信道的可靠度序列,其中Q的获取可以通过高斯近似、密度演进、极化权重或其它方法获取。
或者,Q1和Q2可以为预配置的。
在一种可能的设计中,LB和HB可以为预定义的,即就是发送端和接收端已知的,或者,B、LB和HB可以是通过指示信息指示的。该指示信息可以是信令。
根据K、第一可靠度序列Q1和第二可靠度序列Q2确定I时,在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为BM,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,在根据K、Q1和Q2确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2中可靠度最大的一个子信道的可靠度,将Q1和Q2中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。
由于Q1中包括的是个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2中包括的是个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,与Q对应的低码率的外码子码被划分到Q2中的子信道全部为冻结比特的子信道,与Q对应的高码率的外码子码被划分到Q2中的子信道全部为信息比特的子信道,按照每次确定Q1或Q2中可靠度最大的一个子信道序号为I中的元素,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),有一个外码子码中有一部分子信道序号为信息比特,其余部分子信道序号为冻结比特,这个外码子码为中间码率的外码子码。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将Q2中当前可靠度最大的BM个子信道序号确定为I中的元素;在已确定的I中的子信道序号的数量K’满足K-K’小于BM时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。该方式中,每次从Q1中确定一个子信道序号作为I中的元素,每次从Q2中确定一组子信道序号(BM个)作为I中的元素,且每次确定的是Q1中可靠度最大的一个子信道序号或Q2中可靠度最大的一组(BM个)子信道序号。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),没有中间码率,所以X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,没有中间码率的外码子码。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1和Q2确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1和Q2中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1和Q2中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。
在一种可能的设计中,Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,I根据K、Q1、Q21、Q22、……和Q2p确定。
I根据K、Q1、Q21、Q22、……和Q2p确定时,在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为Bi,Bi=BM/P,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,在根据K、Q1、Q21、Q22、……和Q2p确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将Q1和Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。
由于Q1中包括的是个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2i中包括的是个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,与Q对应的低码率的外码子码被划分到Q2i中的子信道全部为冻结比特的子信道,与Q对应的高码率的外码子码被划分到Q2i中的子信道全部为信息比特的子信道,按照每次确定Q1或Q2i中可靠度最大的一个子信道序号为I中的元素,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),有一个外码子码中有一部分子信道序号为信息比特,其余部分子信道序号为冻结比特,这个外码子码为中间码率的外码子码。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为I中的元素,在已确定的I中的子信道序号的数量K’满足K-K’小于Bi时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),没有中间码率,所以X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,没有中间码率的外码子码。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1、Q21、Q22、……和Q2p确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1、Q21、Q22、……和Q2p中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1、Q21、Q22、……和Q2p中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。可以理解的是,若可靠度序列Q是从0开始排序的,则Q3由Q1和Q2中小于N的子信道序号构成,若可靠度序列是从1开始排序的,则Q3由Q1和Q2中小于或等于N的子信道序号构成。
在一种可能的设计中,I中的元素为Q3中可靠度最大的K个子信道序号。
通过本实施方式提供的编码方法,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
在一种可能的设计中,外码子码的可靠度为外码子码中可靠度最低的或最高的子信道的可靠度;或者,外码子码的可靠度为外码子码中第j个子信道的可靠度,1<j<m,m为外码子码包含的子信道序号的总数;或者,外码子码的可靠度为外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
在一种可能的设计中,I和F根据N、K、B、LB*B和HB*B通过码率分配方法确定。
在一种可能的设计中,码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,码率分配条件为2*Rx=Rx-+Rx+,其中,Rx为当前级的外码子码的码率,Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,Rx=R,n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx和Rx-满足码率分配条件的同时,还满足第一条件,第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
通过本实施方式提供的编码方法,LB为低码率的门限,HB为高码率的门限,LB与HB之间的码率为中间码率,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,第log2(B)级的外码子码的码率包括Rx和Rx-,0≤Rx-≤Rx+≤LB时,即Rx-大于或等于0且小于或等于LB,Rx+大于或等于0且小于或等于LB,Rx-小于或等于Rx+,其中,在码率为0时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为低码率,HB≤Rx-≤Rx+≤1时,即Rx-大于或等于HB且小于或等于1,Rx+大于或等于HB且小于或等于1,Rx-小于或等于Rx+,其中,在码率为1时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为高码率,0≤Rx-≤LB<HB≤Rx+≤1,即Rx-大于或等于0且小于或等于LB,Rx+大于或等于HB且小于或等于1,LB小于HB,可以使得第log2(B)级的外码子码的码率包括高码率和低码率,没有中间码率,其中的B为外码子码的码长,因此,按照方式三确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,即没有中间码率的外码子码。
在一种可能的设计中,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,可以为:
根据R和码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
在一种可能的设计中,I和F根据已确定出的码长为1的外码子码的码率确定。
本实施方式中,I和F根据已确定出的码长为1的外码子码确定,码长为1的外码子码的码率只可能是0或者是1,确定出码长为1的外码子码的码率,码率若是0则对应外码子码为冻结比特,码率若是1则对应外码子码为信息比特,I和F也就相应确定。
第二方面,本申提供一种编码装置,包括:获取模块、确定模块和编码模块,
其中,获取模块用于获取待编码信息和母码长度N,待编码信息包括K个信息比特,确定模块用于根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码的码率小于或等于第一阈值LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,其中,LB大于0且小于HB,HB小于或等于1,K、B、N和X为正整数,编码模块用于根据I和F进行极化编码。
在一种可能的设计中,I根据K、第一可靠度序列Q1和第二可靠度序列Q2确定;Q1和Q2的长度之和为最大母码码长Nmax,Q1包括个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号;Q2包括个外码子码中可靠度大于LB*B且小于HB*B的子信道序号;Q1中的子信道序号根据子信道可靠度按照第一顺序排列,第一顺序为从大到小或从小到大;Q2中的子信道序号根据外码子码的可靠度按照第一顺序排列,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照第一顺序排列。
在一种可能的设计中,Q1和Q2根据Q、B、LB和HB确定,Q为与Nmax对应的各个子信道的可靠度序列;
或者,Q1和Q2为预配置的。
在一种可能的设计中,LB和HB为预定义的;
或者,所述B、所述LB和所述HB是通过指示信息指示的。
在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为BM,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,确定模块用于:
在根据K、Q1和Q2确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2中可靠度最大的一个子信道的可靠度,将Q1和Q2中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K;或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将Q2中当前可靠度最大的BM个子信道序号确定为I中的元素;在已确定的I中的子信道序号的数量K’满足K-K’小于BM时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1和Q2确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1和Q2中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1和Q2中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。
在一种可能的设计中,Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,I根据K、Q1、Q21、Q22、……和Q2p确定。
在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为Bi,Bi=BM/P,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,确定模块用于:
在根据K、Q1、Q21、Q22、……和Q2p确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将Q1和Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K;或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为I中的元素,在已确定的I中的子信道序号的数量K’满足K-K’小于Bi时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1、Q21、Q22、……和Q2p确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1、Q21、Q22、……和Q2p中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1、Q21、Q22、……和Q2p中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。
在一种可能的设计中,I中的元素为Q3中可靠度最大的K个子信道序号。
在一种可能的设计中,外码子码的可靠度为外码子码中可靠度最低的或最高的子信道的可靠度;或者,外码子码的可靠度为外码子码中第j个子信道的可靠度,1<j<m,m为外码子码包含的子信道序号的总数;或者,外码子码的可靠度为外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
在一种可能的设计中,I和F根据N、K、B、LB*B和HB*B通过码率分配方法确定。
在一种可能的设计中,码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,码率分配条件为2*Rx=Rx-+Rx+,其中,Rx为当前级的外码子码的码率,Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,Rx=R,n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx和Rx-满足码率分配条件的同时,还满足第一条件,第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
在一种可能的设计中,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,可以为:
根据R和码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
在一种可能的设计中,I和F根据已确定出的码长为1的外码子码的码率确定。
第二方面及第二方面的各可能的设计中的有益效果可参见第一方面及第一方面的各可能的设计中的有益效果,此处不再赘述。
第三方面,本申提供一种编码方法,包括:
获取待编码信息和母码长度N,待编码信息包括K个信息比特,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码中信息比特的子信道序号的数量m小于或等于第一阈值KL,第二类型外码子码中m大于或等于第二阈值KH,第三类型外码子码中m大于KL且小于KH,其中KL+1<KH,KH小于或等于外码子码的长度B,K、N、X、m、KL、KH和B为正整数,根据I和F进行极化编码。
通过第三方面提供的编码方法,通过获取包括K个信息比特的待编码信息和母码长度N后,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,其中的第一类型外码子码中信息比特的子信道序号的数量m小于或等于KL,第二类型外码子码中m大于或等于第二阈值KH,第三类型外码子码中m大于KL且小于KH,KL和KH划分低码率外码子码、中间码率外码子码和高码率外码子码的门限,因此,X个外码子码由高码率的外码子码和低码率的外码子码组成,或者,X个外码子码由高码率的外码子码、低码率的外码子码和一个中间码率的外码子码组成,由于没有中间码率的外码子码或者只有一个中间码率的外码子码,因此在译码端译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。
如何根据K和N确定I,本申请中有三种可实施的方式,在一种可能的设计中,I根据K、第一可靠度序列Q1和第二可靠度序列Q2确定。Q1和Q2的长度之和为最大母码码长Nmax,Q1包括个外码子码中可靠度小于或等于KL的子信道序号和个外码子码中可靠度大于或等于KH的子信道序号;Q2包括个外码子码中可靠度大于KL且小于KH的子信道序号;Q1中的子信道序号根据子信道可靠度按照第一顺序排列,第一顺序为从大到小或从小到大;Q2中的子信道序号根据外码子码的可靠度按照第一顺序排列,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照第一顺序排列。
在一种可能的设计中,Q1和Q2可以是根据Q、B、KL和KH确定,Q为与Nmax对应的各个子信道的可靠度序列,其中Q的获取可以通过高斯近似、密度演进、极化权重或其它方法获取。
或者,Q1和Q2可以为预配置的。
在一种可能的设计中,B、KL和KH为预定义的,即就是发送端和接收端已知的。
或者,B、LB和HB是通过指示信息指示的。该指示信息可以是信令。
根据K、第一可靠度序列Q1和第二可靠度序列Q2确定I时,在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为BM,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,在根据K、Q1和Q2确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2中可靠度最大的一个子信道的可靠度,将Q1和Q2中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。
由于Q1中包括的是个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2中包括的是个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,与Q对应的低码率的外码子码被划分到Q2中的子信道全部为冻结比特的子信道,与Q对应的高码率的外码子码被划分到Q2中的子信道全部为信息比特的子信道,按照每次确定Q1或Q2中可靠度最大的一个子信道序号为I中的元素,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),有一个外码子码中有一部分子信道序号为信息比特,其余部分子信道序号为冻结比特,这个外码子码为中间码率的外码子码。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将Q2中当前可靠度最大的BM个子信道序号确定为I中的元素;在已确定的I中的子信道序号的数量K’满足K-K’小于BM时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),没有中间码率,所以X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,没有中间码率的外码子码。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1和Q2确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1和Q2中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1和Q2中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。
在一种可能的设计中,Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,I根据K、Q1、Q21、Q22、……和Q2p确定。
I根据K、Q1、Q21、Q22、……和Q2p确定时,在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为Bi,Bi=BM/P,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,在根据K、Q1、Q21、Q22、……和Q2p确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将Q1和Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。
由于Q1中包括的是个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2i中包括的是个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,与Q对应的低码率的外码子码被划分到Q2i中的子信道全部为冻结比特的子信道,与Q对应的高码率的外码子码被划分到Q2i中的子信道全部为信息比特的子信道,按照每次确定Q1或Q2i中可靠度最大的一个子信道序号为I中的元素,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),有一个外码子码中有一部分子信道序号为信息比特,其余部分子信道序号为冻结比特,这个外码子码为中间码率的外码子码。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为I中的元素,在已确定的I中的子信道序号的数量K’满足K-K’小于Bi时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),没有中间码率,所以X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,没有中间码率的外码子码。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1、Q21、Q22、……和Q2p确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1、Q21、Q22、……和Q2p中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1、Q21、Q22、……和Q2p中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。可以理解的是,若可靠度序列Q是从0开始排序的,则Q3由Q1和Q2中小于N的子信道序号构成,若可靠度序列是从1开始排序的,则Q3由Q1和Q2中小于或等于N的子信道序号构成。
在一种可能的设计中,I中的元素为Q3中可靠度最大的K个子信道序号。
通过本实施方式提供的编码方法,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
在一种可能的设计中,外码子码的可靠度为外码子码中可靠度最低的或最高的子信道的可靠度;或者,
外码子码的可靠度为外码子码中第j个子信道的可靠度,1<j<m,m为外码子码包含的子信道序号的总数;或者,
外码子码的可靠度为外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
在一种可能的设计中,I和F根据N、K、B、KL和KH通过码率分配方法确定。
在一种可能的设计中,码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,码率分配条件为2*Rx=Rx-+Rx+,其中,Rx为当前级的外码子码的码率,Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,Rx=R,n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx和Rx-满足码率分配条件的同时,还满足第一条件,第一条件为下述中的任一种:
通过本实施方式提供的编码方法,为低码率的门限,为高码率的门限,与之间的码率为中间码率,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,第log2(B)级的外码子码的码率包括Rx和Rx-,时,即Rx-大于或等于0且小于或等于Rx+大于或等于0且小于或等于Rx-小于或等于Rx+,其中,在码率为0时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为低码率,时,即Rx-大于或等于且小于或等于1,Rx+大于或等于且小于或等于1,Rx-小于或等于Rx+,其中,在码率为1时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为高码率,即Rx-大于或等于0且小于或等于Rx+大于或等于且小于或等于1,LB小于可以使得第log2(B)级的外码子码的码率包括高码率和低码率,没有中间码率,由于B为外码子码的码长,因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,即没有中间码率的外码子码。
在一种可能的设计中,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,包括:
根据R和码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
在一种可能的设计中,I和F根据已确定出的码长为1的外码子码的码率确定。
本实施方式中,I和F根据已确定出的码长为1的外码子码确定,码长为1的外码子码的码率只可能是0或者是1,确定出码长为1的外码子码的码率,码率若是0则对应外码子码为冻结比特,码率若是1则对应外码子码为信息比特,I和F也就相应确定。
第四方面,本申提供一种编码装置,包括:获取模块、确定模块和编码模块,
其中,获取模块用于获取待编码信息和母码长度N,待编码信息包括K个信息比特,确定模块用于根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码中信息比特的子信道序号的数量m小于或等于第一阈值KL,第二类型外码子码中m大于或等于第二阈值KH,第三类型外码子码中m大于KL且小于KH,其中KL+1<KH,KH小于或等于外码子码的长度B,K、N、X、m、KL、KH和B为正整数,编码模块用于根据I和F进行极化编码。
在一种可能的设计中,I根据K、第一可靠度序列Q1和第二可靠度序列Q2确定;
Q1和Q2的长度之和为最大母码码长Nmax,Q1包括个外码子码中可靠度小于或等于KL的子信道序号和个外码子码中可靠度大于或等于KH的子信道序号;Q2包括个外码子码中可靠度大于KL且小于KH的子信道序号;Q1中的子信道序号根据子信道可靠度按照第一顺序排列,第一顺序为从大到小或从小到大;Q2中的子信道序号根据外码子码的可靠度按照第一顺序排列,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照第一顺序排列。
在一种可能的设计中,Q1和Q2根据Q、B、KL和KH确定,Q为与Nmax对应的各个子信道的可靠度序列;
或者,Q1和Q2为预配置的。
在一种可能的设计中,B、KL和KH为预定义的;或者,所述B、所述LB和所述HB是通过指示信息指示的。
在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为BM,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,确定模块用于:在根据K、Q1和Q2确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2中可靠度最大的一个子信道的可靠度,将Q1和Q2中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K;或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将Q2中当前可靠度最大的BM个子信道序号确定为I中的元素;在已确定的I中的子信道序号的数量K’满足K-K’小于BM时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1和Q2确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1和Q2中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1和Q2中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。
在一种可能的设计中,Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,I根据K、Q1、Q21、Q22、……和Q2p确定。
在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为Bi,Bi=BM/P,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,确定模块用于:在根据K、Q1、Q21、Q22、……和Q2p确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将Q1和Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K;或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为I中的元素,在已确定的I中的子信道序号的数量K’满足K-K’小于Bi时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1、Q21、Q22、……和Q2p确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1、Q21、Q22、……和Q2p中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1、Q21、Q22、……和Q2p中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。
在一种可能的设计中,I中的元素为Q3中可靠度最大的K个子信道序号。
在一种可能的设计中,外码子码的可靠度为外码子码中可靠度最低的或最高的子信道的可靠度;或者,外码子码的可靠度为外码子码中第j个子信道的可靠度,1<j<m,m为外码子码包含的子信道序号的总数;或者,外码子码的可靠度为外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
在一种可能的设计中,I和F根据N、K、B、KL和KH通过码率分配方法确定。
在一种可能的设计中,码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,码率分配条件为2*Rx=Rx-+Rx+,其中,Rx为当前级的外码子码的码率,Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,Rx=R,n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx和Rx-满足码率分配条件的同时,还满足第一条件,第一条件为下述中的任一种:
在一种可能的设计中,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,包括:
根据R和码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
在一种可能的设计中,I和F根据已确定出的码长为1的外码子码的码率确定。
第四方面及第四方面的各可能的设计中的有益效果可参见第三方面及第三方面的各可能的设计中的有益效果,此处不再赘述。
第五方面,本申提供一种译码方法,包括:获取待译码信息、待译码信息的长度M、母码长度N和信息比特数K,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码的码率小于或等于第一阈值LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,其中,LB大于0且小于HB,HB小于或等于1,K、B、N和X为正整数,根据外码子码的码率对待译码信息进行极化译码,其中,对码率小于或等于LB的外码子码进行并行译码,对码率大于或等于HB的外码子码进行并行译码。
通过第五方面提供的译码方法,通过获取待译码信息、待译码信息的长度M、母码长度N和信息比特数K,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,最后根据外码子码的码率对待译码信息进行极化译码,其中,对码率小于或等于LB的外码子码进行并行译码,对码率大于或等于HB的外码子码进行并行译码。由于I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,其中的第一类型外码子码的码率小于或等于LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,LB和HB划分低码率外码子码、中间码率外码子码和高码率外码子码的门限,因此,X个外码子码由高码率的外码子码和低码率的外码子码组成,或者,X个外码子码由高码率的外码子码、低码率的外码子码和一个中间码率的外码子码组成,由于没有中间码率的外码子码或者只有一个中间码率的外码子码,因此在译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。
在一种可能的设计中,I根据K、第一可靠度序列Q1和第二可靠度序列Q2确定;Q1和Q2的长度之和为最大母码码长Nmax,Q1包括个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号;Q2包括个外码子码中可靠度大于LB*B且小于HB*B的子信道序号;Q1中的子信道序号根据子信道可靠度按照第一顺序排列,第一顺序为从大到小或从小到大;Q2中的子信道序号根据外码子码的可靠度按照第一顺序排列,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照第一顺序排列。
在一种可能的设计中,Q1和Q2可以是根据Q、B、LB和HB确定,Q为与Nmax对应的各个子信道的可靠度序列,其中Q的获取可以通过高斯近似、密度演进、极化权重或其它方法获取。
或者,Q1和Q2可以为预配置的。
在一种可能的设计中,LB和HB可以为预定义的,即就是发送端和接收端已知的,
或者,B、LB和HB可以是通过指示信息指示的。该指示信息可以是信令。
根据K、第一可靠度序列Q1和第二可靠度序列Q2确定I时,在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为BM,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,在根据K、Q1和Q2确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2中可靠度最大的一个子信道的可靠度,将Q1和Q2中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。
由于Q1中包括的是个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2中包括的是个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,与Q对应的低码率的外码子码被划分到Q2中的子信道全部为冻结比特的子信道,与Q对应的高码率的外码子码被划分到Q2中的子信道全部为信息比特的子信道,按照每次确定Q1或Q2中可靠度最大的一个子信道序号为I中的元素,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),有一个外码子码中有一部分子信道序号为信息比特,其余部分子信道序号为冻结比特,这个外码子码为中间码率的外码子码。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将Q2中当前可靠度最大的BM个子信道序号确定为I中的元素;在已确定的I中的子信道序号的数量K’满足K-K’小于BM时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。该方式中,每次从Q1中确定一个子信道序号作为I中的元素,每次从Q2中确定一组子信道序号(BM个)作为I中的元素,且每次确定的是Q1中可靠度最大的一个子信道序号或Q2中可靠度最大的一组(BM个)子信道序号。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),没有中间码率,所以X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,没有中间码率的外码子码。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1和Q2确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1和Q2中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1和Q2中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。
在一种可能的设计中,Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,I根据K、Q1、Q21、Q22、……和Q2p确定。
I根据K、Q1、Q21、Q22、……和Q2p确定时,在一种可能的设计中,I中的子信道序号为Q1中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为Bi,Bi=BM/P,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,在根据K、Q1、Q21、Q22、……和Q2p确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将Q1和Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。
由于Q1中包括的是个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2i中包括的是个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,与Q对应的低码率的外码子码被划分到Q2i中的子信道全部为冻结比特的子信道,与Q对应的高码率的外码子码被划分到Q2i中的子信道全部为信息比特的子信道,按照每次确定Q1或Q2i中可靠度最大的一个子信道序号为I中的元素,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),有一个外码子码中有一部分子信道序号为信息比特,其余部分子信道序号为冻结比特,这个外码子码为中间码率的外码子码。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为I中的元素,在已确定的I中的子信道序号的数量K’满足K-K’小于Bi时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),没有中间码率,所以X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,没有中间码率的外码子码。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1、Q21、Q22、……和Q2p确定,或者,Q3为预配置的。
在一种可能的设计中,Q3由Q1、Q21、Q22、……和Q2p中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1、Q21、Q22、……和Q2p中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。可以理解的是,若可靠度序列Q是从0开始排序的,则Q3由Q1和Q2中小于N的子信道序号构成,若可靠度序列是从1开始排序的,则Q3由Q1和Q2中小于或等于N的子信道序号构成。
在一种可能的设计中,I中的元素为Q3中可靠度最大的K个子信道序号。
通过本实施方式提供的编码方法,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
在一种可能的设计中,外码子码的可靠度为外码子码中可靠度最低的或最高的子信道的可靠度;或者,外码子码的可靠度为外码子码中第j个子信道的可靠度,1<j<m,m为外码子码包含的子信道序号的总数;或者,外码子码的可靠度为外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
在一种可能的设计中,I和F根据N、K、B、LB*B和HB*B通过码率分配方法确定。
在一种可能的设计中,码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,码率分配条件为2*Rx=Rx-+Rx+,其中,Rx为当前级的外码子码的码率,Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,Rx=R,n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx和Rx-满足码率分配条件的同时,还满足第一条件,第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
通过本实施方式提供的译码方法,LB为低码率的门限,HB为高码率的门限,LB与HB之间的码率为中间码率,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,第log2(B)级的外码子码的码率包括Rx和Rx-,0≤Rx-≤Rx+≤LB时,即Rx-大于或等于0且小于或等于LB,Rx+大于或等于0且小于或等于LB,Rx-小于或等于Rx+,其中,在码率为0时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为低码率,HB≤Rx-≤Rx+≤1时,即Rx-大于或等于HB且小于或等于1,Rx+大于或等于HB且小于或等于1,Rx-小于或等于Rx+,其中,在码率为1时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为高码率,0≤Rx-≤LB<HB≤Rx+≤1,即Rx-大于或等于0且小于或等于LB,Rx+大于或等于HB且小于或等于1,LB小于HB,可以使得第log2(B)级的外码子码的码率包括高码率和低码率,没有中间码率,其中的B为外码子码的码长,因此,按照方式三确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,即没有中间码率的外码子码。
在一种可能的设计中,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,可以为:
根据R和码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
在一种可能的设计中,I和F根据已确定出的码长为1的外码子码的码率确定。
本实施方式中,I和F根据已确定出的码长为1的外码子码确定,码长为1的外码子码的码率只可能是0或者是1,确定出码长为1的外码子码的码率,码率若是0则对应外码子码为冻结比特,码率若是1则对应外码子码为信息比特,I和F也就相应确定。
第六方面,本申提供一种译码装置,包括:
获取模块,用于获取待译码信息、待译码信息的长度M、母码长度N和信息比特数K;
确定模块,用于根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码的码率小于或等于第一阈值LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,其中,LB大于0且小于HB,HB小于或等于1,K、B、N和X为正整数;
译码模块,用于根据外码子码的码率对待译码信息进行极化译码,其中,对码率小于或等于LB的外码子码进行并行译码,对码率大于或等于HB的外码子码进行并行译码。
在一种可能的设计中,I根据K、第一可靠度序列Q1和第二可靠度序列Q2确定;
Q1中的子信道序号根据子信道可靠度按照第一顺序排列,第一顺序为从大到小或从小到大;
Q2中的子信道序号根据外码子码的可靠度按照第一顺序排列,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照第一顺序排列。
在一种可能的设计中,
Q1和Q2根据Q、B、LB和HB确定,Q为与Nmax对应的各个子信道的可靠度序列;
或者,
Q1和Q2为预配置的。
在一种可能的设计中,LB和HB为预定义的;
或者,
所述B、所述LB和所述HB是通过指示信息指示的。
在一种可能的设计中,
I中的子信道序号为Q1中的至少一个子信道序号;或者,
I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一个子信道序号;或者,
I中的子信道序号为Q1中的至少一个子信道序号和Q2中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为BM,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,
确定模块用于:在根据K、Q1和Q2确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2中可靠度最大的一个子信道的可靠度,将Q1和Q2中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K;或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将Q2中当前可靠度最大的BM个子信道序号确定为I中的元素;在已确定的I中的子信道序号的数量K’满足K-K’小于BM时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1和Q2确定,或者,Q3为预配置的。
在一种可能的设计中,
Q3由Q1和Q2中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1和Q2中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。
在一种可能的设计中,Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,I根据K、Q1、Q21、Q22、……和Q2p确定。
在一种可能的设计中,
I中的子信道序号为Q1中的至少一个子信道序号;或者,
I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,
I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为Bi,Bi=BM/P,BM为一个外码子码中属于中间码率的子信道的数量。
在一种可能的设计中,
确定模块用于:在根据K、Q1、Q21、Q22、……和Q2p确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将Q1和Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K;或者,
依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为I中的元素,在已确定的I中的子信道序号的数量K’满足K-K’小于Bi时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。
在一种可能的设计中,I根据K和Q3确定,Q3根据N、Q1、Q21、Q22、……和Q2p确定,或者,Q3为预配置的。
在一种可能的设计中,
Q3由Q1、Q21、Q22、……和Q2p中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1、Q21、Q22、……和Q2p中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。
在一种可能的设计中,I中的元素为Q3中可靠度最大的K个子信道序号。
在一种可能的设计中,
外码子码的可靠度为外码子码中可靠度最低的或最高的子信道的可靠度;或者,
外码子码的可靠度为外码子码中第j个子信道的可靠度,1<j<m,m为外码子码包含的子信道序号的总数;或者,
外码子码的可靠度为外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
在一种可能的设计中,I和F根据N、K、B、LB*B和HB*B通过码率分配方法确定。
在一种可能的设计中,码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,码率分配条件为2*Rx=Rx-+Rx+,其中,Rx为当前级的外码子码的码率,Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,Rx=R,n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx和Rx-满足码率分配条件的同时,还满足第一条件,第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
在一种可能的设计中,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,包括:
根据R和码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
在一种可能的设计中,I和F根据已确定出的码长为1的外码子码的码率确定。
第六方面及第六方面的各可能的设计中的有益效果可参见第五方面及第五方面的各可能的设计中的有益效果,此处不再赘述。
第七方面,本申提供一种编码装置,包括:处理器,用于执行存储器中存储的程序,当所述程序被执行时,使得所述编码装置执行第一方面及第一方面任一种可能的设计中或第三方面及第三方面任一种可能的设计中的编码方法。
第八方面,本申提供一种译码装置,包括:处理器,用于执行存储器中存储的程序,当所述程序被执行时,使得所述编码装置执行执行第五方面及第五方面任一种可能的设计中的译码方法。
第九方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有可执行指令,当其在计算机上运行时,使得第一方面及第一方面任一种可能的设计中或第三方面及第三方面任一种可能的设计中的编码方法被执行。
第十方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有可执行指令,当其在计算机上运行时,使得第五方面及第五方面任一种可能的设计中的译码方法被执行。
第十一方面,本申请提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。编码装置的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得编码装置实施第一方面及第一方面任一种可能的设计中或第三方面及第三方面任一种可能的设计中的方法。
第十二方面,本申请提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。译码装置的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得译码装置实施第五方面及第五方面任一种可能的设计中的译码方法。
第十三方面,本申请提供一种通信装置,包括输入输出接口和逻辑电路;
所述输入输出接口用于获取待编码信息;
所述逻辑电路用于执行第一方面及第一方面任一种可能的设计中或第三方面及第三方面任一种可能的设计中的方法根据所述待编码信息进行极化编码。
第十四方面,本申请提供一种通信装置,包括输入输出接口和逻辑电路;
所述输入输出接口用于获取待译码信息;
所述逻辑电路用于执行第五方面及第五方面任一种可能的设计中的方法根据所述待译码信息进行极化译码。
附图说明
图1为一种译码路径的示意图;
图2为本申请提供的一种通信系统的示意图;
图3为一种通信系统的流程示意图;
图4为外码与内码的组成示意图;
图5为本申请提供的一种编码方法实施例的流程图;
图6为本申请提供的一种编码方法实施例的流程图;
图7为本申请提供的一种编码方法实施例的流程图;
图8为Nmax=8192、N=1024、B=8、LB*B=1以及HB*B=6时Q1、Q2和Q3的确定过程示意图;
图9为Nmax=8192、N=1024、B=16、LB*B=5以及HB*B=9时Q1、Q2和Q3的确定过程示意图;
图10为Nmax=8192、N=1024、B=16、LB*B=3以及HB*B=13时Q1、Q2和Q3的确定过程示意图;
图11为本申请提供的一种编码方法实施例的流程图;
图12为N=8的极化码的篱笆图示意图;
图13为本申请提供的一种译码方法实施例的流程图;
图14为本申请提供的一种编码装置实施例的结构示意图;
图15为本申请提供的一种译码装置实施例的结构示意图;
图16为本申请提供的一种编码装置结构示意图;
图17为本申请提供的一种译码装置结构示意图;
图18为本申请提供的一种编码装置结构示意图;
图19为本申请提供的一种译码装置结构示意图;
图20为本申请提供的一种通信装置结构示意图。
具体实施方式
本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明,本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或方案不应被解释为比其它实施例或方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例可以应用于5G移动通信系统、卫星通信等无线通信系统中,图2为本申请提供的一种通信系统的示意图,如图2所示,无线通信系统通常由小区组成,每个小区包含一个网络设备,基站向多个终端提供通信服务。
需要说明的是,本申请实施例提及的无线通信系统包括但不限于:窄带物联网系统(Narrow Band-Internet of Things,NB-IoT)、长期演进系统(Long Term Evolution,LTE)以及5G移动通信系统的三大应用场景增强型移动宽带(Enhanced Mobile BroadBand,eMBB),超低时延超高可靠通信(Ultra-reliable and low-latencycommunications,URLLC)以及大规模机器通信(Massive Machine-Type Communications,mMTC)。
本申请实施例中,基站是一种部署在无线接入网中为终端提供无线通信功能的装置。上述基站可以包括各种形式的LTE中的演进型基站(evolutional Node B,eNB或eNodeB);或者5G网络或者未来演进的公共陆地移动网络(public land mobile network,PLMN)中的基站,宽带网络业务网关(broadband network gateway,BNG),汇聚交换机或非第三代合作伙伴项目(3rd generation partnership project,3GPP)接入设备等。可选的,本申请实施例中的网络设备可以包括各种形式的基站,例如:宏基站、微基站(也称为小站)、中继站、接入点、5G基站或未来的基站、传输点(transmitting and receiving point,TRP)、发射点(transmitting point,TP)、移动交换中心以及设备到设备(Device-to-Device,D2D)、车辆外联(vehicle-to-everything,V2X)、机器到机器(machine-to-machine,M2M)通信中承担基站功能的设备等。为方便描述,本申请所有实施例中,上述为终端提供无线通信功能的装置统称为网络设备或基站或BS。
本申请实施例中所涉及到的终端可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备。终端可以为手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、用户设备(user equipment,UE)、接入终端、用户单元(subscriber unit)、用户站、移动站、移动台(mobile station)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备或可穿戴设备、虚拟现实(Virtual Reality,VR)终端设备、增强现实(AugmentedReality,AR)终端设备、工业控制(industrial control)中的无线设备、无人驾驶(selfdriving)中的无线设备、远程医疗(remote medical)中的无线设备、智能电网(smartgrid)中的无线设备、运输安全(transportation safety)中的无线设备、智慧城市(smartcity)中的无线设备、智慧家庭(smart home)中的无线设备等,在此不做限定。
图2所示的无线通信系统中,基站和终端可以为发送设备或接收设备,发送设备为编码侧,可以用于编码和输出编码信息,编码信息在信道上传输至译码侧;接收设备为译码侧,可以用于接收发送设备发送的编码信息,并对该编码信息译码。
图3为一种通信系统的流程示意图,如图3所示,在发送设备侧,信源依次经过信源编码、信道编码和数字调制后发出。在接收设备侧,接收到的待译码信息经数字解调得到LLR序列,接着,LLR序列经信道译码、信源译码得到译码后的信息,其中,信道编码在整个通信系统中对信息传输的可靠度起到至关重要的作用。信道编码可以采用Polar码,具体可以采用本申请提供的编码方法。
现有Polar码中经常采用的译码算法为SC译码算法和SCL译码算法。SC译码算法的译码过程为:接收到信号后,逐个计算信息比特的对数似然比(Log Likelihood Ratio,LLR),若信息比特的LLR>0,则译码结果为0,若信息比特的LLR<0,则译码结果为1,固定比特无论LLR为多少译码结果都置为0,SC译码其实是对极化信道逐一译码的过程。SCL译码算法是建立在SC译码算法的基础之上的译码算法,SCL将0和1对应的译码结果都保存作为2个分支译码路径,图1为一种译码路径的示意图,如图1所示,每一层代表1个译码比特,若译码结果为0,则沿着左子树发展路径,若译码结果为1,则沿着右子树发展路径,当译码路径的总数超过预设的路径宽度L(一般L=2n)时,选择出路径度量(Path Metric,PM)值最佳的L条路径保存并继续发展路径以译出后续的译码比特,对于每一级的译码比特,对L条路径的PM值按照从小到大排序,并通过PM值和循环冗余码校验(Cyclic Redundancy Check,CRC)来筛选出正确的路径,如此反复,直到译完最后一个比特,其中的PM用于判断路径的好坏,PM通过LLR计算得出。
相关技术中,为降低译码时延,采用简化的SC/SCL译码算法,通过将外码合并为多个外码子码,对多个外码子码进行并行译码,从而降低译码时延,但是,外码子码的码率接近1/2时,译码复杂度较高,不易并行化。为解决这一问题,本申请提供一种编码方法及装置,获取到待编码信息和母码长度N后,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,所确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由高码率的外码子码和低码率的外码子码组成,或者,X个外码子码由高码率的外码子码、低码率的外码子码和一个中间码率的外码子码组成,由于没有中间码率的外码子码或者只有一个中间码率的外码子码,因此在译码端译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。下面结合附图详细说明本申请提供的编码方法及装置。
为方便起见,首先给出本申请中可能用到的参数的定义,如下:
K:信息比特数量。
N:母码长度。
M:编码后比特序列长度。
Nmax:系统所支持的最大母码码长,下文中简称最大母码码长。
I:信息比特的子信道对应的集合。
Q:依照可靠度排序后的子信道序列。
F:冻结比特的子信道对应的集合。
Polar码可以视为广义级联码(generalized concatenated codes,GCC),由外码和内码组成,下面结合图4解释Polar码的外码与内码的概念。图4为外码与内码的组成示意图,图4中以母码长度N为8、内码数量为2为例,内码码长为4,外码数量为4,外码码长为2。图4所示右边方框中[u0 u1]是一个外码的待编码比特,[u2 u3]是一个外码的待编码比特,[u4u5]是一个外码的待编码比特,[u6 u7]是一个外码的待编码比特,图4所示一个内码的待编码比特是[c0 c1 c2 c3],另一个内码的待编码比特是[c4 c5 c6 c7]。编码过程为:首先将待编码的比特序列进行外码编码,即将u0和u1经过码长为2的外码编码,得到外码编码后码字c0和c4;将u2和u3经过码长为2的外码编码,得到外码编码后码字c1和c5;将u4和u5经过码长为2的外码编码,得到外码编码后码字c2和c6;将u6和u7经过码长为2的外码编码,得到外码编码后码字c3和c7。然后,将各外码相同位置的编码后比特取出,进行内码编码,即将各外码第一个编码后比特取出得到第一个内码的待编码比特[c0 c1 c2 c3],进行内码编码,得到编码后比特序列[y0 y2 y4 y6];将各外码第二个编码后比特取出得到第二个内码的待编码比特[c4 c5 c6 c7],进行内码编码,得到编码后比特序列[y1 y3 y5 y7]。最后将内码编码后比特序列按序拼接,即可得到最终的编码后比特序列。
需要说明的是,在本申请实施例中,上述一个外码可以称为一个外码子码或外码子块,本申请实施例中均是以外码子码为例进行说明,即就是说,以外码子码的码长为2为例,图3所示右边方框中[u0 u1]是一个外码子码的待编码比特,[u2 u3]是一个外码子码的待编码比特,[u4 u5]是一个外码子码的待编码比特,[u6 u7]是一个外码子码的待编码比特。
图5为本申请提供的一种编码方法实施例的流程图,本实施例的执行主体可以是基站或终端等发送设备,如图5所示,本实施例的方法可以包括:
S101、获取待编码信息和母码长度N,待编码信息包括K个信息比特。
S102、根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成。
其中,I中的子信道序号对应的信息比特分布在X个外码子码中,X大于或等于1,也就是说,I中的子信道序号也可以分布在1个外码子码中,本实施例中,X个外码子码的构成有两种可能的方式:一种是X个外码子码由第一类型外码子码和第二类型外码子码组成;另一种是X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,也就是说,X个外码子码中有1个第三类型外码子码,其余外码子码是第二类型外码子码或第一类型外码子码。
其中,在一种可实施的方式中,第一类型外码子码的码率小于或等于第一阈值LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,其中,LB大于0且小于HB,HB小于或等于1,K、B、N和X为正整数。在另一种可实施的方式中,还可以是:第一类型外码子码的码率小于第一阈值LB,第二类型外码子码的码率大于第二阈值HB,第三类型外码子码的码率大于或等于LB且小于或等于HB。这两种可实施的方式取决于LB和HB的取值,LB和HB是划分低码率外码子码、中间码率外码子码和高码率外码子码的门限,一个外码子码的码率为外码子码中信息比特的数量与外码子码的码长的比值,如码长为B的外码子码的信息比特的数量为m∈[0,B],外码子码的码率为中的任一个值。例如,当B等于16时,LB可以为或或KH可以为或或等,LB和HB还可以是别的值,可以不是信息比特的数量与外码子码的码长B的比值。当B等于32时,LB可以为或或或HB可以为或或等,LB和HB还可以是别的值,可以不是信息比特的数量与外码子码的码长B的比值。
本实施例中,LB和HB设定时,可选的,中间码率是指大小在LB和HB之间的码率,高码率是指大于或等于HB的码率,低码率是指小于或等于LB的码率。例如,中间码率可以是 即大于LB且小于HB,则高码率是指大于或等于HB的码率,低码率是指小于或等于LB的码率。又如,中间码率可以是即大于或等于LB且小于或等于HB,则高码率是指大于HB的码率,低码率是指小于LB的码率。
可以理解的是,第一类型外码子码的码率小于或等于LB,相应地第一类型外码子码可以称为低码率外码子码,第二类型外码子码的码率大于或等于HB,相应地第二类型外码子码可以称为高码率外码子码,第三类型外码子码的码率大于LB且小于HB,相应地第三类型外码子码可以称为中间码率外码子码。
S103、根据I和F进行极化编码。
具体地,确定了I和F后,分别确定各个子信道上的比特的值,例如依照I放置信息比特,依照F放置冻结比特,对确定的所有比特进行极化编码,得到编码后比特序列。
在一种可实施的方式中,I中还可以包括循环冗余校验(Cyclic RedundancyCheck,CRC)比特,F中还可以包括奇偶校验(Parity-Check,PC)比特,CRC比特的位置和PC比特的位置的确定可以采用现有的确定方式,本实施例对此不作限制。在本实施方式中,确定了I和F后,确定I中CRC比特的子信道对应的集合C和F中PC比特的子信道对应的集合PF,然后分别确定各个子信道上的比特的值,例如依照I放置信息比特,依照F放置冻结比特,依照C放置CRC比特,依照PF放置PC比特,对确定的所有比特进行极化编码,得到编码后比特序列。
本实施例中,根据K和N确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由高码率的外码子码和低码率的外码子码组成,或者,X个外码子码由高码率的外码子码、低码率的外码子码和一个中间码率的外码子码组成,由于没有中间码率的外码子码或者只有一个中间码率的外码子码,因此在译码端译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。
进一步地,S102中如何根据K和N确定I,本实施例中有如下三种可实施的方式:
方式一、I根据K、第一可靠度序列Q1和第二可靠度序列Q2确定。
其中,Q1和Q2的长度之和为最大母码码长Nmax,Q1包括个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2包括个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,即就是说,一共有个外码子码,Q1包括的是每个外码子码中可靠度小于或等于LB*B的子信道序号和可靠度大于或等于HB*B的子信道序号,即Q1中包括的是每个外码子码中可靠度位于两边的子信道序号,Q2包括的是每个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,即Q2包括的是每个外码子码中可靠度位于中间的子信道序号。
Q1中的子信道序号根据子信道可靠度按照第一顺序排列,第一顺序为从大到小或从小到大,Q2中的子信道序号根据外码子码的可靠度按照第一顺序排列,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照第一顺序排列。即就是说,Q1和Q2中的子信道序号均按照可靠度的大小排序,可以是从大到小的顺序,也可以是从小到大的顺序,但是Q1和Q2的顺序相同。对于Q2而言,Q2中的子信道序号先根据外码子码的可靠度按照第一顺序排列,其中,外码子码的可靠度由外码子码中的子信道可靠度决定,可以是外码子码中可靠度最低的或最高的子信道的可靠度;或者,外码子码的可靠度可以是外码子码中第j个子信道的可靠度,1<j<m,m为外码子码包含的子信道序号的总数;或者,外码子码的可靠度可以是外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和,需要说明的是,外码子码的可靠度是外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和时,由于Q2包括的是每个外码子码中可靠度位于中间的子信道序号,因此在计算外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和时,此处的“所有子信道”可以是外码子码中的所有子信道,也可以是外码子码中属于Q2的所有子信道。
在方式一中,Q1和Q2可以是根据Q、B、LB和HB确定,Q为与Nmax对应的各个子信道的可靠度序列,Q可以按照可靠度升序或者降序排列,或者Q还可以按照任意一种发送端与接收端约定的排序方式排列。
各个子信道的可靠度序列Q的获取可以通过高斯近似(Gaussian Approximation,GA)、密度演进(Density Evolution,DE)、极化权重(Polar Weight,PW)或其它方法获取。
以母码长度N=16为例,例如通过极化权重得到各个子信道的可靠度序列Q=[021 4 8 3 5 6 10 912 7 11 13 14 15],可以看出,Q中存储的是子信道的序号,上述的集合I、F等包含的是也是子信道的序号。
其中,可选的,LB和HB可以为预定义的,即就是发送端和接收端已知的,可选的,B、LB*B和HB*B还可以是通过指示信息指示,此时,本实施例的方法还可以包括:向接收设备发送指示信息,指示信息携带B、LB*B和HB*B。发送设备向接收设备发送指示信息可以是在根据选择的B、LB*B和HB*B进行编码之前。还可以是由接收设备确定,通过指示信息发送给发送设备,此时,本实施例的方法还可以包括:从接收设备接收指示信息,指示信息携带B、LB*B和HB*B。可选的,指示信息可以是信令。
在方式一中,Q1和Q2还可以是预配置的。
在方式一中,根据K、第一可靠度序列Q1和第二可靠度序列Q2确定I时,作为一种可实施的方式,I中的子信道序号可以为Q1中的至少一个子信道序号;或者,I中的子信道序号可以为Q1中的至少一个子信道序号和Q2中的至少一个子信道序号;或者,I中的子信道序号可以为Q1中的至少一个子信道序号和Q2中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为BM,其中的BM为一个外码子码中属于中间码率的子信道的数量,也即为一个外码子码中信息比特子信道序号的数量大于LB*B且小于HB*B的总数。例如,外码子码的码长为16,LB*B为3,HB*B为13时,中间码率可以是m为3与13之间的数,m可以为4、5、6、7、8、9、10、11和12,一共9个属于中间码率的子信道,即BM为9。
进一步地,作为一种可实施的方式,在根据K、Q1和Q2确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2中可靠度最大的一个子信道的可靠度,将Q1和Q2中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。该方式中,每次从Q1和Q2中均确定一个子信道序号作为I中的元素,且每次确定的是Q1和Q2中可靠度最大的一个子信道序号,直到已确定的I中的元素个数为K。由于Q1中包括的是个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2中包括的是个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,与Q对应的低码率的外码子码被划分到Q2中的子信道全部为冻结比特的子信道,与Q对应的高码率的外码子码被划分到Q2中的子信道全部为信息比特的子信道,按照每次确定Q1或Q2中可靠度最大的一个子信道序号为I中的元素,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),有一个外码子码中有一部分子信道序号为信息比特,其余部分子信道序号为冻结比特,这个外码子码为中间码率的外码子码。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
作为另一种可实施的方式,在根据K、Q1和Q2确定I时,依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将Q2中当前可靠度最大的BM个子信道序号确定为I中的元素,需要说明的是,W1等于W2时,可以是将Q2中当前可靠度最大的BM个子信道序号确定为I中的元素,可选的,也可以是将Q1中当前可靠度最大的一个子信道序号确定为I中的元素。在已确定的I中的子信道序号的数量K’满足K-K’小于BM时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。即就是说,当已确定的I中的子信道序号的数量K’满足K-K’小于BM时,不从Q2中确定子信道序号作为I中的元素,而是直接从Q1中确定可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。该方式中,每次从Q1中确定一个子信道序号作为I中的元素,每次从Q2中确定一组子信道序号(BM个)作为I中的元素,且每次确定的是Q1中可靠度最大的一个子信道序号或Q2中可靠度最大的一组(BM个)子信道序号。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),没有中间码率,所以X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,没有中间码率的外码子码。
进一步地,Q2可以是一个可靠度序列,在Q2的长度较长时,Q2还可以包括多个子序列,即Q2可以被划分为多个子序列,在一种可实施的方式中,Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,相应地,I根据K、Q1、Q21、Q22、……和Q2p确定。
I根据K、Q1、Q21、Q22、……和Q2p确定时,作为一种可实施的方式,I中的子信道序号可以为Q1中的至少一个子信道序号。或者,I中的子信道序号可以为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号。或者,I中的子信道序号为Q1中的至少一个子信道序号与Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,一组子信道序号包括的子信道序号个数为Bi,Bi=BM/P,其中的BM为一个外码子码中属于中间码率的子信道的数量,也即为一个外码子码中信息比特子信道序号的数量大于LB且小于HB*B的总数。例如,外码子码的码长为16,LB*B为3,HB*B为13时,中间码率可以是m为3与13之间的数,m可以为4、5、6、7、8、9、10、11和12,一共9个属于中间码率的子信道,即BM为9。P为Q2包括的子序列的个数,Q2被划分为P多个子序列,例如P为3,相应地,Bi=BM/P=9/3=3,需要说明的是,Bi为正整数,可以是根据BM和P等分,也可以不是根据BM和P等分。
进一步地,在根据K、Q1、Q21、Q22、……和Q2p确定I时,作为一种可实施的方式,依次比较Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将Q1和Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。该方式中,每次从Q1、Q21、Q22、……和Q2p中均确定一个子信道序号作为I中的元素,且每次确定的是Q1、Q21、Q22、……和Q2p中可靠度最大的一个子信道序号,直到已确定的I中的元素个数为K。由于Q1中包括的是个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2i中包括的是个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,与Q对应的低码率的外码子码被划分到Q2i中的子信道全部为冻结比特的子信道,与Q对应的高码率的外码子码被划分到Q2i中的子信道全部为信息比特的子信道,按照每次确定Q1或Q2i中可靠度最大的一个子信道序号为I中的元素,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),有一个外码子码中有一部分子信道序号为信息比特,其余部分子信道序号为冻结比特,这个外码子码为中间码率的外码子码。因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
作为另一种可实施的方式,依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为I中的元素。例如,以P=4为例,确定I中的第一个元素时,比较Q1中可靠度最大的一个子信道的可靠度W1、Q21中可靠度最大的Bi个子信道的平均可靠度W21、Q22中可靠度最大的Bi个子信道的平均可靠度W22、Q23中可靠度最大的Bi个子信道的平均可靠度W23以及Q24中可靠度最大的Bi个子信道的平均可靠度W24,如W21、W22、W23和W24中的最大值为W22,W1大于W22时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,接着确定I中的第二个元素,继续按照上述方法,比较Q1(此时Q1中的元素少一个)中可靠度最大的一个子信道的可靠度W1、Q21中可靠度最大的Bi个子信道的平均可靠度W21、Q22中可靠度最大的Bi个子信道的平均可靠度W22、Q23中可靠度最大的Bi个子信道的平均可靠度W23以及Q24中可靠度最大的Bi个子信道的平均可靠度W24,如W21、W22、W23和W24中的最大值为W22,W1小于或等于W22时,将Q22中当前可靠度最大的Bi个子信道序号确定为I中的元素,需要说明的是,W1等于W22时,可以是将Q22中当前可靠度最大的Bi个子信道序号确定为I中的元素,可选的,也可以是将Q1中当前可靠度最大的一个子信道序号确定为I中的元素。继续按照上述方法,在已确定的I中的子信道序号的数量K’满足K-K’小于Bi时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。即就是说,当已确定的I中的子信道序号的数量K’满足K-K’小于Bi时,不从Q2i中确定子信道序号作为I中的元素,直接从Q1中确定可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。该方式中,每次从Q1中确定一个子信道序号作为I中的元素,每次从Q2i中确定一组子信道序号(Bi个)作为I中的元素。按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中,同一个外码子码的子信道序号要么全是信息比特(即为高码率),要么全是冻结比特(即为低码率),没有中间码率,所以X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,没有中间码率的外码子码。
方式二、I根据K和Q3确定。
其中,在一种可实施的方式中,Q3可以是根据N、Q1和Q2确定,或者,Q3可以为预配置的,可选的,可以是根据N、Q1和Q2确定出Q3后配置Q3。
Q3为根据N、Q1和Q2确定时,Q3由Q1和Q2中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1和Q2中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。可以理解的是,若可靠度序列Q是从0开始排序的,则Q3由Q1和Q2中小于N的子信道序号构成,若可靠度序列是从1开始排序的,则Q3由Q1和Q2中小于或等于N的子信道序号构成。
具体来说,在根据N、Q1和Q2确定Q3时,可以是按顺序从Q1和Q2中取出子信道序号组成Q3,作为一种可实施的方式,可以是比较Q1和Q2的当前首个子信道序号,取出可靠度较小(或较大)的子信道序号,放入Q3序列的当前末尾,如此直到Q1和Q2中所有元素都取完,若母码长度N小于最大母码长度Nmax,则从Q1和Q2中取出子信道序号时,只取小于或等于N的子信道序号(若Q序列从0开始排序则只取小于N的子信道序号),丢弃大于N的子信道序号(如Q序列从0开始排序则丢弃大于或等于N的子信道序号)。可以理解的是,也可以是比较Q1和Q2的当前首个子信道序号,取出可靠度较小(或较大)的子信道序号,放入Q3序列的当前首位置,如此直到Q1和Q2中所有元素都取完。
在另一种可实施的方式中,Q3可以根据N、Q1、Q21、Q22、……和Q2p确定,或者,Q3为预配置的,可选的,可以是根据N、Q1、Q21、Q22、……和Q2p确定出Q3后配置Q3。
Q3为根据N、Q1、Q21、Q22、……和Q2p确定时,Q3由Q1、Q21、Q22、……和Q2p中小于或等于N的子信道序号或者小于N的子信道序号构成,Q1、Q21、Q22、……和Q2p中的子信道序号在Q3中按照可靠度从大到小或从小到大的顺序排列。可以理解的是,若可靠度序列Q是从0开始排序的,则Q3由Q1和Q2中小于N的子信道序号构成,若可靠度序列是从1开始排序的,则Q3由Q1和Q2中小于或等于N的子信道序号构成。
具体来说,在根据N、Q1、Q21、Q22、……和Q2p确定Q3时,可以是按顺序从Q1、Q21、Q22、……和Q2p中取出子信道序号组成Q3,作为一种可实施的方式,可以是比较Q1、Q21、Q22、……和Q2p的当前首个子信道序号,取出可靠度较小(或较大)的子信道序号,放入Q3序列的当前末尾,如此直到Q1、Q21、Q22、……和Q2p中所有元素都取完,若母码长度N小于最大母码长度Nmax,则从Q1、Q21、Q22、……和Q2p中取出子信道序号时,只取小于或等于N的子信道序号(若Q序列从0开始排序则只取小于N的子信道序号),丢弃大于N的子信道序号(如Q序列从0开始排序则丢弃大于或等于N的子信道序号)。
在方式二中,根据K和Q3确定I时,I中的元素为Q3中可靠度最大的K个子信道序号。
需要说明的是,根据K和Q3确定I时,从Q3中取可靠度最大的K个子信道序号构成I,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
方式三、I和F根据N、K、B、LB*B和HB*B通过码率分配方法确定。
其中,作为一种可实施的方式,码率分配方法具体可以是:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,码率分配条件为2*Rx=Rx-+Rx+,其中,Rx为当前级的外码子码的码率,Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,Rx=R,即Rx为第n+1级的一个外码子码的码率,n=log2(N)。
具体来说,一个N长的Polar码可以由2个N/2的外码(也称外码子码)和一级内码极化编码组成,2个外码子码中一个外码子码的码率小于另一个外码子码的码率,即2个外码子码包括较低码率外码和较高码率外码,较低码率外码的码率为R-,较高码率外码的码率为R+,需要说明的是,在码率为0或1时,R-可以等于R+,即Rx=Rx-=Rx+=0,或者Rx=Rx-=Rx+=1。其中N/2长的外码子码可以继续分解成N/4长的外码子码。以此类推,直到分解成最外层的外码子码,即码长为1的外码子码,码长为1的外码子码的码率只可能是0或者是1,确定出码长为1的外码子码的码率,码率若是0则对应外码子码为冻结比特,码率若是1则对应外码子码为信息比特,I和F也就相应确定。
极化码的码长N=2n,n+1为编/译码的级数,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,可以是从第(n+1)级开始,依次分配第n级、第n-1级以及第1级的外码子码的码率,在进行每一级的码率分配时,均需满足码率分配条件。
其中,码率分配条件2*Rx=Rx-+Rx+,2*Rx分解得到Rx-+Rx+,具体可以采用公式计算或查表等方式,本实施例对此不作限制。
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx、Rx-和Rx+满足码率分配条件的同时,还满足第一条件,第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
其中,可以理解的是,LB为低码率的门限,HB为高码率的门限,LB与HB之间的码率为中间码率,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,第log2(B)级的外码子码的码率包括Rx和Rx-,0≤Rx-≤Rx+≤LB时,即Rx-大于或等于0且小于或等于LB,Rx+大于或等于0且小于或等于LB,Rx-小于或等于Rx+,其中,在码率为0时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为低码率,HB≤Rx-≤Rx+≤1时,即Rx-大于或等于HB且小于或等于1,Rx+大于或等于HB且小于或等于1,Rx-小于或等于Rx+,其中,在码率为1时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为高码率,0≤Rx-≤LB<HB≤Rx+≤1,即Rx-大于或等于0且小于或等于LB,Rx+大于或等于HB且小于或等于1,LB小于HB,可以使得第log2(B)级的外码子码的码率包括高码率和低码率,没有中间码率,其中的B为外码子码的码长,因此,按照方式三确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,即没有中间码率的外码子码。
可以理解的是,在进行第log2(B)级至第log2(B)-1级的外码子码的码率分配时,以及在进行log2(B)-1级之后的外码子码的码率分配时,均根据码率分配条件逐级分配,直到确定出码长为1的外码子码的码率。
具体地,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,可以是:
先根据R和码率分配条件进行第n+1级至第n级的两个外码子码的码率分配。
接着根据第s级的外码子码的码率和码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
在方式三中,I和F根据已确定出的码长为1的外码子码确定,码长为1的外码子码的码率只可能是0或者是1,确定出码长为1的外码子码的码率,码率若是0则对应外码子码为冻结比特,码率若是1则对应外码子码为信息比特,I和F也就相应确定。
本实施例提供的编码方法,通过获取包括K个信息比特的待编码信息和母码长度N后,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,其中的第一类型外码子码的码率小于或等于LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,LB和HB划分低码率外码子码、中间码率外码子码和高码率外码子码的门限,因此,X个外码子码由高码率的外码子码和低码率的外码子码组成,或者,X个外码子码由高码率的外码子码、低码率的外码子码和一个中间码率的外码子码组成,由于没有中间码率的外码子码或者只有一个中间码率的外码子码,因此在译码端译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。
下面采用几个具体的实施例,对图3所示的技术方案进行详细说明。
图6为本申请提供的一种编码方法实施例的流程图,本实施例的执行主体可以是基站或终端等发送设备,本实施例中以I根据K、第一可靠度序列Q1和第二可靠度序列Q2确定为例进行说明,如图6所示,本实施例的方法可以包括:
S201、获取待编码信息和母码长度N,待编码信息包括K个信息比特。
S202、根据K、Q1和Q2确定I。
S203、将除I中的子信道序号之外的子信道序号确定为F中的子信道序号。
S204、根据I和F进行极化编码。
具体地,确定了I和F后,分别确定各个子信道上的比特的值,例如依照I放置信息比特,依照F放置冻结比特,对确定的所有比特进行极化编码,得到编码后比特序列。
具体来说,在一种可实施的方式中,S202中Q1和Q2可以是根据Q、B、LB和HB确定,则相应地在S202之前还可以包括:
S205、根据Q、B、LB*B和HB*B确定Q1和Q2。
还可以是在根据Q、B、LB*B和HB*B确定出Q1和Q2之后,存储Q1和Q2,后续编码时可以直接使用。
其中,S205中根据Q、B、LB*B和HB*B确定Q1和Q2,具体可以为:
S2051、获取与Nmax对应的各个子信道的可靠度序列。
具体地,可以通过高斯近似(Gaussian Approximation,GA)、密度演进(DensityEvolution,DE)、极化权重(Polar Weight,PW)或其它方法获取Q,Q可以按照可靠度升序或者降序排列,或者Q还可以按照任意一种发送端与接收端约定的排序方式排列。
S2052、根据Q、B、LB*B和HB*B确定Q1和Q2。
具体地,Q1和Q2的长度之和为最大母码码长Nmax,Q1包括个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2包括个外码子码中可靠度大于LB*B且小于HB*B的子信道序号。
在另一种可实施的方式中,Q1和Q2可以是预配置的,发送设备和接收设备均预先配置Q1和Q2。
可选的,S202可以为:依次比较Q1中可靠度最大的一个子信道的可靠度和Q2中可靠度最大的一个子信道的可靠度,将Q1和Q2中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。
该方式的详细过程可参见上述实施例中方式一中的描述,此处不再赘述。按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
可选的,S202可以为:依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将Q2中当前可靠度最大的BM个子信道序号确定为I中的元素;在已确定的I中的子信道序号的数量K’满足K-K’小于BM时,将Q1中可靠度最大的至少一个子信道序号确定为I中的元素,直至I中的元素个数为K。该方式的详细过程可参见上述实施例中方式一中的描述,此处不再赘述。按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,即没有中间码率的外码子码。
进一步地,Q2可以是一个可靠度序列,在Q2的长度较长时,Q2还可以包括多个子序列,即Q2可以被划分为多个子序列,在一种可实施的方式中,Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,此时,相应地,S202可以为:根据K、Q1、Q21、Q22、……和Q2p确定I。
作为一种可实施的方式,在根据K、Q1、Q21、Q22、……和Q2p确定I时,可以是依次比较Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将Q1和Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为I中的元素,直至I中的元素个数为K。该方式的详细过程可参见上述实施例中方式一中的描述,此处不再赘述。按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
作为另一种可实施的方式,在根据K、Q1、Q21、Q22、……和Q2p确定I时,可以是依次比较Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将Q1中当前可靠度最大的一个子信道序号确定为I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为I中的元素。该方式的详细过程可参见上述实施例中方式一中的描述,此处不再赘述。按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,即没有中间码率的外码子码。
本实施例提供的编码方法,通过获取包括K个信息比特的待编码信息和母码长度N后,根据K、Q1和Q2确定I,Q1和Q2可以是根据Q、B、LB和HB确定的,还可以是预配置的,由于Q1包括个外码子码中可靠度小于或等于LB*B的子信道序号和个外码子码中可靠度大于或等于HB*B的子信道序号,Q2包括个外码子码中可靠度大于LB*B且小于HB*B的子信道序号,在根据K、Q1和Q2确定I时,可以每次从Q1和Q2中均确定一个子信道序号作为I中的元素,且每次确定的是Q1和Q2中可靠度最大的一个子信道序号,直到已确定的I中的元素个数为K;还可以每次从Q1中确定一个子信道序号作为I中的元素,每次从Q2中确定一组子信道序号(BM个)作为I中的元素,且每次确定的是Q1中可靠度最大的一个子信道序号或Q2中可靠度最大的一组子信道序号。按照这两种方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中只有一个中间码率的外码子码或者没有中间码率的外码子码,因此在译码端译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。
图7为本申请提供的一种编码方法实施例的流程图,本实施例的执行主体可以是基站或终端等发送设备,本实施例中以I根据K和Q3确定为例进行说明,如图7所示,本实施例的方法可以包括:
S301、获取待编码信息和母码长度N,待编码信息包括K个信息比特。
S302、根据K和Q3确定I。
S303、将除I中的子信道序号之外的子信道序号确定为F中的子信道序号。
S304、根据I和F进行极化编码。
具体地,确定了I和F后,分别确定各个子信道上的比特的值,例如依照I放置信息比特,依照F放置冻结比特,对确定的所有比特进行极化编码,得到编码后比特序列。
具体来说,在一种可实施的方式中,S302中的Q3可以是根据Q1和Q2确定,则相应地在S302之前还可以包括:
S305、根据Q、B、LB*B和HB*B确定Q1和Q2。
具体来说,根据Q、B、LB*B和HB*B确定Q1和Q2可以参见图6所示实施例中S202的描述,此处不再赘述。
S306、根据Q1和Q2确定Q3。
具体地,作为一种可实施的方式,S304可以是比较Q1和Q2的当前首个子信道序号,取出可靠度较小(或较大)的子信道序号,放入Q3序列的当前末尾,如此直到Q1和Q2中所有元素都取完,若母码长度N小于最大母码长度Nmax,则从Q1和Q2中取出子信道序号时,只取小于或等于N的子信道序号(若Q序列从0开始排序则只取小于N的子信道序号),丢弃大于N的子信道序号(如Q序列从0开始排序则丢弃大于或等于N的子信道序号)。
进一步地,Q2可以是一个可靠度序列,在Q2的长度较长时,Q2还可以包括多个子序列,即Q2可以被划分为多个子序列,在一种可实施的方式中,Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,此时,S304相应可以为:根据N、Q1、Q21、Q22、……和Q2p确定Q3。具体来说,在根据N、Q1、Q21、Q22、……和Q2p确定Q3时,可以是按顺序从Q1、Q21、Q22、……和Q2p中取出子信道序号组成Q3,作为一种可实施的方式,可以是比较Q1、Q21、Q22、……和Q2p的当前首个子信道序号,取出可靠度较小(或较大)的子信道序号,放入Q3序列的当前末尾,如此直到Q1、Q21、Q22、……和Q2p中所有元素都取完,若母码长度N小于最大母码长度Nmax,则从Q1、Q21、Q22、……和Q2p中取出子信道序号时,只取小于或等于N的子信道序号(若Q序列从0开始排序则只取小于N的子信道序号),丢弃大于N的子信道序号(如Q序列从0开始排序则丢弃大于或等于N的子信道序号)。
下面结合图8-图10说明不同参数(包括Nmax、N、B=8、LB*B和HB*B)下Q1、Q2和Q3的确定过程,图8为Nmax=8192、N=1024、B=8、LB*B=1以及HB*B=6时Q1、Q2和Q3的确定过程示意图,如图8所示,本实施例中,以Nmax=8192,N=1024,B=8,LB*B=1,HB*B=6为例,Q中的8192个子信道按照外码子码的码长B=8分组,得到个外码子码,每个外码子码内可靠度从低到高排列,LB*B=1,外码子码中可靠度小于或等于LB*B的子信道序号为1个,HB*B=6,外码子码中可靠度大于或等于HB*B的子信道序号为三个(可靠度排序在6-8),外码子码中可靠度大于1且小于6的子信道序号为4个(可靠度排序在2-5),Q1和Q2的长度之和为8192,Q1包括1024个外码子码中可靠度小于或等于1的子信道序号和1024个外码子码中可靠度大于或等于6的子信道序号,Q2包括1024个外码子码中可靠度大于1且小于6(即可靠度排序在2-5之间)的子信道序号,Q1中的子信道序号按照子信道可靠度排序,顺序为从大到小或从小到大,Q2中的子信道序号按照外码子码的可靠度排序,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照顺序排列,即外码子码内按子信道可靠度排序。其中外码子码的可靠度的确定可以参照上述实施例中方式一中的描述,此处不再赘述。
接着根据Q1和Q2确定Q3,可以是比较Q1和Q2的当前首个子信道序号,取出可靠度较小(或较大)的子信道序号,放入Q3序列的当前末尾,如此直到Q1和Q2中所有元素都取完,若母码长度1024小于最大母码长度8192,则从Q1和Q2中取出子信道序号时,只取小于或等于1024的子信道序号(若Q序列从0开始排序则只取小于1024的子信道序号),丢弃大于1024的子信道序号(如Q序列从0开始排序则丢弃大于或等于1024的子信道序号),得到Q3。
图9为Nmax=8192、N=1024、B=16、LB*B=5以及HB*B=9时Q1、Q2和Q3的确定过程示意图,如图9所示,以Nmax=8192,N=1024,B=16,LB*B=5,HB*B=9为例,Q中的8192个子信道按照外码子码的码长B=16分组,得到个外码子码,每个外码子码内可靠度从低到高排列,LB*B=5,外码子码中可靠度小于或等于LB*B的子信道序号为5个,HB*B=9,外码子码中可靠度大于或等于HB*B的子信道序号为8个(可靠度排序在9-16),外码子码中可靠度大于5且小于9的子信道序号为3个(可靠度排序在6-8),Q1和Q2的长度之和为8192,Q1包括1024个外码子码中可靠度小于或等于5的子信道序号和1024个外码子码中可靠度大于或等于9的子信道序号,Q2包括1024个外码子码中可靠度大于5且小于9(即可靠度排序在6-8之间)的子信道序号,Q1中的子信道序号按照子信道可靠度排序,顺序为从大到小或从小到大,Q2中的子信道序号按照外码子码的可靠度排序,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照顺序排列,即外码子码内按子信道可靠度排序。其中外码子码的可靠度的确定可以参照上述实施例中方式一中的描述,此处不再赘述。
接着根据Q1和Q2确定Q3,可以是比较Q1和Q2的当前首个子信道序号,取出可靠度较小(或较大)的子信道序号,放入Q3序列的当前末尾,如此直到Q1和Q2中所有元素都取完,若母码长度1024小于最大母码长度8192,则从Q1和Q2中取出子信道序号时,只取小于或等于1024的子信道序号(若Q序列从0开始排序则只取小于1024的子信道序号),丢弃大于1024的子信道序号(如Q序列从0开始排序则丢弃大于或等于1024的子信道序号),得到Q3。
图10为Nmax=8192、N=1024、B=16、LB*B=3以及HB*B=13时Q1、Q2和Q3的确定过程示意图,如图10所示,以Nmax=8192,N=1024,B=16,LB*B=3,HB*B=13为例,Q中的8192个子信道按照外码子码的码长B=16分组,得到个外码子码,每个外码子码内可靠度从低到高排列,LB*B=3,外码子码中可靠度小于或等于LB*B的子信道序号为3个,HB*B=13,外码子码中可靠度大于或等于HB*B的子信道序号为4个(可靠度排序在13-16),外码子码中可靠度大于3且小于13的子信道序号为9个(可靠度排序在4-12),Q1和Q2的长度之和为8192,Q1包括1024个外码子码中可靠度小于或等于3的子信道序号和1024个外码子码中可靠度大于或等于13的子信道序号,Q2包括1024个外码子码中可靠度大于3且小于13(即可靠度排序在4-12之间)的子信道序号,Q1中的子信道序号按照子信道可靠度排序,顺序为从大到小或从小到大,Q2中的子信道序号按照外码子码的可靠度排序,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照顺序排列,即外码子码内按子信道可靠度排序。其中外码子码的可靠度的确定可以参照上述实施例中方式一中的描述,此处不再赘述。
接着根据Q1和Q2确定Q3,可以是比较Q1和Q2的当前首个子信道序号,取出可靠度较小(或较大)的子信道序号,放入Q3序列的当前末尾,如此直到Q1和Q2中所有元素都取完,若母码长度1024小于最大母码长度8192,则从Q1和Q2中取出子信道序号时,只取小于或等于1024的子信道序号(若Q序列从0开始排序则只取小于1024的子信道序号),丢弃大于1024的子信道序号(如Q序列从0开始排序则丢弃大于或等于1024的子信道序号),得到Q3。
本实施例中,还可以是在根据Q1和Q2确定出Q3后存储Q3,后续编码时可以直接使用。
在另一种可实施的方式中,Q3可以是预配置的,发送设备和接收设备均预先配置Q3。
可选的,S302可以为:从Q3中取可靠度最大的K个子信道序号构成I,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)、第二类型外码子码(即高码率外码子码)和一个第三类型外码子码(即中间码率外码子码)组成,即中间码率的外码子码只有一个。
本实施例提供的编码方法,通过获取包括K个信息比特的待编码信息和母码长度N后,根据K和Q3确定I,Q3可以是根据Q1和Q2确定,还可以是预配置的,I中的元素为Q3中可靠度最大的K个子信道序号,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中只有一个中间码率的外码子码,因此在译码端译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。
需要说明的是,上述实施例中均是以码率的门限LB和HB为例进行说明,在另一个实施例中,还可以是设置一个外码子码中信息比特的子信道序号的数量m的两个门限KL和KH,KL=LB*B,KH=HB*B,相应地,若设置一个外码子码中信息比特的子信道序号的数量m的两个门限KL和KH,S102中第一类型外码子码中信息比特的子信道序号的数量m小于或等于第一阈值KL,第二类型外码子码中m大于或等于第二阈值KH,第三类型外码子码中m大于KL且小于KH,其中KL+1<KH,KH小于或等于外码子码的长度B,K、N、X、m、KL、KH和B为正整数。
在上述实施例中的方式一中,I根据K、第一可靠度序列Q1和第二可靠度序列Q2确定时,Q1和Q2的长度之和为最大母码码长Nmax,Q1包括个外码子码中可靠度小于或等于KL的子信道序号和个外码子码中可靠度大于或等于KH的子信道序号。Q2包括个外码子码中可靠度大于KL且小于KH的子信道序号。
Q1中的子信道序号根据子信道可靠度按照第一顺序排列,第一顺序为从大到小或从小到大。Q2中的子信道序号根据外码子码的可靠度按照第一顺序排列,其中,属于一个外码子码中的子信道序号在Q2中连续且可靠度按照第一顺序排列。
Q1和Q2可以是根据Q、B、KL和KH确定,Q为与Nmax对应的各个子信道的可靠度序列。
或者,Q1和Q2还可以是预配置的。
在方式一中,B、KL和KH可以为预定义的;
所述B、所述LB和所述HB是通过指示信息指示的。
在方式三中,I和F根据N、K、B、KL和KH通过码率分配方法确定时,第一条件为下述中的任一种:
其中,即Rx-大于或等于0且小于或等于Rx+大于或等于0且小于或等于Rx-小于或等于Rx+,其中,在码率为0时,R-可以等于R+。时,即Rx-大于或等于且小于或等于1,Rx+大于或等于且小于或等于1,Rx-小于或等于Rx+,其中,在码率为1时,R-可以等于R+。即Rx-大于或等于0且小于或等于Rx+大于或等于且小于或等于1,LB小于
需要说明的是,其它的方法过程描述及有益效果与上述实施例中的相同,此处不再赘述。
在上述实施例中,Q1和Q2或Q3可以是预配置的,在编码时可以直接使用,下面示出几种不同参数下Q1、Q2和Q3的示例,参数包括:Nmax、B、KL以及KH,可以理解的是,参数还可以包括:Nmax、B、LB*B以及HB*B。获取到包括K个信息比特的待编码信息和母码长度N后,在编码时直接使用下面示出的六种不同参数下对应的Q1、Q2和Q3时,可以根据K、Q1和Q2确定I,或者,根据K和Q3确定I,按照这两种方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中只有一个中间码率的外码子码或者没有中间码率的外码子码,因此在译码端译码时可以对高码率外码子码和低码率外码子码并行译码,可以降低译码复杂度,降低译码时延,提高译码吞吐率,具有较好的译码性能。
在一种可实施的方式中,Nmax=1024,B=8,KL=1,KH=6时,对应的Q1、Q2和Q3如下:
Q3=[0,1,2,4,8,16,32,3,5,64,9,6,10,128,12,256,24,7,512,11,17,18,20,40,19,33,34,36,13,48,14,72,21,35,65,66,68,80,37,22,136,264,38,96,67,129,130,132,144,69,272,160,520,288,528,192,544,70,131,257,258,260,15,320,133,23,134,384,56,39,259,26,25,28,27,513,514,516,261,29,515,41,42,44,43,49,50,52,88,30,71,262,576,45,640,51,74,73,76,46,75,81,82,84,517,104,53,152,77,768,518,54,83,137,138,140,112,135,78,85,168,139,97,98,100,99,145,146,148,86,280,141,101,147,161,162,164,176,142,31,200,263,149,102,304,296,163,265,266,268,47,267,273,274,276,208,150,165,55,328,536,79,269,224,166,519,552,270,275,193,194,196,195,57,58,60,59,521,522,524,523,289,290,292,291,529,530,532,560,277,87,197,61,531,89,90,92,525,278,526,293,91,321,322,324,584,198,120,336,62,143,103,294,93,592,323,545,546,548,392,151,648,94,400,608,352,325,533,547,105,106,108,107,153,154,156,155,385,386,388,109,184,534,167,326,157,656,110,117,776,549,387,113,114,116,115,577,578,580,216,416,271,279,158,550,672,118,579,169,170,172,171,641,642,644,389,173,199,784,312,704,390,174,581,448,63,527,582,181,295,285,232,205,182,643,177,178,180,179,281,282,284,283,201,202,204,203,297,298,300,286,299,769,770,772,344,645,535,240,206,95,327,800,301,213,568,832,646,896,302,771,209,210,212,211,305,306,308,307,537,538,540,360,539,225,226,228,227,329,330,332,111,331,337,338,340,214,309,408,551,229,159,310,541,773,333,119,600,339,553,554,556,368,230,391,542,334,555,121,122,124,774,175,123,393,394,396,341,424,395,353,354,356,583,355,561,562,564,287,183,125,557,616,342,563,585,586,588,397,207,558,432,357,664,624,587,401,402,404,403,185,186,188,187,593,594,596,126,565,398,456,358,405,303,595,417,418,420,189,566,589,215,647,419,649,650,652,406,464,680,590,597,311,598,651,217,218,220,219,609,610,612,421,792,611,449,450,452,231,688,653,248,190,654,335,480,221,613,422,451,657,658,660,659,313,314,316,315,233,234,236,614,543,235,777,778,780,343,775,317,222,453,237,559,712,661,808,779,673,674,676,720,816,662,454,318,675,241,242,244,243,345,346,348,347,785,786,788,781,376,736,567,840,238,359,399,787,705,706,708,591,678,677,349,245,127,191,782,407,246,707,569,570,572,571,361,362,364,363,409,410,412,350,599,790,573,411,801,802,804,803,601,602,604,789,709,365,440,374,423,574,413,603,369,370,372,371,425,426,428,366,655,805,615,710,429,373,605,848,632,806,427,833,834,836,904,414,223,663,835,617,618,620,619,433,434,436,472,455,837,864,606,912,696,435,665,666,668,319,621,430,838,667,457,458,460,488,239,459,897,898,900,622,437,461,496,669,679,629,351,438,462,469,247,899,625,626,628,627,465,466,468,467,681,682,684,683,249,250,252,251,689,690,692,670,783,728,928,791,367,901,630,685,711,253,691,793,794,796,824,902,686,375,470,415,485,795,481,482,484,483,713,714,716,744,960,693,797,715,809,810,812,807,694,254,717,575,798,811,721,722,724,431,607,723,377,378,380,379,817,818,820,486,718,813,856,839,725,752,819,841,842,844,814,439,623,671,463,843,737,738,740,739,442,441,444,381,821,726,872,631,443,849,850,852,741,845,920,382,822,851,633,634,636,880,742,445,471,635,905,906,908,687,903,846,446,936,853,637,907,473,474,476,475,865,866,868,867,913,914,916,487,695,854,504,799,255,909,719,477,915,697,698,700,638,944,869,699,489,490,492,491,929,930,932,478,968,383,910,815,976,870,917,727,493,701,931,497,498,500,499,729,730,732,731,961,962,964,823,918,502,933,743,760,494,702,501,847,992,447,733,934,963,825,826,828,827,745,746,748,747,753,754,756,855,734,829,965,749,966,755,857,858,860,859,873,874,876,830,911,871,639,888,479,750,861,757,919,875,922,921,924,862,758,923,881,882,884,877,952,495,703,935,883,937,938,940,503,925,878,735,885,939,505,506,508,926,941,967,886,831,507,945,946,948,947,969,970,972,984,751,942,971,977,978,980,509,949,973,1000,950,863,759,1008,510,979,761,762,764,763,993,994,996,974,879,981,982,927,995,889,890,892,765,887,997,943,891,953,954,956,998,766,511,951,893,975,894,955,985,986,988,957,983,958,987,1001,1002,1004,999,1016,767,989,1003,1009,1010,1012,990,1005,959,1011,1013,895,1006,1014,1017,1018,991,1020,1007,1015,1019,1021,1022,1023]。
Q1=[0,8,16,32,5,64,6,128,256,24,7,512,40,13,48,14,72,21,80,37,22,136,264,38,96,144,69,272,160,520,288,528,192,544,70,15,320,133,23,134,384,56,39,261,29,88,30,71,262,576,45,640,46,517,104,53,152,77,768,518,54,112,135,78,85,168,86,280,141,101,176,142,31,200,263,149,102,304,296,47,208,150,165,55,328,536,79,269,224,166,519,552,270,560,277,87,197,61,525,278,526,293,584,198,120,336,62,143,103,294,93,592,392,151,648,94,400,608,352,325,533,109,184,534,167,326,157,656,110,117,776,549,216,416,271,279,158,550,672,118,389,173,199,784,312,704,390,174,581,448,63,527,582,181,295,285,232,205,182,286,344,645,535,240,206,95,327,800,301,213,568,832,646,896,302,360,111,214,309,408,551,229,159,310,541,773,333,119,600,368,230,391,542,334,774,175,341,424,583,287,183,125,557,616,342,397,207,558,432,357,664,624,126,565,398,456,358,405,303,189,566,589,215,647,406,464,680,590,597,311,598,421,792,231,688,653,248,190,654,335,480,221,613,422,614,543,343,775,317,222,453,237,559,712,661,808,720,816,662,454,318,781,376,736,567,840,238,359,399,591,678,677,349,245,127,191,782,407,246,350,599,790,573,789,709,365,440,374,423,574,413,366,655,805,615,710,429,373,605,848,632,806,904,414,223,663,472,455,837,864,606,912,696,319,621,430,838,488,239,622,437,461,496,669,679,629,351,438,462,469,247,670,783,728,928,791,367,901,630,685,711,253,824,902,686,375,470,415,485,744,960,693,797,807,694,254,717,575,798,431,607,486,718,813,856,839,725,752,814,439,623,671,463,381,821,726,872,631,741,845,920,382,822,880,742,445,471,687,903,846,446,936,853,637,487,695,854,504,799,255,909,719,477,638,944,869,478,968,383,910,815,976,870,917,727,493,701,823,918,502,933,743,760,494,702,501,847,992,447,733,934,855,734,829,965,749,966,830,911,871,639,888,479,750,861,757,919,862,758,877,952,495,703,935,503,925,878,735,885,926,941,967,886,831,984,751,942,509,949,973,1000,950,863,759,1008,510,974,879,981,982,927,765,887,997,943,998,766,511,951,893,975,894,957,983,958,999,1016,767,989,990,1005,959,1013,895,1006,1014,991,1007,1015,1021,1022,1023]。
Q2=[1,2,4,3,9,10,12,11,17,18,20,19,33,34,36,35,65,66,68,67,129,130,132,131,257,258,260,259,26,25,28,27,513,514,516,515,41,42,44,43,49,50,52,51,74,73,76,75,81,82,84,83,137,138,140,139,97,98,100,99,145,146,148,147,161,162,164,163,265,266,268,267,273,274,276,275,193,194,196,195,57,58,60,59,521,522,524,523,289,290,292,291,529,530,532,531,89,90,92,91,321,322,324,323,545,546,548,547,105,106,108,107,153,154,156,155,385,386,388,387,113,114,116,115,577,578,580,579,169,170,172,171,641,642,644,643,177,178,180,179,281,282,284,283,201,202,204,203,297,298,300,299,769,770,772,771,209,210,212,211,305,306,308,307,537,538,540,539,225,226,228,227,329,330,332,331,337,338,340,339,553,554,556,555,121,122,124,123,393,394,396,395,353,354,356,355,561,562,564,563,585,586,588,587,401,402,404,403,185,186,188,187,593,594,596,595,417,418,420,419,649,650,652,651,217,218,220,219,609,610,612,611,449,450,452,451,657,658,660,659,313,314,316,315,233,234,236,235,777,778,780,779,673,674,676,675,241,242,244,243,345,346,348,347,785,786,788,787,705,706,708,707,569,570,572,571,361,362,364,363,409,410,412,411,801,802,804,803,601,602,604,603,369,370,372,371,425,426,428,427,833,834,836,835,617,618,620,619,433,434,436,435,665,666,668,667,457,458,460,459,897,898,900,899,625,626,628,627,465,466,468,467,681,682,684,683,249,250,252,251,689,690,692,691,793,794,796,795,481,482,484,483,713,714,716,715,809,810,812,811,721,722,724,723,377,378,380,379,817,818,820,819,841,842,844,843,737,738,740,739,442,441,444,443,849,850,852,851,633,634,636,635,905,906,908,907,473,474,476,475,865,866,868,867,913,914,916,915,697,698,700,699,489,490,492,491,929,930,932,931,497,498,500,499,729,730,732,731,961,962,964,963,825,826,828,827,745,746,748,747,753,754,756,755,857,858,860,859,873,874,876,875,922,921,924,923,881,882,884,883,937,938,940,939,505,506,508,507,945,946,948,947,969,970,972,971,977,978,980,979,761,762,764,763,993,994,996,995,889,890,892,891,953,954,956,955,985,986,988,987,1001,1002,1004,1003,1009,1010,1012,1011,1017,1018,1020,1019]。
在一种可实施的方式中,Nmax=1024,B=16,KL=3,KH=13时,对应的Q1、Q2和Q3如下:
Q3=[0,1,2,4,8,16,32,3,5,64,9,6,17,10,18,128,12,33,65,256,34,7,129,66,512,11,20,24,130,19,13,48,14,257,21,258,26,513,80,25,22,514,96,144,28,49,272,160,288,528,192,544,44,81,50,15,320,23,384,76,82,27,36,40,35,37,38,41,42,97,39,145,29,43,68,72,67,69,74,70,73,98,140,30,146,71,161,576,45,640,46,75,132,136,131,133,134,137,138,273,162,193,77,768,268,274,112,135,78,289,194,139,260,264,259,261,262,265,266,60,290,529,524,141,176,142,530,321,31,545,322,263,304,92,47,267,516,520,515,517,518,521,522,385,546,208,386,577,113,79,269,108,578,224,519,270,641,523,52,56,51,53,54,57,58,55,59,84,88,83,85,86,89,90,560,114,156,87,61,525,642,526,177,91,100,104,99,101,102,105,106,769,172,336,62,143,103,178,93,592,770,107,148,152,147,149,150,153,154,151,209,284,94,204,400,608,352,155,164,168,163,165,166,169,170,210,305,300,109,167,225,306,157,656,110,171,276,280,275,277,281,278,282,226,416,271,279,158,337,672,332,540,173,784,338,704,174,283,196,200,195,197,198,201,202,199,448,353,561,203,292,296,291,293,294,297,298,63,527,556,295,285,124,205,562,286,299,532,536,531,533,534,537,538,354,401,396,593,535,240,206,95,800,402,301,417,832,588,896,594,418,302,539,324,328,323,325,326,329,330,327,111,331,548,552,547,549,550,553,554,188,449,609,551,159,541,610,657,333,368,652,450,542,334,555,116,120,115,117,118,121,122,119,175,123,388,392,387,389,390,393,394,391,658,220,395,580,584,579,581,582,585,586,673,583,287,125,557,316,241,397,207,674,558,785,432,236,624,587,180,184,179,181,182,185,186,183,187,644,648,643,645,646,649,650,780,705,126,242,398,303,189,706,589,786,647,348,464,801,590,572,651,212,216,211,213,214,217,218,215,219,308,312,307,309,310,313,314,311,802,688,653,369,190,364,654,335,480,315,772,776,771,773,774,777,778,221,370,543,412,775,317,222,237,559,833,834,779,228,232,227,229,230,233,234,231,235,340,344,339,341,342,345,346,343,604,433,720,816,347,356,360,355,357,358,361,362,897,318,898,781,428,736,625,238,359,399,591,434,349,620,363,564,568,563,565,569,566,570,567,127,191,782,626,571,404,408,403,405,406,409,410,407,465,350,668,460,573,411,596,600,595,597,598,601,602,599,365,689,466,481,574,413,603,420,424,419,421,422,425,426,423,366,655,684,429,252,605,848,690,482,427,612,616,611,613,614,617,618,615,414,223,619,660,664,659,661,662,665,666,663,796,721,716,864,606,912,722,817,319,621,812,430,667,452,456,451,453,454,457,458,455,239,459,676,680,675,678,677,681,682,622,380,818,461,496,669,679,351,737,462,683,244,248,243,245,246,249,250,251,247,788,792,787,790,789,793,794,738,670,783,849,928,791,367,685,844,253,686,850,444,415,795,708,712,707,709,710,713,714,711,960,865,797,715,804,808,803,805,806,809,810,807,636,254,717,575,913,798,811,372,376,374,371,373,377,378,375,379,836,840,835,837,838,841,842,431,607,866,908,718,813,476,839,914,752,814,929,623,671,463,843,436,440,435,437,438,442,441,439,381,497,930,961,492,700,443,628,632,627,629,630,633,634,631,845,382,498,880,445,635,468,472,467,469,470,473,474,471,687,846,732,446,962,475,900,904,899,901,902,905,906,903,637,907,692,696,691,693,694,697,698,695,828,753,799,255,909,719,477,638,748,944,699,484,488,483,485,489,486,490,487,491,724,728,723,725,726,729,730,754,478,383,910,815,976,727,493,701,860,731,820,824,819,821,822,825,826,823,881,494,702,876,847,992,447,733,827,740,744,739,741,742,745,746,743,882,747,852,856,851,853,854,857,858,855,924,734,829,749,945,859,868,872,867,869,870,873,874,940,830,911,871,639,479,946,750,508,861,875,916,920,915,917,922,918,921,919,862,977,923,932,936,931,933,934,937,938,972,877,495,703,935,978,925,878,735,993,939,500,504,499,502,501,505,506,503,994,926,764,941,831,507,964,968,963,965,966,969,970,967,751,942,971,756,760,755,757,758,761,762,509,973,892,863,759,1008,510,763,884,888,883,885,886,889,890,974,879,927,765,956,887,943,891,948,952,947,949,950,953,954,766,511,988,951,893,975,894,1009,955,980,984,979,981,982,985,986,1004,1010,957,983,958,987,996,1000,995,997,998,1001,1002,999,767,989,1003,1012,1016,990,1005,959,1011,1013,895,1006,1014,1017,1018,991,1020,1007,1015,1019,1021,1022,1023]。
Q1=[0,1,2,16,32,64,17,18,128,12,33,65,256,34,129,66,512,130,13,48,14,257,258,513,80,514,96,144,28,49,272,160,288,528,192,544,44,81,50,15,320,384,76,82,97,145,29,98,140,30,146,161,576,45,640,46,273,162,193,77,768,268,274,112,78,289,194,60,290,529,524,141,176,142,530,321,31,545,322,304,92,47,385,546,208,386,577,113,79,269,108,578,224,270,641,560,114,156,61,525,642,526,177,769,172,336,62,143,178,93,592,770,209,284,94,204,400,608,352,210,305,300,109,225,306,157,656,110,226,416,271,158,337,672,332,540,173,784,338,704,174,448,353,561,63,527,556,285,124,205,562,286,354,401,396,593,240,206,95,800,402,301,417,832,588,896,594,418,302,111,188,449,609,159,541,610,657,333,368,652,450,542,334,175,658,220,673,287,125,557,316,241,397,207,674,558,785,432,236,624,780,705,126,242,398,303,189,706,589,786,348,464,801,590,572,802,688,653,369,190,364,654,335,480,221,370,543,412,317,222,237,559,833,834,604,433,720,816,897,318,898,781,428,736,625,238,399,591,434,349,620,127,191,782,626,465,350,668,460,573,365,689,466,481,574,413,366,655,684,429,252,605,848,690,482,414,223,796,721,716,864,606,912,722,817,319,621,812,430,239,622,380,818,461,496,669,351,737,462,738,670,783,849,928,367,685,844,253,686,850,444,415,960,865,797,636,254,717,575,913,798,431,607,866,908,718,813,476,914,752,814,929,623,671,463,381,497,930,961,492,700,845,382,498,880,445,687,846,732,446,962,637,828,753,799,255,909,719,477,638,748,944,754,478,383,910,815,976,493,701,860,881,494,702,876,847,992,447,733,882,924,734,829,749,945,940,830,911,639,479,946,750,508,861,862,977,972,877,495,703,978,925,878,735,993,994,926,764,941,831,751,942,509,973,892,863,1008,510,974,879,927,765,956,943,766,511,988,893,975,894,1009,1004,1010,957,958,767,989,990,1005,959,895,1006,991,1020,1007,1021,1022,1023]。
Q2=[4,8,3,5,9,6,10,7,11,20,24,19,21,26,25,22,23,27,36,40,35,37,38,41,42,39,43,68,72,67,69,74,70,73,71,75,132,136,131,133,134,137,138,135,139,260,264,259,261,262,265,266,263,267,516,520,515,517,518,521,522,519,523,52,56,51,53,54,57,58,55,59,84,88,83,85,86,89,90,87,91,100,104,99,101,102,105,106,103,107,148,152,147,149,150,153,154,151,155,164,168,163,165,166,169,170,167,171,276,280,275,277,281,278,282,279,283,196,200,195,197,198,201,202,199,203,292,296,291,293,294,297,298,295,299,532,536,531,533,534,537,538,535,539,324,328,323,325,326,329,330,327,331,548,552,547,549,550,553,554,551,555,116,120,115,117,118,121,122,119,123,388,392,387,389,390,393,394,391,395,580,584,579,581,582,585,586,583,587,180,184,179,181,182,185,186,183,187,644,648,643,645,646,649,650,647,651,212,216,211,213,214,217,218,215,219,308,312,307,309,310,313,314,311,315,772,776,771,773,774,777,778,775,779,228,232,227,229,230,233,234,231,235,340,344,339,341,342,345,346,343,347,356,360,355,357,358,361,362,359,363,564,568,563,565,569,566,570,567,571,404,408,403,405,406,409,410,407,411,596,600,595,597,598,601,602,599,603,420,424,419,421,422,425,426,423,427,612,616,611,613,614,617,618,615,619,660,664,659,661,662,665,666,663,667,452,456,451,453,454,457,458,455,459,676,680,675,678,677,681,682,679,683,244,248,243,245,246,249,250,251,247,788,792,787,790,789,793,794,791,795,708,712,707,709,710,713,714,711,715,804,808,803,805,806,809,810,807,811,372,376,374,371,373,377,378,375,379,836,840,835,837,838,841,842,839,843,436,440,435,437,438,442,441,439,443,628,632,627,629,630,633,634,631,635,468,472,467,469,470,473,474,471,475,900,904,899,901,902,905,906,903,907,692,696,691,693,694,697,698,695,699,484,488,483,485,489,486,490,487,491,724,728,723,725,726,729,730,727,731,820,824,819,821,822,825,826,823,827,740,744,739,741,742,745,746,743,747,852,856,851,853,854,857,858,855,859,868,872,867,869,870,873,874,871,875,916,920,915,917,922,918,921,919,923,932,936,931,933,934,937,938,935,939,500,504,499,502,501,505,506,503,507,964,968,963,965,966,969,970,967,971,756,760,755,757,758,761,762,759,763,884,888,883,885,886,889,890,887,891,948,952,947,949,950,953,954,951,955,980,984,979,981,982,985,986,983,987,996,1000,995,997,998,1001,1002,999,1003,1012,1016,1011,1013,1014,1017,1018,1015,1019]。
在一种可实施的方式中,Nmax=4096,B=8,KL=1,KH=6时,对应的Q1、Q2和Q3如下:
Q3=[0,1,2,4,8,16,32,3,5,64,9,6,10,128,12,256,24,7,512,11,17,18,20,40,19,33,34,36,13,48,14,72,21,35,65,66,68,80,37,22,136,264,38,96,67,129,130,132,144,69,272,160,520,288,528,192,544,70,131,257,258,260,15,320,133,23,134,384,56,39,259,26,25,28,27,513,514,516,261,29,515,41,42,44,43,49,50,52,88,30,71,262,2048,576,45,640,51,74,73,76,46,75,81,82,84,517,104,53,1032,152,77,768,518,54,83,137,138,140,112,1024,135,78,85,168,139,97,98,100,99,145,146,148,86,280,141,1040,101,147,161,162,164,176,142,31,200,1056,263,149,102,304,296,1030,163,265,266,268,47,267,1026,1028,1025,208,150,165,55,328,1088,536,79,269,2056,224,166,519,552,270,560,277,87,1152,197,2064,61,525,278,526,293,584,198,2080,120,336,62,143,1029,103,294,93,592,392,2053,1280,151,1027,273,274,276,275,193,194,196,195,57,58,60,59,521,522,524,523,289,290,292,291,529,530,532,531,89,90,92,91,2049,2050,2052,2051,321,322,324,323,105,106,108,107,545,546,548,648,94,400,608,2112,352,325,533,547,153,154,156,155,385,386,388,109,1048,184,534,167,326,2054,157,656,110,117,1038,776,1064,549,387,113,114,116,115,577,578,580,216,416,271,279,158,550,672,118,579,169,170,172,171,1041,1042,1044,1043,1033,1034,1036,1072,2176,389,173,1037,199,784,312,1536,704,390,174,581,1046,448,1096,63,527,582,181,295,285,232,205,182,2304,286,1045,1104,1061,344,645,535,240,2072,206,95,327,800,2055,301,1160,213,568,1120,832,1035,641,642,644,643,177,178,180,179,281,282,284,283,201,202,204,203,1057,1058,1060,1059,297,298,300,299,769,770,772,646,896,2560,302,771,209,210,212,211,305,306,308,307,1089,1090,1092,1091,537,538,540,360,539,225,226,228,227,329,330,332,111,331,2057,2058,2060,2059,2065,2066,2068,1168,214,309,1062,2088,408,551,229,159,310,1093,541,1288,773,333,119,2067,337,338,340,2061,600,339,1153,1154,1156,1184,2096,368,1031,230,391,542,334,2062,774,175,1155,553,554,556,555,121,122,124,123,393,394,396,2120,341,2069,424,395,353,354,356,583,355,2081,2082,2084,1296,1094,287,183,125,557,1216,616,342,2083,561,562,564,1157,563,1049,1050,1052,1051,585,586,588,397,1112,207,2128,558,432,1039,357,664,1312,624,587,401,402,404,403,1281,1282,1284,1080,2085,126,2070,1063,565,398,2184,456,358,405,303,2312,1544,1158,1283,185,186,188,187,2113,2114,2116,189,566,1054,2086,589,1344,215,647,2144,2115,593,594,596,595,417,418,420,419,649,650,652,406,464,680,1069,590,1286,1552,2192,597,311,2117,598,651,217,218,220,219,609,610,612,421,792,611,1073,1076,1074,1075,2177,2178,2180,1047,231,688,653,1128,248,1070,2320,190,1568,654,2208,1095,335,480,221,1285,613,2568,1408,422,2336,1077,614,543,2576,343,2240,775,317,2592,2118,222,453,237,559,2179,1537,1538,1540,1539,449,450,452,451,657,658,660,659,313,314,316,315,1066,1065,1068,712,661,1053,808,1541,720,816,1101,2063,1176,2368,2181,1136,662,2071,1600,454,318,1110,2182,781,376,736,567,2432,1192,1078,840,238,1159,359,2104,399,591,678,677,2087,1542,349,1102,245,127,1067,233,234,236,235,1098,1100,1097,1099,777,778,780,779,673,674,676,675,2305,2306,2308,2307,241,242,244,243,345,346,348,347,1105,1108,1106,1107,2074,2073,2076,2075,785,786,788,787,2561,2562,2564,191,1125,782,407,2309,2077,246,350,599,2563,705,706,708,707,1162,1164,1161,1163,569,570,572,571,361,362,364,363,1122,1121,1124,790,1165,1320,1123,2089,2090,2092,2091,1169,1172,1170,2136,1200,1664,573,1171,409,410,412,411,801,802,804,803,601,602,604,2078,789,1304,709,365,440,2119,374,1224,423,2310,1174,574,413,2624,1109,603,369,370,372,371,2097,2098,2100,366,2093,1287,1055,655,2688,805,615,1166,710,2099,1186,1185,1188,1187,425,426,428,429,373,605,1232,848,2094,632,806,2565,427,1289,1292,1290,2152,904,414,1291,2122,2121,2124,2123,833,834,836,2101,223,1126,663,3080,835,617,618,620,1328,619,1082,1081,1084,1083,1298,1297,1300,472,2200,455,2125,1189,1248,837,2816,1086,1302,1352,864,2566,2102,1173,606,912,1103,696,1424,2160,1293,1560,1792,319,621,3072,430,2183,2126,1299,2129,2130,2132,2131,1217,1220,1218,838,1219,433,434,436,435,665,666,668,667,457,458,460,488,2133,1111,239,459,2185,2186,2188,622,2216,437,2187,625,626,628,627,897,898,900,1608,1294,461,2134,1543,496,669,1190,1317,679,1079,1221,2328,629,1584,351,1360,438,462,2189,3088,2149,469,1549,247,2224,1127,1144,2190,899,2145,2146,2148,2147,1113,1116,1114,1115,465,466,468,467,1546,1548,1545,670,1318,783,1085,2079,2248,1576,728,928,791,367,3104,1376,901,630,685,711,1118,253,2311,1301,2197,824,2150,1175,902,686,1222,2352,1416,1133,375,2344,1558,3078,470,1167,1547,681,682,684,683,2193,2194,2196,2195,249,250,252,251,1314,1313,1316,415,485,2095,1240,744,1616,960,693,2256,1350,797,2198,2213,1141,2103,2376,807,3136,694,254,2584,1550,717,1071,1315,1553,1556,1554,1555,689,690,692,691,1346,1348,1345,1347,3074,3076,3073,575,1440,798,1208,2127,1191,2317,431,1142,607,2272,2214,2567,2600,486,1573,2318,1181,718,813,856,1117,839,1295,725,1472,752,2608,2325,1349,814,439,2135,3200,2245,1197,1680,623,1632,1336,671,1198,1557,2109,1413,1303,463,2573,1135,381,2326,1672,2574,821,2341,726,1182,872,2632,2246,631,1574,1223,2168,1605,741,2384,2110,1205,845,1319,920,382,2191,3077,822,2151,1229,2342,2141,880,1256,742,445,1392,471,2640,1696,2440,687,1325,1800,903,1134,3328,2199,846,1670,3075,793,794,796,795,2209,2210,2212,2211,2313,2314,2316,2315,481,482,484,483,1130,1132,1129,1131,1570,1569,1572,1571,713,714,716,715,809,810,812,811,1177,1180,1178,1179,2321,2322,2324,2323,721,722,724,723,377,378,380,379,2241,2242,2244,2243,1409,1410,1412,1411,1137,1138,1140,1139,2105,2106,2108,2107,2569,2570,2572,2571,817,818,820,819,2337,2338,2340,2339,1601,1602,1604,1603,841,842,844,843,2577,2578,2580,2579,1194,1196,1193,1195,737,738,740,739,442,441,444,443,1305,1308,1306,1307,2137,2138,2140,2139,1201,1204,1202,1203,2369,2370,2372,2371,849,850,852,851,1666,1668,1665,2696,1264,446,2142,936,2448,853,2656,1310,637,2400,1551,2373,1230,2581,1414,1206,1667,633,634,636,635,2593,2594,2596,1333,487,1808,2595,2153,2154,2156,2155,1226,1225,1228,695,2157,1087,3096,2232,854,2582,1237,1326,1368,504,799,255,2215,909,1559,2374,1309,719,1143,477,2205,2704,1448,2158,2165,638,944,1728,3086,2824,1227,905,906,908,907,473,474,476,475,1233,1234,1236,1235,1321,1322,1324,3112,869,1592,1253,1351,1183,1565,2597,478,968,383,2264,910,2464,2319,2327,815,2206,976,2598,2720,870,2166,917,1606,1824,3120,727,1150,493,1357,2437,2221,3085,1384,701,1566,2247,1323,865,866,868,867,2201,2202,2204,2203,2433,2434,2436,2435,2161,2162,2164,2163,2625,2626,2628,2627,913,914,916,915,1330,1329,1332,1331,697,698,700,699,1252,1249,1250,1251,1353,1354,1356,1355,489,490,492,491,3081,3082,3084,1798,2832,1365,1334,2360,3584,2752,2438,1648,2222,1238,823,2629,1575,3094,1199,1432,1421,918,2496,1254,502,933,1366,3144,1488,743,2111,1358,760,1581,2575,2630,494,2229,2343,1272,702,2333,1624,501,2280,1415,847,2253,1856,2230,992,447,1607,2334,1704,733,1797,1669,1231,3093,1590,934,3152,3109,2392,2693,1119,2583,1381,855,2288,734,829,2254,1213,2143,2375,2848,1430,1688,965,1614,2349,1239,3208,2261,1327,2616,1589,3168,749,2880,1640,966,3083,1794,1793,1796,1795,2217,2218,2220,2219,3089,3090,3092,3091,1564,1561,1562,1563,929,930,932,931,2689,2690,2692,2691,1578,1580,1577,1579,1146,1145,1148,1147,2225,2226,2228,2227,1364,1362,1361,1363,497,498,500,499,2329,2330,2332,2331,729,730,732,731,1586,1585,1588,1587,2249,2250,2252,2251,3105,3106,3108,3107,961,962,964,963,1378,1377,1380,1379,1418,1420,1417,1419,1609,1612,1610,1611,2345,2346,2348,2347,825,826,828,827,2817,2818,2820,1456,2694,2944,1214,830,911,2350,1621,2819,1210,1209,1212,1211,2257,2258,2260,2259,1425,1426,1428,1427,745,746,748,747,2353,2354,2356,2355,3137,3138,3140,3139,753,754,756,755,2585,2586,2588,1582,2408,2587,857,858,860,859,1620,1617,1618,1832,871,2159,639,1480,1335,3216,888,2262,1245,479,2357,1422,3110,1677,750,2456,1613,861,1446,2599,2277,757,2207,1382,2358,3141,2589,3336,2821,919,2381,2167,1504,862,1920,2648,1445,758,3232,1149,1359,2416,1816,3079,2278,2439,1671,1712,2590,2382,1622,1311,2822,2223,877,2389,1207,952,1686,495,1262,2472,1619,2377,2378,2380,2379,2273,2274,2276,2275,1242,1241,1244,1243,1673,1676,1674,1675,2385,2386,2388,2387,1441,1442,1444,1341,1429,703,2631,1638,3344,1567,1736,935,3142,2335,1685,2231,2173,2605,3264,2664,1246,503,2390,3205,925,1269,878,1478,735,1799,1678,2445,1443,3201,3202,3204,3203,873,874,876,875,1337,1338,1340,1339,1476,1473,1474,1475,1633,1636,1634,1635,2601,2602,2604,2603,2169,2170,2172,2171,1260,1257,1258,1259,922,921,924,923,2441,2442,2444,2443,2401,2402,2404,2403,1684,1682,1681,1637,1373,3160,2255,1255,1591,2606,2480,885,3087,2405,1400,2712,1744,1656,3360,2672,926,3128,1270,941,1367,2174,1805,3111,2613,2446,1583,2504,967,2406,2453,2351,886,3592,831,1683,2609,2610,2612,2611,881,882,884,883,3097,3098,3100,3099,2633,2634,2636,2635,1369,1370,1372,1371,2449,2450,2452,2451,937,938,940,939,3329,3330,3332,3206,1342,3331,2233,2234,2236,2235,1801,1804,1802,2237,2614,1431,1261,1840,3102,984,1760,2637,1615,751,3392,2263,1702,942,2695,2454,1423,2512,2728,1383,3117,2638,1814,3334,1477,1512,1733,3600,1598,1374,509,1806,2645,949,2359,973,1397,2646,2469,1000,2840,3095,1438,2279,2736,2701,1390,1464,3176,2296,3118,950,1151,2238,1597,863,3616,2702,759,1864,3143,1701,2383,2528,1803,1697,1698,1700,1699,1265,1266,1268,1267,505,506,508,507,2641,2642,2644,2643,1386,1388,1385,1387,2465,2466,2468,2467,1810,1809,1812,1811,945,946,948,947,1730,1732,1729,1731,1436,1433,1434,1008,2269,1623,3333,2661,510,3456,2470,1435,2697,2698,2700,2699,969,970,972,971,2657,2658,2660,2659,2265,2266,2268,2267,3121,3124,3122,3123,3585,3586,3588,3125,2662,2591,2391,1928,1829,2823,1389,2365,1872,974,1453,3587,1393,1396,1394,1395,1593,1594,1596,2270,1215,2501,2285,1629,1520,2607,1830,1734,2760,2709,879,3101,981,2856,3589,982,2768,927,2864,3149,3224,1639,1447,1343,1679,3184,2710,1479,3648,2502,2366,3158,1888,765,2829,1496,2424,1861,887,2784,1437,2615,1720,3240,997,3126,2888,1630,1813,1462,2286,1398,3207,2407,1645,2447,1848,1687,2639,1247,2726,2725,1936,3590,2397,3150,2293,943,1454,998,1595,2497,2498,2500,2499,2705,2706,2708,2707,3114,3113,3116,2175,3115,1626,1625,1628,1627,1826,1825,1828,1827,2361,2362,2364,2363,977,978,980,979,2281,2282,2284,2283,761,762,764,763,1449,1452,1450,1451,3146,3148,3145,3147,2825,2826,2828,2827,1857,1860,1858,1859,2721,2722,2724,2723,1644,1642,1641,1643,2289,2290,2292,2291,1458,1457,1460,1459,2393,2394,2396,2395,993,994,996,995,3153,3156,3154,3155,1689,1692,1690,1691,2833,2834,2836,2835,1481,1484,1482,1483,2753,2754,2756,1278,2239,766,3173,2830,2455,1709,1646,2294,2755,3210,3212,3209,3211,2617,2618,2620,2619,889,890,892,891,2409,2410,2412,2411,1273,1274,1276,1275,1650,1649,1652,1651,3170,3169,3172,511,2398,1485,2647,1693,2838,1952,3213,3368,3171,1490,1489,1492,1491,3217,3220,3218,3248,1752,1807,3712,1399,2621,3219,1921,1922,1924,951,1654,2837,1926,3352,2757,2413,2488,1391,2422,3272,2471,1494,1271,3222,2622,1694,893,2461,1923,2457,2458,2460,2459,1705,1708,1706,1707,2849,2850,2852,2851,2649,2650,2652,1461,3157,2651,2417,2418,2420,2419,3234,3233,3236,2414,975,1862,894,1815,3335,3103,1653,2703,1510,2853,2663,1375,3214,2758,1703,3235,1714,1713,1716,1715,1817,1818,1820,2477,2421,2653,3280,2896,2680,1486,2854,1821,1718,2952,1599,1776,2462,1405,1735,2271,3174,1831,1493,2711,1984,1455,3376,2520,957,2503,3237,3296,983,2885,1710,958,3134,3350,3400,2912,1768,3221,2654,2960,3151,1819,3337,3340,3338,3339,2473,2474,2476,2475,953,954,956,955,1506,1505,1508,1507,2881,2882,2884,2883,1738,1740,1737,1739,3346,3345,3348,2744,1741,3472,3341,3608,3840,2367,2669,1463,2478,1749,999,3347,2665,2666,2668,2667,3130,3129,3132,3131,1402,1401,1404,1403,3265,3268,3266,2886,1838,1277,3267,2481,2482,2484,2483,985,986,988,987,2713,2714,2716,2715,2505,2506,2508,1647,2536,3159,2287,1925,2507,1746,1745,1748,2670,1742,2485,1880,1717,1016,3656,3342,2509,1837,3591,2544,2717,1631,1469,3238,3365,2727,1747,1833,1834,1836,3127,767,3269,1904,2677,989,3632,2399,1406,3408,2486,2510,1822,1835,2945,2946,2948,2517,3597,2295,1944,1863,3175,3192,2947,1868,1866,1865,1867,2673,2674,2676,2675,1761,1764,1762,1763,1841,1844,1842,1843,3594,3596,3593,2718,3366,1695,2831,990,3133,1005,3624,2776,2976,1845,2839,2415,1495,3424,2949,2678,1655,2733,1765,2759,3166,2301,1487,3349,2872,1750,1869,3223,2950,2734,959,3270,1896,1263,3464,3181,2423,1877,1509,3606,1711,2518,3215,1846,3595,3161,3164,3162,3163,2513,2514,2516,2515,2729,2730,2732,2731,1465,1468,1466,1467,3362,3361,3364,2463,1960,2533,3288,2792,1784,3664,3008,1870,2741,1662,1013,3398,2845,1927,1528,1766,3189,1511,2855,1719,2742,2302,895,3598,2765,1439,3119,3363,2297,2298,2300,2299,3601,3604,3602,3603,1001,1002,1004,1003,3394,3396,3393,3395,2737,2738,2740,2739,2841,2842,2844,2843,2529,2530,2532,2531,3178,3180,3177,3179,1497,1500,1498,1499,1009,1010,1012,1011,1657,1658,1660,2623,3488,1006,2846,1878,3256,3239,1661,1502,2479,3190,2655,1934,2534,3621,1014,3229,1470,2766,2861,1743,2904,3165,2887,3343,2773,1968,3520,1894,2800,1517,3397,2862,2487,1941,1823,3245,1659,3618,3617,3620,3619,1873,1874,1876,3728,2671,1992,1875,2761,2762,2764,2763,1930,1929,1932,1931,2857,2858,2860,2859,3225,3228,3226,3227,1889,1892,1890,1891,1514,1516,1513,1515,2769,2770,2772,2771,2425,2426,2428,2427,3457,3458,3460,3459,3185,3186,3188,3187,1721,1724,1722,1723,2865,2866,2868,2867,1938,1937,1940,1939,3649,3650,3652,3680,3384,2719,3246,3651,3242,3244,3241,1501,3605,3461,3351,2511,1725,991,3183,2429,1933,3720,2869,1839,2774,1525,3230,2920,2679,3622,3271,1726,3653,2789,1518,1767,3253,2893,3367,2968,2430,2870,1893,3277,1757,2928,3304,2790,2493,3440,2519,3744,1958,2735,1471,1007,2000,3373,3848,2951,1847,3182,1942,2894,3718,1871,3243,2889,2890,2892,2891,2785,2786,2788,2787,2490,2489,2492,2491,3249,3252,3250,3251,3353,3356,3354,3355,1524,1522,1521,1523,1953,1956,1954,1955,1754,1756,1753,1755,2897,2898,2900,2899,3714,3716,3713,3312,2494,2984,2901,3358,2685,1912,3599,1758,3278,3462,1989,3254,3715,2681,2682,2684,2683,1850,1849,1852,1851,3274,3273,3276,1526,3381,2535,3856,2743,1773,1957,3135,1853,1976,2902,1015,3285,3374,3416,2552,2847,2303,1751,2957,3607,3357,2767,1503,3191,2525,1781,3496,1885,2686,2016,2992,3776,1854,3275,2953,2954,2956,2955,2521,2522,2524,2523,1770,1772,1769,1771,3281,3282,3284,3283,3369,3370,3372,2917,3640,3301,3399,1774,3231,3613,2526,1895,3016,2431,2958,2863,1782,3024,1279,2918,1943,2965,1663,3654,3872,2775,3198,2541,3405,3432,2749,3614,1021,3371,2913,2914,2916,2915,1882,1881,1884,1883,1985,1986,1988,1987,2961,2962,2964,2963,3378,3377,3380,3379,2745,2746,2748,2747,3300,3297,3298,3299,2537,2538,2540,2539,3842,3841,3844,3846,1935,3413,3382,1886,3696,3286,2871,1407,3623,3247,3480,3469,2966,1990,3302,2550,3843,3401,3402,3404,3403,1777,1778,1780,1779,1017,1018,1020,1019,1897,1900,1898,1899,3612,3609,3610,2981,3414,1879,1022,3536,2791,1902,3406,2808,3629,2542,1759,3320,2750,3672,2549,3463,2895,1527,3904,3040,2495,3655,3752,2781,1959,3845,3717,3279,1949,3638,2982,1534,3167,3429,2903,2782,2877,3611,2977,2978,2980,2979,3194,3193,3196,3195,3626,3628,3625,3627,3412,3410,3409,3261,3411,2545,2546,2548,2547,2777,2778,2780,2779,3634,3633,3636,3635,1948,1945,1946,1947,3009,3010,3012,3011,3426,3425,3428,3427,3466,3468,3465,3467,3657,3660,3658,3659,1905,1906,1908,1907,2873,2874,2876,2875,3258,3257,3260,3259,3473,3474,3476,1910,1965,3478,3736,3013,1901,3662,1966,1775,3287,2008,3375,3637,2797,3688,3014,3504,3475,1530,1529,1532,1531,2793,2794,2796,2795,1961,1962,1964,3262,1950,2878,2959,1909,3669,3630,1991,3880,2919,2687,3528,1727,3383,2936,3293,2527,1855,3470,3725,2798,1974,3661,2909,3494,2805,3430,2967,3552,2910,3968,2005,3493,2806,1887,3197,3407,1023,3864,3719,3760,1963,3668,3665,3666,3670,3359,1998,1783,2925,3255,2024,3000,3734,2543,3310,3667,2801,2802,2804,2803,2905,2906,2908,2907,1972,1969,1970,1971,3290,3289,3292,3291,3721,3724,3722,3723,1993,1994,1996,1995,3489,3490,3492,3389,3477,2751,1903,3686,1973,3615,3784,2983,3733,1789,3294,2551,2973,3317,2926,3526,2783,1997,3847,3726,3491,2921,2922,2924,2923,3385,3386,3388,3387,3524,3521,3522,3523,3681,3684,3682,3683,3308,3305,3306,3307,1785,1786,1788,1787,2970,2969,2972,2971,2001,2002,2004,2003,3732,3730,3729,3685,2032,3421,3303,1917,3639,2933,3448,3792,3704,2974,3318,2989,1519,3415,3853,3631,2006,3015,1951,1911,2934,2021,2879,3731,2929,2930,2932,2931,3417,3418,3420,3419,2985,2986,2988,2987,3849,3852,3850,3390,3479,3309,3888,3032,3808,3663,2799,3750,2990,1790,3471,3431,1975,3862,3525,3560,3781,3646,3422,2557,3854,2997,1967,3021,3445,3048,3486,3438,3512,2022,2998,3199,1981,3645,2911,2807,3912,3749,3851,3745,3746,3748,3747,3313,3314,3316,3315,2553,2554,2556,2555,2017,2018,2020,2019,3434,3436,3433,3435,3858,3857,3860,3859,1913,1916,1914,1915,2993,2994,2996,2995,3484,3481,3482,3056,3671,1918,2558,3483,3778,3780,3777,3779,3017,3018,3020,3019,3641,3642,3644,1999,3976,3877,3437,3920,3022,3501,3263,1533,3677,3568,3878,3782,2927,3029,3030,2975,1982,3687,3495,3391,3727,3527,2023,3936,2813,3544,3909,2935,3485,3768,3045,3678,3861,3510,3446,2013,3693,3896,3735,3295,3984,2007,2991,3502,3046,3643,3441,3444,3442,3443,3674,3673,3676,3675,3874,3873,3876,3875,1977,1980,1978,1979,3025,3026,3028,3027,2809,2810,2812,2811,3497,3500,3498,3499,3905,3908,3906,3907,3692,3690,3689,3691,3506,3505,3508,3507,3041,3042,3044,3043,2010,2009,2012,2011,3737,3740,3738,3739,3529,3532,3530,3531,2937,2938,2940,2939,3698,3697,3700,3699,3321,3322,3324,3323,3538,3537,3540,3326,2814,2030,3757,3694,2559,2014,3533,3741,2040,4000,3539,3969,3970,3972,3800,3855,3447,2999,3702,3974,3439,1535,3542,3319,2029,3742,2941,3971,3753,3756,3754,3755,2026,2025,2028,2027,3762,3761,3764,3509,3763,3865,3866,3868,3023,3910,2942,3863,3701,3558,3423,3751,3534,3869,2037,3766,3647,3824,3453,3783,3879,3541,4032,3503,1791,3005,3031,3758,3006,3816,2038,3867,3001,3002,3004,3003,3554,3553,3556,3555,2033,2034,2036,2035,3786,3788,3785,3787,3450,3449,3452,3451,3033,3034,3036,3789,3035,3916,3914,3913,3511,3797,3047,3886,3325,3695,1919,3973,3790,3928,3765,3064,3885,3915,3881,3882,3884,3679,3517,2815,3952,3037,3454,3870,3883,3794,3793,3796,3795,3809,3812,3810,2039,3992,3911,3811,3889,3892,3890,3891,3513,3516,3514,3515,3049,3050,3052,3051,3545,3548,3546,3547,3705,3706,3708,3743,3038,3053,3893,3543,3703,3813,3535,3798,3917,3007,3944,3311,3925,3557,3759,3894,4008,2031,3832,3918,3710,3061,3975,3576,3814,3559,3767,2943,3487,3054,3926,3709,3550,1983,3982,3062,3518,3791,4016,3942,3565,3989,3871,2046,3707,3921,3922,3924,4040,3923,3057,3058,3060,3059,3978,3977,3980,3979,3937,3940,3938,3939,3562,3564,3561,3563,2041,2042,2044,2043,3769,3772,3770,3771,3986,3985,3988,3987,3572,3570,3569,3549,3773,3039,3981,3887,3573,2047,3774,3566,3815,3941,3805,2015,4006,3519,3055,4048,3895,3571,4001,4004,4002,4003,3802,3804,3801,3803,3898,3897,3900,3899,3818,3820,3817,3990,3919,3819,3930,3929,3932,3960,3806,4037,3574,3931,4033,4034,4036,3821,4005,3901,4024,3063,3799,3551,3829,3933,4064,3902,3822,3943,4035,3825,3826,3828,3830,3327,3991,3711,3069,3983,3934,3455,3827,3065,3066,3068,3067,3945,3948,3946,3947,3996,3993,3994,2045,4038,3927,3070,3950,3995,3953,3954,3956,3807,3955,3578,3577,3580,3575,4007,3997,3582,3958,4013,3949,4014,3823,4056,3579,4009,4010,4012,3998,3957,4039,3775,3903,4022,4053,3935,3071,4011,4020,4017,4018,4019,4041,4042,4044,4043,3833,3834,3836,3835,4049,4050,4052,4046,3831,4072,3951,4021,4051,4065,4066,4068,3837,4045,4080,3965,3567,4067,3961,3964,3962,4054,3999,3959,4069,3838,4023,4015,3963,4025,4028,4026,4070,4029,3966,4047,3581,4030,4027,4058,4057,4060,4059,4074,4073,4076,4071,4061,4055,4078,4062,4088,3583,4075,4081,4082,4084,4077,4083,4085,3839,4086,4089,3967,4090,4087,4092,4091,4079,4031,4094,4095,4063,4093]。
Q1=[0,8,16,32,5,64,6,128,256,24,7,512,40,13,48,14,72,21,80,37,22,136,264,38,96,144,69,272,160,520,288,528,192,544,70,15,320,133,23,134,384,56,39,261,29,88,30,71,262,2048,576,45,640,46,517,104,53,1032,152,77,768,518,54,112,1024,135,78,85,168,86,280,141,1040,101,176,142,31,200,1056,263,149,102,304,296,1030,47,208,150,165,55,328,1088,536,79,269,2056,224,166,519,552,270,560,277,87,1152,197,2064,61,525,278,526,293,584,198,2080,120,336,62,143,1029,103,294,93,592,392,2053,1280,151,648,94,400,608,2112,352,325,533,109,1048,184,534,167,326,2054,157,656,110,117,1038,776,1064,549,216,416,271,279,158,550,672,118,1072,2176,389,173,1037,199,784,312,1536,704,390,174,581,1046,448,1096,63,527,582,181,295,285,232,205,182,2304,286,1045,1104,1061,344,645,535,240,2072,206,95,327,800,2055,301,1160,213,568,1120,832,646,896,2560,302,360,111,1168,214,309,1062,2088,408,551,229,159,310,1093,541,1288,773,333,119,2061,600,1184,2096,368,1031,230,391,542,334,2062,774,175,2120,341,2069,424,583,1296,1094,287,183,125,557,1216,616,342,1157,397,1112,207,2128,558,432,1039,357,664,1312,624,1080,2085,126,2070,1063,565,398,2184,456,358,405,303,2312,1544,1158,189,566,1054,2086,589,1344,215,647,2144,406,464,680,1069,590,1286,1552,2192,597,311,2117,598,421,792,1047,231,688,653,1128,248,1070,2320,190,1568,654,2208,1095,335,480,221,1285,613,2568,1408,422,2336,1077,614,543,2576,343,2240,775,317,2592,2118,222,453,237,559,712,661,1053,808,1541,720,816,1101,2063,1176,2368,2181,1136,662,2071,1600,454,318,1110,2182,781,376,736,567,2432,1192,1078,840,238,1159,359,2104,399,591,678,677,2087,1542,349,1102,245,127,191,1125,782,407,2309,2077,246,350,599,790,1165,1320,2136,1200,1664,573,2078,789,1304,709,365,440,2119,374,1224,423,2310,1174,574,413,2624,1109,366,2093,1287,1055,655,2688,805,615,1166,710,429,373,605,1232,848,2094,632,806,2565,2152,904,414,2101,223,1126,663,3080,1328,472,2200,455,2125,1189,1248,837,2816,1086,1302,1352,864,2566,2102,1173,606,912,1103,696,1424,2160,1293,1560,1792,319,621,3072,430,2183,2126,838,488,2133,1111,239,622,2216,437,1608,1294,461,2134,1543,496,669,1190,1317,679,1079,1221,2328,629,1584,351,1360,438,462,2189,3088,2149,469,1549,247,2224,1127,1144,2190,670,1318,783,1085,2079,2248,1576,728,928,791,367,3104,1376,901,630,685,711,1118,253,2311,1301,2197,824,2150,1175,902,686,1222,2352,1416,1133,375,2344,1558,3078,470,1167,415,485,2095,1240,744,1616,960,693,2256,1350,797,2198,2213,1141,2103,2376,807,3136,694,254,2584,1550,717,1071,575,1440,798,1208,2127,1191,2317,431,1142,607,2272,2214,2567,2600,486,1573,2318,1181,718,813,856,1117,839,1295,725,1472,752,2608,2325,1349,814,439,2135,3200,2245,1197,1680,623,1632,1336,671,1198,1557,2109,1413,1303,463,2573,1135,381,2326,1672,2574,821,2341,726,1182,872,2632,2246,631,1574,1223,2168,1605,741,2384,2110,1205,845,1319,920,382,2191,3077,822,2151,1229,2342,2141,880,1256,742,445,1392,471,2640,1696,2440,687,1325,1800,903,1134,3328,2199,846,1670,2696,1264,446,2142,936,2448,853,2656,1310,637,2400,1551,2373,1230,2581,1414,1206,1333,487,1808,695,2157,1087,3096,2232,854,2582,1237,1326,1368,504,799,255,2215,909,1559,2374,1309,719,1143,477,2205,2704,1448,2158,2165,638,944,1728,3086,2824,3112,869,1592,1253,1351,1183,1565,2597,478,968,383,2264,910,2464,2319,2327,815,2206,976,2598,2720,870,2166,917,1606,1824,3120,727,1150,493,1357,2437,2221,3085,1384,701,1566,2247,1798,2832,1365,1334,2360,3584,2752,2438,1648,2222,1238,823,2629,1575,3094,1199,1432,1421,918,2496,1254,502,933,1366,3144,1488,743,2111,1358,760,1581,2575,2630,494,2229,2343,1272,702,2333,1624,501,2280,1415,847,2253,1856,2230,992,447,1607,2334,1704,733,1797,1669,1231,3093,1590,934,3152,3109,2392,2693,1119,2583,1381,855,2288,734,829,2254,1213,2143,2375,2848,1430,1688,965,1614,2349,1239,3208,2261,1327,2616,1589,3168,749,2880,1640,966,1456,2694,2944,1214,830,911,2350,1621,1582,2408,1832,871,2159,639,1480,1335,3216,888,2262,1245,479,2357,1422,3110,1677,750,2456,1613,861,1446,2599,2277,757,2207,1382,2358,3141,2589,3336,2821,919,2381,2167,1504,862,1920,2648,1445,758,3232,1149,1359,2416,1816,3079,2278,2439,1671,1712,2590,2382,1622,1311,2822,2223,877,2389,1207,952,1686,495,1262,2472,1341,1429,703,2631,1638,3344,1567,1736,935,3142,2335,1685,2231,2173,2605,3264,2664,1246,503,2390,3205,925,1269,878,1478,735,1799,1678,2445,1637,1373,3160,2255,1255,1591,2606,2480,885,3087,2405,1400,2712,1744,1656,3360,2672,926,3128,1270,941,1367,2174,1805,3111,2613,2446,1583,2504,967,2406,2453,2351,886,3592,831,3206,1342,2237,2614,1431,1261,1840,3102,984,1760,2637,1615,751,3392,2263,1702,942,2695,2454,1423,2512,2728,1383,3117,2638,1814,3334,1477,1512,1733,3600,1598,1374,509,1806,2645,949,2359,973,1397,2646,2469,1000,2840,3095,1438,2279,2736,2701,1390,1464,3176,2296,3118,950,1151,2238,1597,863,3616,2702,759,1864,3143,1701,2383,2528,1008,2269,1623,3333,2661,510,3456,2470,3125,2662,2591,2391,1928,1829,2823,1389,2365,1872,974,1453,2270,1215,2501,2285,1629,1520,2607,1830,1734,2760,2709,879,3101,981,2856,3589,982,2768,927,2864,3149,3224,1639,1447,1343,1679,3184,2710,1479,3648,2502,2366,3158,1888,765,2829,1496,2424,1861,887,2784,1437,2615,1720,3240,997,3126,2888,1630,1813,1462,2286,1398,3207,2407,1645,2447,1848,1687,2639,1247,2726,2725,1936,3590,2397,3150,2293,943,1454,998,2175,1278,2239,766,3173,2830,2455,1709,1646,2294,511,2398,1485,2647,1693,2838,1952,3213,3368,3248,1752,1807,3712,1399,2621,951,1654,2837,1926,3352,2757,2413,2488,1391,2422,3272,2471,1494,1271,3222,2622,1694,893,2461,1461,3157,2414,975,1862,894,1815,3335,3103,1653,2703,1510,2853,2663,1375,3214,2758,1703,2477,2421,2653,3280,2896,2680,1486,2854,1821,1718,2952,1599,1776,2462,1405,1735,2271,3174,1831,1493,2711,1984,1455,3376,2520,957,2503,3237,3296,983,2885,1710,958,3134,3350,3400,2912,1768,3221,2654,2960,3151,2744,1741,3472,3341,3608,3840,2367,2669,1463,2478,1749,999,2886,1838,1277,1647,2536,3159,2287,1925,2670,1742,2485,1880,1717,1016,3656,3342,2509,1837,3591,2544,2717,1631,1469,3238,3365,2727,3127,767,3269,1904,2677,989,3632,2399,1406,3408,2486,2510,1822,2517,3597,2295,1944,1863,3175,3192,2718,3366,1695,2831,990,3133,1005,3624,2776,2976,1845,2839,2415,1495,3424,2949,2678,1655,2733,1765,2759,3166,2301,1487,3349,2872,1750,1869,3223,2950,2734,959,3270,1896,1263,3464,3181,2423,1877,1509,3606,1711,2518,3215,1846,2463,1960,2533,3288,2792,1784,3664,3008,1870,2741,1662,1013,3398,2845,1927,1528,1766,3189,1511,2855,1719,2742,2302,895,3598,2765,1439,3119,2623,3488,1006,2846,1878,3256,3239,1661,1502,2479,3190,2655,1934,2534,3621,1014,3229,1470,2766,2861,1743,2904,3165,2887,3343,2773,1968,3520,1894,2800,1517,3397,2862,2487,1941,1823,3245,3728,2671,1992,3680,3384,2719,3246,1501,3605,3461,3351,2511,1725,991,3183,2429,1933,3720,2869,1839,2774,1525,3230,2920,2679,3622,3271,1726,3653,2789,1518,1767,3253,2893,3367,2968,2430,2870,1893,3277,1757,2928,3304,2790,2493,3440,2519,3744,1958,2735,1471,1007,2000,3373,3848,2951,1847,3182,1942,2894,3718,1871,3312,2494,2984,2901,3358,2685,1912,3599,1758,3278,3462,1989,3254,1526,3381,2535,3856,2743,1773,1957,3135,1853,1976,2902,1015,3285,3374,3416,2552,2847,2303,1751,2957,3607,3357,2767,1503,3191,2525,1781,3496,1885,2686,2016,2992,3776,1854,2917,3640,3301,3399,1774,3231,3613,2526,1895,3016,2431,2958,2863,1782,3024,1279,2918,1943,2965,1663,3654,3872,2775,3198,2541,3405,3432,2749,3614,1021,3846,1935,3413,3382,1886,3696,3286,2871,1407,3623,3247,3480,3469,2966,1990,3302,2550,2981,3414,1879,1022,3536,2791,1902,3406,2808,3629,2542,1759,3320,2750,3672,2549,3463,2895,1527,3904,3040,2495,3655,3752,2781,1959,3845,3717,3279,1949,3638,2982,1534,3167,3429,2903,2782,2877,3261,1910,1965,3478,3736,3013,1901,3662,1966,1775,3287,2008,3375,3637,2797,3688,3014,3504,3262,1950,2878,2959,1909,3669,3630,1991,3880,2919,2687,3528,1727,3383,2936,3293,2527,1855,3470,3725,2798,1974,3661,2909,3494,2805,3430,2967,3552,2910,3968,2005,3493,2806,1887,3197,3407,1023,3864,3719,3760,3670,3359,1998,1783,2925,3255,2024,3000,3734,2543,3310,3389,3477,2751,1903,3686,1973,3615,3784,2983,3733,1789,3294,2551,2973,3317,2926,3526,2783,1997,3847,3726,3685,2032,3421,3303,1917,3639,2933,3448,3792,3704,2974,3318,2989,1519,3415,3853,3631,2006,3015,1951,1911,2934,2021,2879,3390,3479,3309,3888,3032,3808,3663,2799,3750,2990,1790,3471,3431,1975,3862,3525,3560,3781,3646,3422,2557,3854,2997,1967,3021,3445,3048,3486,3438,3512,2022,2998,3199,1981,3645,2911,2807,3912,3749,3056,3671,1918,2558,1999,3976,3877,3437,3920,3022,3501,3263,1533,3677,3568,3878,3782,2927,3029,3030,2975,1982,3687,3495,3391,3727,3527,2023,3936,2813,3544,3909,2935,3485,3768,3045,3678,3861,3510,3446,2013,3693,3896,3735,3295,3984,2007,2991,3502,3046,3326,2814,2030,3757,3694,2559,2014,3533,3741,2040,4000,3800,3855,3447,2999,3702,3974,3439,1535,3542,3319,2029,3742,2941,3509,3023,3910,2942,3863,3701,3558,3423,3751,3534,3869,2037,3766,3647,3824,3453,3783,3879,3541,4032,3503,1791,3005,3031,3758,3006,3816,2038,3789,3511,3797,3047,3886,3325,3695,1919,3973,3790,3928,3765,3064,3885,3679,3517,2815,3952,3037,3454,3870,2039,3992,3911,3743,3038,3053,3893,3543,3703,3813,3535,3798,3917,3007,3944,3311,3925,3557,3759,3894,4008,2031,3832,3918,3710,3061,3975,3576,3814,3559,3767,2943,3487,3054,3926,3709,3550,1983,3982,3062,3518,3791,4016,3942,3565,3989,3871,2046,4040,3549,3773,3039,3981,3887,3573,2047,3774,3566,3815,3941,3805,2015,4006,3519,3055,4048,3895,3990,3919,3960,3806,4037,3574,3821,4005,3901,4024,3063,3799,3551,3829,3933,4064,3902,3822,3943,3830,3327,3991,3711,3069,3983,3934,3455,2045,4038,3927,3070,3950,3807,3575,4007,3997,3582,3958,4013,3949,4014,3823,4056,3998,3957,4039,3775,3903,4022,4053,3935,3071,4046,3831,4072,3951,4021,3837,4045,4080,3965,3567,4054,3999,3959,4069,3838,4023,4015,4070,4029,3966,4047,3581,4030,4071,4061,4055,4078,4062,4088,3583,4077,4085,3839,4086,3967,4087,4079,4031,4094,4095,4063,4093]。
Q2=[1,2,4,3,9,10,12,11,17,18,20,19,33,34,36,35,65,66,68,67,129,130,132,131,257,258,260,259,26,25,28,27,513,514,516,515,41,42,44,43,49,50,52,51,74,73,76,75,81,82,84,83,137,138,140,139,97,98,100,99,145,146,148,147,161,162,164,163,265,266,268,267,1026,1028,1025,1027,273,274,276,275,193,194,196,195,57,58,60,59,521,522,524,523,289,290,292,291,529,530,532,531,89,90,92,91,2049,2050,2052,2051,321,322,324,323,105,106,108,107,545,546,548,547,153,154,156,155,385,386,388,387,113,114,116,115,577,578,580,579,169,170,172,171,1041,1042,1044,1043,1033,1034,1036,1035,641,642,644,643,177,178,180,179,281,282,284,283,201,202,204,203,1057,1058,1060,1059,297,298,300,299,769,770,772,771,209,210,212,211,305,306,308,307,1089,1090,1092,1091,537,538,540,539,225,226,228,227,329,330,332,331,2057,2058,2060,2059,2065,2066,2068,2067,337,338,340,339,1153,1154,1156,1155,553,554,556,555,121,122,124,123,393,394,396,395,353,354,356,355,2081,2082,2084,2083,561,562,564,563,1049,1050,1052,1051,585,586,588,587,401,402,404,403,1281,1282,1284,1283,185,186,188,187,2113,2114,2116,2115,593,594,596,595,417,418,420,419,649,650,652,651,217,218,220,219,609,610,612,611,1073,1076,1074,1075,2177,2178,2180,2179,1537,1538,1540,1539,449,450,452,451,657,658,660,659,313,314,316,315,1066,1065,1068,1067,233,234,236,235,1098,1100,1097,1099,777,778,780,779,673,674,676,675,2305,2306,2308,2307,241,242,244,243,345,346,348,347,1105,1108,1106,1107,2074,2073,2076,2075,785,786,788,787,2561,2562,2564,2563,705,706,708,707,1162,1164,1161,1163,569,570,572,571,361,362,364,363,1122,1121,1124,1123,2089,2090,2092,2091,1169,1172,1170,1171,409,410,412,411,801,802,804,803,601,602,604,603,369,370,372,371,2097,2098,2100,2099,1186,1185,1188,1187,425,426,428,427,1289,1292,1290,1291,2122,2121,2124,2123,833,834,836,835,617,618,620,619,1082,1081,1084,1083,1298,1297,1300,1299,2129,2130,2132,2131,1217,1220,1218,1219,433,434,436,435,665,666,668,667,457,458,460,459,2185,2186,2188,2187,625,626,628,627,897,898,900,899,2145,2146,2148,2147,1113,1116,1114,1115,465,466,468,467,1546,1548,1545,1547,681,682,684,683,2193,2194,2196,2195,249,250,252,251,1314,1313,1316,1315,1553,1556,1554,1555,689,690,692,691,1346,1348,1345,1347,3074,3076,3073,3075,793,794,796,795,2209,2210,2212,2211,2313,2314,2316,2315,481,482,484,483,1130,1132,1129,1131,1570,1569,1572,1571,713,714,716,715,809,810,812,811,1177,1180,1178,1179,2321,2322,2324,2323,721,722,724,723,377,378,380,379,2241,2242,2244,2243,1409,1410,1412,1411,1137,1138,1140,1139,2105,2106,2108,2107,2569,2570,2572,2571,817,818,820,819,2337,2338,2340,2339,1601,1602,1604,1603,841,842,844,843,2577,2578,2580,2579,1194,1196,1193,1195,737,738,740,739,442,441,444,443,1305,1308,1306,1307,2137,2138,2140,2139,1201,1204,1202,1203,2369,2370,2372,2371,849,850,852,851,1666,1668,1665,1667,633,634,636,635,2593,2594,2596,2595,2153,2154,2156,2155,1226,1225,1228,1227,905,906,908,907,473,474,476,475,1233,1234,1236,1235,1321,1322,1324,1323,865,866,868,867,2201,2202,2204,2203,2433,2434,2436,2435,2161,2162,2164,2163,2625,2626,2628,2627,913,914,916,915,1330,1329,1332,1331,697,698,700,699,1252,1249,1250,1251,1353,1354,1356,1355,489,490,492,491,3081,3082,3084,3083,1794,1793,1796,1795,2217,2218,2220,2219,3089,3090,3092,3091,1564,1561,1562,1563,929,930,932,931,2689,2690,2692,2691,1578,1580,1577,1579,1146,1145,1148,1147,2225,2226,2228,2227,1364,1362,1361,1363,497,498,500,499,2329,2330,2332,2331,729,730,732,731,1586,1585,1588,1587,2249,2250,2252,2251,3105,3106,3108,3107,961,962,964,963,1378,1377,1380,1379,1418,1420,1417,1419,1609,1612,1610,1611,2345,2346,2348,2347,825,826,828,827,2817,2818,2820,2819,1210,1209,1212,1211,2257,2258,2260,2259,1425,1426,1428,1427,745,746,748,747,2353,2354,2356,2355,3137,3138,3140,3139,753,754,756,755,2585,2586,2588,2587,857,858,860,859,1620,1617,1618,1619,2377,2378,2380,2379,2273,2274,2276,2275,1242,1241,1244,1243,1673,1676,1674,1675,2385,2386,2388,2387,1441,1442,1444,1443,3201,3202,3204,3203,873,874,876,875,1337,1338,1340,1339,1476,1473,1474,1475,1633,1636,1634,1635,2601,2602,2604,2603,2169,2170,2172,2171,1260,1257,1258,1259,922,921,924,923,2441,2442,2444,2443,2401,2402,2404,2403,1684,1682,1681,1683,2609,2610,2612,2611,881,882,884,883,3097,3098,3100,3099,2633,2634,2636,2635,1369,1370,1372,1371,2449,2450,2452,2451,937,938,940,939,3329,3330,3332,3331,2233,2234,2236,2235,1801,1804,1802,1803,1697,1698,1700,1699,1265,1266,1268,1267,505,506,508,507,2641,2642,2644,2643,1386,1388,1385,1387,2465,2466,2468,2467,1810,1809,1812,1811,945,946,948,947,1730,1732,1729,1731,1436,1433,1434,1435,2697,2698,2700,2699,969,970,972,971,2657,2658,2660,2659,2265,2266,2268,2267,3121,3124,3122,3123,3585,3586,3588,3587,1393,1396,1394,1395,1593,1594,1596,1595,2497,2498,2500,2499,2705,2706,2708,2707,3114,3113,3116,3115,1626,1625,1628,1627,1826,1825,1828,1827,2361,2362,2364,2363,977,978,980,979,2281,2282,2284,2283,761,762,764,763,1449,1452,1450,1451,3146,3148,3145,3147,2825,2826,2828,2827,1857,1860,1858,1859,2721,2722,2724,2723,1644,1642,1641,1643,2289,2290,2292,2291,1458,1457,1460,1459,2393,2394,2396,2395,993,994,996,995,3153,3156,3154,3155,1689,1692,1690,1691,2833,2834,2836,2835,1481,1484,1482,1483,2753,2754,2756,2755,3210,3212,3209,3211,2617,2618,2620,2619,889,890,892,891,2409,2410,2412,2411,1273,1274,1276,1275,1650,1649,1652,1651,3170,3169,3172,3171,1490,1489,1492,1491,3217,3220,3218,3219,1921,1922,1924,1923,2457,2458,2460,2459,1705,1708,1706,1707,2849,2850,2852,2851,2649,2650,2652,2651,2417,2418,2420,2419,3234,3233,3236,3235,1714,1713,1716,1715,1817,1818,1820,1819,3337,3340,3338,3339,2473,2474,2476,2475,953,954,956,955,1506,1505,1508,1507,2881,2882,2884,2883,1738,1740,1737,1739,3346,3345,3348,3347,2665,2666,2668,2667,3130,3129,3132,3131,1402,1401,1404,1403,3265,3268,3266,3267,2481,2482,2484,2483,985,986,988,987,2713,2714,2716,2715,2505,2506,2508,2507,1746,1745,1748,1747,1833,1834,1836,1835,2945,2946,2948,2947,1868,1866,1865,1867,2673,2674,2676,2675,1761,1764,1762,1763,1841,1844,1842,1843,3594,3596,3593,3595,3161,3164,3162,3163,2513,2514,2516,2515,2729,2730,2732,2731,1465,1468,1466,1467,3362,3361,3364,3363,2297,2298,2300,2299,3601,3604,3602,3603,1001,1002,1004,1003,3394,3396,3393,3395,2737,2738,2740,2739,2841,2842,2844,2843,2529,2530,2532,2531,3178,3180,3177,3179,1497,1500,1498,1499,1009,1010,1012,1011,1657,1658,1660,1659,3618,3617,3620,3619,1873,1874,1876,1875,2761,2762,2764,2763,1930,1929,1932,1931,2857,2858,2860,2859,3225,3228,3226,3227,1889,1892,1890,1891,1514,1516,1513,1515,2769,2770,2772,2771,2425,2426,2428,2427,3457,3458,3460,3459,3185,3186,3188,3187,1721,1724,1722,1723,2865,2866,2868,2867,1938,1937,1940,1939,3649,3650,3652,3651,3242,3244,3241,3243,2889,2890,2892,2891,2785,2786,2788,2787,2490,2489,2492,2491,3249,3252,3250,3251,3353,3356,3354,3355,1524,1522,1521,1523,1953,1956,1954,1955,1754,1756,1753,1755,2897,2898,2900,2899,3714,3716,3713,3715,2681,2682,2684,2683,1850,1849,1852,1851,3274,3273,3276,3275,2953,2954,2956,2955,2521,2522,2524,2523,1770,1772,1769,1771,3281,3282,3284,3283,3369,3370,3372,3371,2913,2914,2916,2915,1882,1881,1884,1883,1985,1986,1988,1987,2961,2962,2964,2963,3378,3377,3380,3379,2745,2746,2748,2747,3300,3297,3298,3299,2537,2538,2540,2539,3842,3841,3844,3843,3401,3402,3404,3403,1777,1778,1780,1779,1017,1018,1020,1019,1897,1900,1898,1899,3612,3609,3610,3611,2977,2978,2980,2979,3194,3193,3196,3195,3626,3628,3625,3627,3412,3410,3409,3411,2545,2546,2548,2547,2777,2778,2780,2779,3634,3633,3636,3635,1948,1945,1946,1947,3009,3010,3012,3011,3426,3425,3428,3427,3466,3468,3465,3467,3657,3660,3658,3659,1905,1906,1908,1907,2873,2874,2876,2875,3258,3257,3260,3259,3473,3474,3476,3475,1530,1529,1532,1531,2793,2794,2796,2795,1961,1962,1964,1963,3668,3665,3666,3667,2801,2802,2804,2803,2905,2906,2908,2907,1972,1969,1970,1971,3290,3289,3292,3291,3721,3724,3722,3723,1993,1994,1996,1995,3489,3490,3492,3491,2921,2922,2924,2923,3385,3386,3388,3387,3524,3521,3522,3523,3681,3684,3682,3683,3308,3305,3306,3307,1785,1786,1788,1787,2970,2969,2972,2971,2001,2002,2004,2003,3732,3730,3729,3731,2929,2930,2932,2931,3417,3418,3420,3419,2985,2986,2988,2987,3849,3852,3850,3851,3745,3746,3748,3747,3313,3314,3316,3315,2553,2554,2556,2555,2017,2018,2020,2019,3434,3436,3433,3435,3858,3857,3860,3859,1913,1916,1914,1915,2993,2994,2996,2995,3484,3481,3482,3483,3778,3780,3777,3779,3017,3018,3020,3019,3641,3642,3644,3643,3441,3444,3442,3443,3674,3673,3676,3675,3874,3873,3876,3875,1977,1980,1978,1979,3025,3026,3028,3027,2809,2810,2812,2811,3497,3500,3498,3499,3905,3908,3906,3907,3692,3690,3689,3691,3506,3505,3508,3507,3041,3042,3044,3043,2010,2009,2012,2011,3737,3740,3738,3739,3529,3532,3530,3531,2937,2938,2940,2939,3698,3697,3700,3699,3321,3322,3324,3323,3538,3537,3540,3539,3969,3970,3972,3971,3753,3756,3754,3755,2026,2025,2028,2027,3762,3761,3764,3763,3865,3866,3868,3867,3001,3002,3004,3003,3554,3553,3556,3555,2033,2034,2036,2035,3786,3788,3785,3787,3450,3449,3452,3451,3033,3034,3036,3035,3916,3914,3913,3915,3881,3882,3884,3883,3794,3793,3796,3795,3809,3812,3810,3811,3889,3892,3890,3891,3513,3516,3514,3515,3049,3050,3052,3051,3545,3548,3546,3547,3705,3706,3708,3707,3921,3922,3924,3923,3057,3058,3060,3059,3978,3977,3980,3979,3937,3940,3938,3939,3562,3564,3561,3563,2041,2042,2044,2043,3769,3772,3770,3771,3986,3985,3988,3987,3572,3570,3569,3571,4001,4004,4002,4003,3802,3804,3801,3803,3898,3897,3900,3899,3818,3820,3817,3819,3930,3929,3932,3931,4033,4034,4036,4035,3825,3826,3828,3827,3065,3066,3068,3067,3945,3948,3946,3947,3996,3993,3994,3995,3953,3954,3956,3955,3578,3577,3580,3579,4009,4010,4012,4011,4020,4017,4018,4019,4041,4042,4044,4043,3833,3834,3836,3835,4049,4050,4052,4051,4065,4066,4068,4067,3961,3964,3962,3963,4025,4028,4026,4027,4058,4057,4060,4059,4074,4073,4076,4075,4081,4082,4084,4083,4089,4090,4092,4091]。
在一种可实施的方式中,Nmax=4096,B=16,KL=3,KH=13时,对应的Q1、Q2和Q3如下:
Q3=[0,1,2,4,8,16,32,3,5,64,9,6,17,10,18,128,12,33,65,256,34,7,129,66,512,11,20,24,130,19,13,48,14,257,21,258,26,513,80,25,22,514,96,144,28,49,272,160,1026,288,528,192,544,44,81,50,15,320,23,384,76,82,27,36,40,35,37,38,41,42,97,39,145,29,43,68,72,67,69,74,70,73,98,140,30,146,71,2048,161,576,45,640,1025,46,75,132,136,131,133,134,137,138,273,162,193,77,768,268,274,112,1024,135,78,289,194,139,260,264,259,261,262,265,266,60,290,529,524,141,1040,176,2049,142,530,321,31,1056,545,322,2050,263,304,92,47,267,516,520,515,517,518,521,522,385,546,208,386,1088,577,113,79,269,108,578,224,519,270,1041,641,1036,523,52,56,51,53,54,57,58,55,59,84,88,83,85,86,89,90,560,114,156,87,1152,2064,61,1042,525,642,526,177,1057,91,100,104,99,101,102,105,106,769,2080,172,336,62,143,103,178,93,1058,592,770,107,148,152,147,149,150,153,154,1280,151,209,284,94,204,400,608,2112,1089,352,155,164,168,163,165,166,169,170,210,305,300,109,1090,167,225,306,157,2065,656,110,171,276,280,275,277,281,278,282,1038,1153,226,416,271,279,158,337,2066,672,332,540,1072,2176,173,1037,784,338,1536,704,1154,174,2060,283,196,200,195,197,198,201,202,199,2081,448,353,2113,561,203,1028,1032,1030,1033,1034,1029,1027,63,1281,527,556,285,124,205,2304,562,286,354,2082,401,1104,396,1282,593,240,206,95,800,402,301,417,1120,832,588,1035,1537,2177,2114,896,594,418,2560,302,111,1052,1168,188,449,1073,609,159,2178,541,610,657,333,2061,1184,2096,368,652,1031,292,296,291,293,294,297,298,295,299,532,536,531,533,534,537,538,535,539,2052,2056,2051,2053,2057,2054,2058,2055,2059,324,328,323,325,326,329,330,327,331,548,552,547,549,550,553,554,551,450,542,1538,334,555,116,120,115,117,118,121,122,119,2062,175,123,388,392,387,389,390,393,394,391,658,2305,220,1105,1068,395,580,584,579,581,582,585,586,673,583,1296,287,125,557,1216,316,241,2306,1074,397,2561,207,2128,674,558,785,1100,432,1039,236,1312,624,587,1044,1048,1043,1046,1049,1045,1050,1051,780,1122,705,126,242,398,303,189,1169,1054,706,589,2562,1344,786,348,2144,464,801,1069,1164,590,1121,1552,2192,1106,2076,572,1186,802,1047,180,184,179,181,182,185,186,183,187,644,648,643,645,646,649,650,647,651,212,216,211,213,214,217,218,215,219,1060,1064,1059,1061,1066,1062,1065,1063,2097,688,653,1070,369,2320,190,364,1568,654,2208,335,480,221,3074,370,1408,2336,543,1298,412,2576,2240,1185,317,2592,222,2092,237,559,1170,1292,833,834,1053,2129,1217,604,2098,433,720,816,1101,2063,2368,897,1136,1297,1600,318,898,781,1314,428,736,2432,2124,625,238,2130,399,2145,591,434,349,1102,620,1553,1313,127,1067,308,312,307,309,310,313,314,311,315,228,232,227,229,230,233,234,231,235,772,776,771,773,774,777,778,775,779,1092,1096,1091,1093,1098,1094,1097,1095,1099,340,344,339,341,342,345,346,343,347,2068,2072,2067,2069,2074,2073,2070,2071,2075,1156,1160,1155,1157,1162,1158,1161,1159,1163,356,360,355,357,358,361,362,359,363,564,568,563,565,569,566,570,567,191,782,2193,626,2077,1218,571,2084,2088,2083,2085,2086,2089,2090,2087,465,2091,404,408,403,405,406,409,410,407,2146,1346,350,1084,668,1548,1165,460,1200,2188,1664,573,411,596,600,595,597,598,601,602,599,2078,1116,2194,365,689,466,481,574,2209,413,2624,603,1284,1288,1283,1286,1289,1285,1290,366,2093,1287,1055,1570,655,2688,3073,1166,684,1409,429,252,605,1232,848,690,2094,482,2321,1132,2210,1569,414,1291,2116,2120,2115,2117,2122,2118,2121,2119,2123,420,424,419,421,422,425,426,423,427,612,616,611,613,614,617,618,615,223,2241,1554,1328,619,1076,1080,1075,1077,1082,1081,1078,1083,1137,796,2125,1601,1248,721,2816,716,1086,2316,864,2322,606,912,1103,722,1424,2160,1293,817,1792,319,621,1180,812,3072,1345,430,1138,2126,2337,2242,239,622,1410,380,1201,818,1294,461,496,669,1079,660,664,659,661,662,665,666,663,667,452,456,451,453,454,457,458,455,459,2180,2184,2179,2181,2182,2185,2186,2183,2187,1540,1544,1539,1541,1546,1542,1545,1543,2108,1584,351,2338,2577,1360,2572,737,462,2189,3088,1666,1549,2224,1196,738,2190,1308,2578,1602,670,783,2369,1085,849,2079,928,367,3104,2593,1376,1233,2370,685,844,1118,253,686,2352,1133,850,444,1167,2140,1547,676,680,675,678,677,681,682,679,683,1112,1108,1110,1107,1113,1109,1114,1111,1115,244,248,243,245,246,249,250,251,247,2308,2312,2307,2309,2310,2313,2314,2311,415,2095,1202,2315,788,792,787,790,789,793,794,791,795,1128,1124,1125,1123,1130,1126,1129,1127,2433,2594,1616,960,865,2256,1131,708,712,707,709,710,713,714,711,2434,1794,797,715,1172,1176,1171,1174,1177,1173,1178,1175,1330,3136,636,1179,804,808,803,805,806,809,810,807,254,1550,1665,717,2625,1071,575,913,1440,798,811,372,376,374,371,373,377,378,375,2161,379,2564,2568,2563,2565,2566,2569,2570,2127,2317,2156,1564,431,2626,607,2272,1228,2567,1324,866,2318,1181,1234,3089,908,1793,718,813,2689,476,3084,1117,1329,2571,2100,2104,2099,2101,2102,2105,2106,2103,1295,1472,914,2107,836,840,835,837,838,841,842,839,1249,752,2608,2162,2204,814,929,3200,1197,1680,623,1632,671,1198,1362,2109,3090,463,843,1192,1188,1187,1189,1194,1190,1193,1191,2573,2690,1135,381,497,2574,2225,1586,930,961,3105,1182,2817,492,1250,2220,700,2384,1378,2110,1356,845,382,2191,1585,1425,2226,1229,2141,498,3106,880,445,1392,2640,1148,1696,1580,687,1420,2818,1612,1325,1134,1361,3328,846,2257,2332,1195,2132,2136,2131,2133,2134,2137,2138,2135,2139,436,440,435,437,438,442,441,439,443,1300,1304,1302,1299,1305,1301,1306,1303,1307,1220,1224,1219,1221,1226,1222,1225,1223,732,1264,446,962,2142,2252,1426,2448,1377,2656,1310,637,3137,2400,1551,1230,2258,2353,1808,1441,2348,2157,1087,828,753,1326,799,255,3138,909,2273,1309,719,2354,477,2205,1617,2704,2158,638,748,944,1728,3086,1227,628,632,627,629,630,633,634,631,635,2148,2152,2147,2149,2150,2153,2154,2151,2155,468,472,467,469,470,473,474,471,475,1320,1316,1317,1318,1321,1322,1315,1319,754,3201,1183,1565,1618,2274,478,1260,383,1212,910,2464,2319,815,2206,2385,976,2720,1633,2380,2588,1824,3120,1150,1442,493,1357,2221,1676,3085,701,1566,1323,900,904,899,901,902,905,906,903,907,2196,2200,2195,2197,2198,2201,2202,2199,2203,692,696,691,693,694,697,698,695,699,1348,1352,1347,1350,1353,1349,1354,1355,1351,484,488,483,485,489,486,490,487,491,2212,2216,2211,2213,2214,2217,2218,2215,2219,1556,1560,1555,1558,1561,1557,1562,1559,2832,1473,2386,860,3584,2752,3202,1648,2222,1199,1421,2496,2401,2609,1682,1488,2111,1358,1244,1581,881,3329,2575,494,2604,702,2333,876,2172,847,2253,1856,992,1697,447,2610,1436,2334,733,2402,1340,1231,1634,2449,3152,1474,882,2444,1265,1119,3330,2641,924,2288,1810,734,829,2254,1563,1140,1144,1141,1142,1146,1139,1145,1143,1147,1572,1576,1571,1573,1578,1574,1577,1579,1575,2324,2328,2323,2325,2329,2326,2330,2327,2331,3076,3080,3078,3081,3082,3077,3075,1213,2143,2848,2450,1614,1730,2349,2465,1327,1804,3168,749,2880,945,2636,3083,1456,1681,3585,1266,1388,940,2944,1214,830,2642,2466,1809,911,2350,1582,2159,639,3100,1698,3216,1372,1245,479,1422,946,1677,750,2236,2497,1393,3121,508,1613,861,2657,1857,2207,2589,2658,2705,2381,1826,1504,862,1920,3232,1149,1359,2416,2700,1596,3079,724,728,723,725,726,729,730,727,731,2244,2248,2243,2245,2246,2249,2250,2247,2251,820,824,819,821,822,825,826,823,827,2340,2344,2339,2341,2342,2345,2346,2343,2347,1412,1416,1411,1413,1418,1414,1417,1415,1419,740,744,739,741,742,745,746,743,747,1608,1604,1603,1605,1609,1610,1606,1607,1611,1204,1208,1203,1205,1210,1206,1209,1211,1712,977,2498,2590,3586,2382,972,1311,2223,1729,2706,877,1207,2580,2584,2579,2581,2582,2585,2586,2583,2587,852,856,851,853,854,857,858,855,859,2372,2376,2371,2373,2374,2377,2378,2375,2379,1240,1236,1235,1237,1242,1241,1238,1239,1243,1668,1672,1670,1667,1673,1674,1669,1675,1671,2596,2600,2595,2597,2598,2601,2602,2599,2603,868,872,867,869,870,873,874,871,875,1336,1332,1333,1331,1337,1334,1338,1335,1339,2164,2168,2163,2165,2166,2169,2170,2167,2171,916,920,915,917,922,918,921,919,923,2436,2440,2435,2437,2438,2441,2442,2439,2268,495,1262,3153,1644,3116,2443,1252,1256,1253,1251,1254,1257,1258,1259,1341,1825,703,2721,3344,1567,2335,978,2173,2605,3264,1246,2364,1458,925,2289,1394,878,735,3122,1678,2445,1373,2255,1255,2628,2632,2627,2629,2630,2633,2634,2631,993,2722,2606,2833,3148,2480,1452,3087,994,2284,1744,3360,2672,2635,1364,1368,1365,1366,1369,1363,1370,1371,926,764,2828,941,3170,2753,1628,1367,932,936,931,933,934,937,938,935,939,3092,3096,3091,3094,3097,3093,3098,3099,2174,1805,2290,1457,2446,1921,1583,1484,2351,831,1342,2237,3217,1261,1840,3102,1650,1760,2754,1490,2637,1615,751,3392,2834,942,2396,1858,1423,2512,2849,3117,1692,3212,2638,3169,3600,3154,1598,1374,509,1806,1922,2620,1649,3234,973,1489,1708,2850,892,3095,1796,1800,1801,1798,1795,1797,1802,1799,1438,2736,2701,1390,1868,3118,2417,1151,1506,2238,2412,1597,863,3616,2702,1714,2383,2528,1803,2228,2232,2227,2229,2230,2233,2234,2231,2235,500,504,499,502,501,505,506,503,507,2692,2696,2691,2693,2694,2697,2698,2695,2699,964,968,963,965,966,969,970,967,971,1588,1592,1587,1590,1589,1593,1594,1591,1008,2269,2418,1276,510,3456,2591,3346,2460,3233,1389,2365,1872,974,1453,2270,1713,1215,2285,1629,1520,2607,3218,3340,2881,2882,879,3101,1505,3265,2652,2481,2768,927,2864,3149,1746,2945,1343,1679,3184,1820,1761,3345,3648,1740,2366,1888,765,2946,2829,956,3362,2476,2784,1437,1630,2673,2286,1645,2447,2639,1247,2482,1936,2397,3150,1745,943,2668,3601,1454,3361,1841,1595,1380,1384,1379,1381,1386,1382,1385,1387,1383,3108,3112,3107,3109,3114,3110,3113,3111,2175,3115,2260,2264,2259,2261,2262,2265,2266,2263,2267,1428,1432,1430,1427,1433,1434,1429,1431,1435,2356,2360,2355,2357,2358,2361,2362,2359,2363,1620,1624,1621,1626,1622,1619,1625,1627,1623,2820,2824,2819,2821,2822,2825,2826,2823,2827,2276,2280,2275,2277,2278,2281,2282,2279,2283,756,760,755,757,758,761,762,759,763,3140,3144,3139,3141,3146,3142,3145,3143,3147,1448,1444,1446,1445,1449,1443,1450,1451,1447,2388,2392,2387,2389,2390,2393,2394,2391,2395,1636,1640,1635,1638,1637,1642,1641,1643,1639,1684,1688,1686,1685,1689,1683,1690,1691,1687,1476,1480,1475,1478,1481,1477,1482,1479,1483,3204,3208,3203,3205,3210,3206,3209,3207,3211,2404,2408,2403,2405,2406,2409,2410,2407,2411,2612,2616,2611,2613,2617,2614,2618,2615,1278,2239,766,2830,2674,1709,3266,2619,884,888,883,885,886,889,890,887,891,1272,1268,1269,1270,1267,1273,1274,1275,2513,1646,511,3394,2398,1485,3132,1404,2716,1693,3596,1952,3213,2508,988,3248,1807,3712,2621,3164,2413,1391,2737,1468,1836,2514,1873,1271,2452,2456,2451,2453,2454,2457,2458,2455,2459,1704,1700,1699,1705,1702,1701,1706,1707,2529,2622,1694,893,2461,2414,975,894,3103,3618,2703,1762,1842,1375,3214,2732,3457,1703,2644,2648,2643,2645,2646,2649,2650,2647,2651,3332,3336,3331,3334,3337,3333,3338,3335,1009,2477,1874,2300,2653,3280,2896,2738,1486,2530,1889,1004,3180,1821,1599,1776,3617,2462,1405,3339,948,952,947,949,950,953,954,951,955,2468,2472,2467,2469,2470,2473,2474,2471,2475,1816,1812,1811,1814,1817,1818,1813,1815,2271,1010,3602,1984,1455,3376,957,3185,2844,3649,3296,2769,1710,958,2764,3134,2912,1938,1660,2654,1500,2960,3151,2770,1819,1732,1736,1733,1731,1738,1734,1737,1739,1735,2660,2664,2659,2661,2662,2665,2666,2663,2667,1396,1400,1397,1395,1402,1401,1398,1399,1403,1832,1828,1827,1829,1830,1833,1834,1831,1741,3472,1516,3341,2865,1932,3840,2367,2669,3228,2860,3393,2478,3186,1838,1277,1647,2287,2670,1742,3458,2428,3249,2866,1953,3342,2509,1837,2544,2717,1631,1469,767,1904,1724,989,3632,2399,1406,3408,2785,2510,1822,1835,3124,3128,3123,3125,3130,3129,3126,3131,3127,2708,2712,2707,2709,2710,2713,2714,2711,2715,2500,2504,2499,2501,2502,2505,2506,2503,2507,980,984,979,981,982,985,986,983,987,3588,3592,3587,3589,3594,3590,3593,3591,3714,3597,3244,1890,2786,3356,1522,3650,2718,1695,2831,990,3133,2897,1005,1937,2976,2415,3424,3281,2733,2892,3166,2301,1487,1869,2734,1521,959,1263,3181,2898,2492,1711,1756,3215,3595,2724,2728,2723,2726,2725,2729,2730,2727,2731,3160,3156,3158,3155,3161,3157,3162,3159,3163,996,1000,995,997,998,1001,1002,999,1003,1460,1464,1459,1462,1465,1461,1466,1463,1467,2292,2296,2291,2293,2294,2297,2298,2299,2295,1860,1864,1861,1859,1866,1862,1865,1867,1863,2836,2840,2835,2838,2837,2841,2842,2839,2463,3250,2843,1656,1652,1651,1657,1654,1653,1658,1655,3664,3008,1870,2913,1662,1985,3842,2845,1954,3378,1777,2684,2302,895,3598,3713,2765,1439,3119,2623,2961,3488,1006,2846,1661,3612,1502,2479,1986,2655,1852,3276,1934,3372,2914,1772,3229,3282,2956,1470,3841,2766,2861,1743,2524,3165,3377,3343,1968,3520,2962,3297,2800,1517,1778,2862,2977,1823,3245,1659,3176,3172,3173,3171,3178,3174,3177,3175,3179,2756,2760,2755,2757,2758,2761,2762,2759,2763,1492,1496,1491,1494,1497,1493,1498,1499,1495,3220,3224,3219,3222,3225,3221,3226,3223,3227,2852,2856,2851,2853,2854,2857,2858,2855,2859,1928,1924,1926,1923,1930,1929,1925,1927,1931,2420,2424,2422,2419,2421,2425,2426,2423,2427,1512,1508,1510,1507,1514,1513,1509,1511,1515,1720,1716,1715,1718,1721,1717,1722,1719,1723,2884,2888,2883,2885,2886,2889,2890,2887,3728,2671,3680,2719,3246,3410,1501,1900,2511,1725,2891,3240,3236,3235,3237,3242,3238,3241,3239,991,3183,2429,1933,2545,3634,2978,1839,3009,3230,2540,1884,3298,1726,2748,1948,1518,1020,3426,3404,2893,1905,2430,3633,3473,3277,2546,1757,2928,2493,3440,3196,3744,3628,2735,1471,1007,3468,2000,3660,3373,3182,3409,2894,1871,3243,2484,2488,2483,2485,2486,2490,2489,2487,2491,3348,3352,3350,3347,3353,3349,3354,3351,3355,3268,3272,3267,3269,3274,3270,3273,3271,2780,3312,2494,3010,3474,3425,3358,2685,3599,1758,3278,1906,3856,3489,1773,3135,1853,2876,2801,3374,2847,2303,2957,3357,2767,1503,2525,3665,1885,2686,2796,2016,2992,3776,1854,3275,1752,1748,1749,1747,1754,1750,1753,1755,1751,1848,1844,1843,1850,1845,1846,1849,1851,1847,2676,2680,2675,2677,2678,2681,2682,2679,2683,3368,3364,3365,3366,3369,3370,3363,3367,1532,2802,1774,3231,3613,3666,2526,3308,2431,3260,2958,1969,2863,3024,1279,3681,1663,3872,3198,3490,2541,3405,1964,3724,2749,3614,1021,3371,2516,2520,2515,2517,2518,2521,2522,2519,2523,2948,2952,2947,2949,2950,2953,2954,2951,2955,1764,1768,1763,1765,1770,1766,1769,1767,1771,2740,2744,2739,2741,2742,2745,2746,2743,2747,3396,3400,3395,3398,3401,3397,3402,3403,3399,2532,2536,2531,2533,2537,2534,2538,2535,2539,3604,3608,3603,3606,3609,3605,3610,3607,1935,3521,2908,1886,2001,3696,1407,3247,3469,1970,1022,3730,3536,1902,3406,3292,3629,2929,2542,1759,2750,2924,2895,3904,3040,3745,2495,1996,3484,2781,2002,3388,3279,1949,3682,2017,3522,2930,1534,3313,3167,2972,3858,2782,2877,1788,3611,1876,1880,1877,1882,1878,1881,1875,1883,1879,1012,1016,1011,1013,1014,1017,1018,1015,1019,3188,3192,3189,3190,3194,3187,3193,3191,3195,1892,1896,1891,1897,1894,1893,1898,1895,1899,3620,3624,3619,3621,3626,3622,3625,3627,3623,2772,2776,2771,2773,2774,2777,2778,2775,2779,1944,1940,1939,1941,1945,1942,1946,1943,1947,2868,2872,2867,2869,2870,2873,2874,2871,2875,3460,3464,3459,3461,3466,3462,3465,3463,3467,2788,2792,2787,2789,2790,2793,2794,2791,2795,3656,3652,3651,3653,3657,3658,3654,3655,3261,3659,1524,1528,1525,1530,1523,1529,1526,1527,1965,1901,3662,3778,1966,1775,3375,3852,2797,2993,3504,3729,1531,3252,3256,3251,3253,3258,3254,3257,3259,3314,3436,2988,3262,1950,2878,3857,2959,3630,2018,2687,1727,3746,1916,3420,3293,2527,1855,3470,2994,3725,2798,3441,2556,3661,2909,3905,3874,3552,2910,3968,1887,3197,3407,1023,3644,3760,3025,3020,3359,1998,3777,2925,3255,1956,1960,1955,1958,1961,1957,1962,1959,1963,2900,2904,2899,2901,2902,2905,2906,2903,2907,3288,3284,3283,3285,3290,3289,3286,3287,3291,3716,3720,3718,3715,3721,3722,3717,3723,3719,1992,1988,1989,1993,1987,1994,1990,1991,1995,2916,2920,2915,2917,2918,2921,2922,2919,2923,3384,3380,3381,3379,3385,3382,3386,3383,3387,1784,1780,1781,1782,1785,1779,1786,1787,1783,2964,2968,2963,2965,2970,2966,2969,2967,2971,3300,3304,3301,3299,3302,3305,3306,3307,2543,3310,1980,3692,3389,3873,2751,1903,3615,3026,1789,3294,3506,2973,3442,2926,2783,1997,3726,2032,3421,3303,3412,3416,3413,3414,3417,3411,3418,3419,3041,1917,3500,3042,3792,2974,2812,2989,1519,3676,3415,3844,3848,3849,3846,3843,3845,3850,3847,3853,3505,3969,3631,1951,3532,2879,3390,3309,3888,3698,3808,3538,3663,2799,2990,3906,1790,3471,3740,2012,3646,3422,2557,3854,3970,3697,1967,3021,3537,3756,2940,3486,3438,3916,3199,3554,1981,3645,2911,3762,3851,2980,2984,2979,2981,2982,2985,2986,2983,2987,2548,2552,2547,2550,2549,2553,2554,2551,2555,1912,1908,1907,1913,1910,1909,1914,1911,1915,3636,3640,3635,3638,3637,3641,3642,3639,3056,1918,3324,2558,2033,1999,3437,3920,3022,3501,2028,3761,3263,1533,3677,3568,2927,3553,2975,1982,3794,3391,3727,2034,3868,3809,3788,3936,2813,3004,3485,3678,2013,3693,3295,3984,3793,2991,3502,3889,3643,3012,3016,3011,3013,3014,3017,3018,3015,3019,3428,3432,3427,3429,3434,3430,3433,3435,3431,3476,3480,3478,3475,3481,3482,3477,3479,3483,1976,1972,1971,1974,1977,1973,1978,1975,1979,3668,3672,3669,3674,3670,3667,3673,3675,3671,2804,2808,2803,2805,2806,2809,2810,2807,2811,3496,3492,3494,3493,3497,3491,3498,3499,3495,3684,3688,3683,3686,3685,3690,3689,3691,3687,3732,3736,3734,3733,3737,3731,3738,3739,3735,2004,2008,2005,2003,2010,2006,2009,2011,2007,3524,3528,3523,3526,3529,3525,3530,3527,3531,2932,2936,2931,2933,2934,2937,2938,2935,2939,3320,3316,3317,3318,3315,3321,3322,3323,3326,2814,2030,3757,3694,2559,2014,3533,3452,3741,4000,3036,3855,3439,3516,1535,3884,3921,3319,3752,3748,3747,3753,3750,3749,3754,3755,2029,3742,2941,3023,2942,3810,3890,3423,3751,2020,2024,2019,2021,2026,2025,2022,2023,2027,2996,3000,2995,2997,2998,3001,3002,2999,3057,3922,3003,3864,3860,3859,3862,3865,3866,3861,3863,3534,3937,3052,3869,3647,3824,3453,3058,4032,3503,1791,3005,3758,3006,3986,3708,3548,3867,3780,3784,3781,3779,3786,3782,3785,3787,3783,3444,3448,3445,3443,3450,3449,3446,3447,3451,3880,3876,3875,3877,3878,3881,3882,3879,3789,3564,3980,3886,3325,3695,1919,3790,4001,3885,3679,3517,2815,3952,3772,3037,3454,3870,3883,3028,3032,3027,3029,3030,3033,3034,3031,3035,3044,3048,3043,3045,3046,3049,3050,3047,2044,3938,3051,3508,3512,3507,3510,3513,3509,3514,3511,3515,3908,3912,3909,3907,3914,3910,3913,3915,3911,3704,3700,3699,3705,3702,3701,3706,3570,3743,3038,3053,3985,3703,3535,3917,3569,3007,3311,3759,3804,2031,3918,3710,4033,4002,3825,2943,3487,3054,3709,3550,4034,1983,3900,3982,3820,3518,3791,4016,3565,3826,3871,2046,3707,3540,3544,3539,3542,3545,3541,3546,3547,3543,3976,3972,3974,3971,3978,3977,3973,3975,3979,2036,2040,2035,2037,2038,2041,2042,2039,2043,3560,3556,3558,3555,3562,3561,3557,3559,3563,3768,3764,3763,3766,3769,3765,3770,3767,3771,3896,3892,3891,3898,3893,3894,3897,3549,3948,3773,3039,3981,3887,3932,2047,3774,3996,3566,3068,3953,3899,3805,2015,3519,3055,4048,3895,3800,3796,3797,3795,3802,3798,3801,3803,3919,3806,3954,3821,3901,3799,3812,3816,3811,3813,3818,3814,3817,3815,3819,3924,3928,3925,3930,3926,3929,3923,3931,3551,3933,4064,3902,3580,3822,4017,3327,3711,4012,3069,3983,3934,4049,3455,2045,4018,3927,3060,3064,3059,3061,3062,3065,3066,3063,3067,3940,3944,3939,3945,3942,3941,3946,3943,3947,3992,3988,3987,3989,3993,3990,3994,3991,3070,3950,3995,3572,3576,3573,3578,3571,3577,3574,3807,3575,4044,4050,3997,4065,3582,3836,4013,3949,4014,3823,3579,4004,4008,4003,4006,4009,4005,4010,4007,3998,4066,3775,3964,3903,3935,3071,4011,4040,4036,4037,4041,4035,4042,4038,4039,4043,3832,3828,3829,3830,3833,3827,3834,3835,4046,3831,3960,3956,3955,3961,3958,3957,3962,4028,3951,3837,4045,4080,3965,3567,3999,3959,3838,4060,4015,3963,4024,4020,4019,4022,4025,4021,4026,4023,4029,3966,4081,4047,4076,3581,4030,4082,4027,4052,4056,4053,4051,4058,4054,4057,4059,4061,4055,4068,4072,4067,4069,4074,4073,4070,4071,4078,4062,3583,4075,4084,4088,4077,4083,4085,3839,4086,4089,3967,4090,4087,4092,4091,4079,4031,4094,4095,4063,4093]。
Q1=[0,1,2,16,32,64,17,18,128,12,33,65,256,34,129,66,512,130,13,48,14,257,258,513,80,514,96,144,28,49,272,160,1026,288,528,192,544,44,81,50,15,320,384,76,82,97,145,29,98,140,30,146,2048,161,576,45,640,1025,46,273,162,193,77,768,268,274,112,1024,78,289,194,60,290,529,524,141,1040,176,2049,142,530,321,31,1056,545,322,2050,304,92,47,385,546,208,386,1088,577,113,79,269,108,578,224,270,1041,641,1036,560,114,156,1152,2064,61,1042,525,642,526,177,1057,769,2080,172,336,62,143,178,93,1058,592,770,1280,209,284,94,204,400,608,2112,1089,352,210,305,300,109,1090,225,306,157,2065,656,110,1038,1153,226,416,271,158,337,2066,672,332,540,1072,2176,173,1037,784,338,1536,704,1154,174,2060,2081,448,353,2113,561,63,1281,527,556,285,124,205,2304,562,286,354,2082,401,1104,396,1282,593,240,206,95,800,402,301,417,1120,832,588,1537,2177,2114,896,594,418,2560,302,111,1052,1168,188,449,1073,609,159,2178,541,610,657,333,2061,1184,2096,368,652,450,542,1538,334,2062,175,658,2305,220,1105,1068,673,1296,287,125,557,1216,316,241,2306,1074,397,2561,207,2128,674,558,785,1100,432,1039,236,1312,624,780,1122,705,126,242,398,303,189,1169,1054,706,589,2562,1344,786,348,2144,464,801,1069,1164,590,1121,1552,2192,1106,2076,572,1186,802,2097,688,653,1070,369,2320,190,364,1568,654,2208,335,480,221,3074,370,1408,2336,543,1298,412,2576,2240,1185,317,2592,222,2092,237,559,1170,1292,833,834,1053,2129,1217,604,2098,433,720,816,1101,2063,2368,897,1136,1297,1600,318,898,781,1314,428,736,2432,2124,625,238,2130,399,2145,591,434,349,1102,620,1553,1313,127,191,782,2193,626,2077,1218,465,2146,1346,350,1084,668,1548,1165,460,1200,2188,1664,573,2078,1116,2194,365,689,466,481,574,2209,413,2624,366,2093,1055,1570,655,2688,3073,1166,684,1409,429,252,605,1232,848,690,2094,482,2321,1132,2210,1569,414,223,2241,1554,1328,1137,796,2125,1601,1248,721,2816,716,1086,2316,864,2322,606,912,1103,722,1424,2160,1293,817,1792,319,621,1180,812,3072,1345,430,1138,2126,2337,2242,239,622,1410,380,1201,818,1294,461,496,669,2108,1584,351,2338,2577,1360,2572,737,462,2189,3088,1666,1549,2224,1196,738,2190,1308,2578,1602,670,783,2369,1085,849,2079,928,367,3104,2593,1376,1233,2370,685,844,1118,253,686,2352,1133,850,444,1167,2140,415,2095,1202,2433,2594,1616,960,865,2256,2434,1794,797,1330,3136,636,254,1550,1665,717,2625,1071,575,913,1440,798,2161,2127,2317,2156,1564,431,2626,607,2272,1228,1324,866,2318,1181,1234,3089,908,1793,718,813,2689,476,3084,1117,1329,1295,1472,914,1249,752,2608,2162,2204,814,929,3200,1197,1680,623,1632,671,1198,1362,2109,3090,463,2573,2690,1135,381,497,2574,2225,1586,930,961,3105,1182,2817,492,1250,2220,700,2384,1378,2110,1356,845,382,2191,1585,1425,2226,1229,2141,498,3106,880,445,1392,2640,1148,1696,1580,687,1420,2818,1612,1325,1134,1361,3328,846,2257,2332,732,1264,446,962,2142,2252,1426,2448,1377,2656,1310,637,3137,2400,1551,1230,2258,2353,1808,1441,2348,2157,1087,828,753,1326,799,255,3138,909,2273,1309,719,2354,477,2205,1617,2704,2158,638,748,944,1728,3086,754,3201,1183,1565,1618,2274,478,1260,383,1212,910,2464,2319,815,2206,2385,976,2720,1633,2380,2588,1824,3120,1150,1442,493,1357,2221,1676,3085,701,1566,2832,1473,2386,860,3584,2752,3202,1648,2222,1199,1421,2496,2401,2609,1682,1488,2111,1358,1244,1581,881,3329,2575,494,2604,702,2333,876,2172,847,2253,1856,992,1697,447,2610,1436,2334,733,2402,1340,1231,1634,2449,3152,1474,882,2444,1265,1119,3330,2641,924,2288,1810,734,829,2254,1213,2143,2848,2450,1614,1730,2349,2465,1327,1804,3168,749,2880,945,2636,1456,1681,3585,1266,1388,940,2944,1214,830,2642,2466,1809,911,2350,1582,2159,639,3100,1698,3216,1372,1245,479,1422,946,1677,750,2236,2497,1393,3121,508,1613,861,2657,1857,2207,2589,2658,2705,2381,1826,1504,862,1920,3232,1149,1359,2416,2700,1596,1712,977,2498,2590,3586,2382,972,1311,2223,1729,2706,877,2268,495,1262,3153,1644,3116,1341,1825,703,2721,3344,1567,2335,978,2173,2605,3264,1246,2364,1458,925,2289,1394,878,735,3122,1678,2445,1373,2255,993,2722,2606,2833,3148,2480,1452,3087,994,2284,1744,3360,2672,926,764,2828,941,3170,2753,1628,2174,1805,2290,1457,2446,1921,1583,1484,2351,831,1342,2237,3217,1261,1840,3102,1650,1760,2754,1490,2637,1615,751,3392,2834,942,2396,1858,1423,2512,2849,3117,1692,3212,2638,3169,3600,3154,1598,1374,509,1806,1922,2620,1649,3234,973,1489,1708,2850,892,1438,2736,2701,1390,1868,3118,2417,1151,1506,2238,2412,1597,863,3616,2702,1714,2383,2528,1008,2269,2418,1276,510,3456,2591,3346,2460,3233,1389,2365,1872,974,1453,2270,1713,1215,2285,1629,1520,2607,3218,3340,2881,2882,879,3101,1505,3265,2652,2481,2768,927,2864,3149,1746,2945,1343,1679,3184,1820,1761,3345,3648,1740,2366,1888,765,2946,2829,956,3362,2476,2784,1437,1630,2673,2286,1645,2447,2639,1247,2482,1936,2397,3150,1745,943,2668,3601,1454,3361,1841,2175,1278,2239,766,2830,2674,1709,3266,2513,1646,511,3394,2398,1485,3132,1404,2716,1693,3596,1952,3213,2508,988,3248,1807,3712,2621,3164,2413,1391,2737,1468,1836,2514,1873,2529,2622,1694,893,2461,2414,975,894,3103,3618,2703,1762,1842,1375,3214,2732,3457,1009,2477,1874,2300,2653,3280,2896,2738,1486,2530,1889,1004,3180,1821,1599,1776,3617,2462,1405,2271,1010,3602,1984,1455,3376,957,3185,2844,3649,3296,2769,1710,958,2764,3134,2912,1938,1660,2654,1500,2960,3151,2770,1741,3472,1516,3341,2865,1932,3840,2367,2669,3228,2860,3393,2478,3186,1838,1277,1647,2287,2670,1742,3458,2428,3249,2866,1953,3342,2509,1837,2544,2717,1631,1469,767,1904,1724,989,3632,2399,1406,3408,2785,2510,1822,3714,3597,3244,1890,2786,3356,1522,3650,2718,1695,2831,990,3133,2897,1005,1937,2976,2415,3424,3281,2733,2892,3166,2301,1487,1869,2734,1521,959,1263,3181,2898,2492,1711,1756,3215,2463,3250,3664,3008,1870,2913,1662,1985,3842,2845,1954,3378,1777,2684,2302,895,3598,3713,2765,1439,3119,2623,2961,3488,1006,2846,1661,3612,1502,2479,1986,2655,1852,3276,1934,3372,2914,1772,3229,3282,2956,1470,3841,2766,2861,1743,2524,3165,3377,3343,1968,3520,2962,3297,2800,1517,1778,2862,2977,1823,3245,3728,2671,3680,2719,3246,3410,1501,1900,2511,1725,991,3183,2429,1933,2545,3634,2978,1839,3009,3230,2540,1884,3298,1726,2748,1948,1518,1020,3426,3404,2893,1905,2430,3633,3473,3277,2546,1757,2928,2493,3440,3196,3744,3628,2735,1471,1007,3468,2000,3660,3373,3182,3409,2894,1871,2780,3312,2494,3010,3474,3425,3358,2685,3599,1758,3278,1906,3856,3489,1773,3135,1853,2876,2801,3374,2847,2303,2957,3357,2767,1503,2525,3665,1885,2686,2796,2016,2992,3776,1854,1532,2802,1774,3231,3613,3666,2526,3308,2431,3260,2958,1969,2863,3024,1279,3681,1663,3872,3198,3490,2541,3405,1964,3724,2749,3614,1021,1935,3521,2908,1886,2001,3696,1407,3247,3469,1970,1022,3730,3536,1902,3406,3292,3629,2929,2542,1759,2750,2924,2895,3904,3040,3745,2495,1996,3484,2781,2002,3388,3279,1949,3682,2017,3522,2930,1534,3313,3167,2972,3858,2782,2877,1788,3261,1965,1901,3662,3778,1966,1775,3375,3852,2797,2993,3504,3729,3314,3436,2988,3262,1950,2878,3857,2959,3630,2018,2687,1727,3746,1916,3420,3293,2527,1855,3470,2994,3725,2798,3441,2556,3661,2909,3905,3874,3552,2910,3968,1887,3197,3407,1023,3644,3760,3025,3020,3359,1998,3777,2925,2543,3310,1980,3692,3389,3873,2751,1903,3615,3026,1789,3294,3506,2973,3442,2926,2783,1997,3726,2032,3421,3041,1917,3500,3042,3792,2974,2812,2989,1519,3676,3853,3505,3969,3631,1951,3532,2879,3390,3309,3888,3698,3808,3538,3663,2799,2990,3906,1790,3471,3740,2012,3646,3422,2557,3854,3970,3697,1967,3021,3537,3756,2940,3486,3438,3916,3199,3554,1981,3645,2911,3762,3056,1918,3324,2558,2033,1999,3437,3920,3022,3501,2028,3761,3263,1533,3677,3568,2927,3553,2975,1982,3794,3391,3727,2034,3868,3809,3788,3936,2813,3004,3485,3678,2013,3693,3295,3984,3793,2991,3502,3889,3326,2814,2030,3757,3694,2559,2014,3533,3452,3741,4000,3036,3855,3439,3516,1535,3884,3921,2029,3742,2941,3023,2942,3810,3890,3423,3057,3922,3534,3937,3052,3869,3647,3824,3453,3058,4032,3503,1791,3005,3758,3006,3986,3708,3548,3789,3564,3980,3886,3325,3695,1919,3790,4001,3885,3679,3517,2815,3952,3772,3037,3454,3870,2044,3938,3570,3743,3038,3053,3985,3535,3917,3569,3007,3311,3759,3804,2031,3918,3710,4033,4002,3825,2943,3487,3054,3709,3550,4034,1983,3900,3982,3820,3518,3791,4016,3565,3826,3871,2046,3549,3948,3773,3039,3981,3887,3932,2047,3774,3996,3566,3068,3953,3805,2015,3519,3055,4048,3919,3806,3954,3821,3901,3551,3933,4064,3902,3580,3822,4017,3327,3711,4012,3069,3983,3934,4049,3455,2045,4018,3070,3950,3807,4044,4050,3997,4065,3582,3836,4013,3949,4014,3823,3998,4066,3775,3964,3903,3935,3071,4046,4028,3951,3837,4045,4080,3965,3567,3999,3838,4060,4015,4029,3966,4081,4047,4076,3581,4030,4082,4061,4078,4062,3583,4077,3839,3967,4092,4079,4031,4094,4095,4063,4093]。
Q2=[4,8,3,5,9,6,10,7,11,20,24,19,21,26,25,22,23,27,36,40,35,37,38,41,42,39,43,68,72,67,69,74,70,73,71,75,132,136,131,133,134,137,138,135,139,260,264,259,261,262,265,266,263,267,516,520,515,517,518,521,522,519,523,52,56,51,53,54,57,58,55,59,84,88,83,85,86,89,90,87,91,100,104,99,101,102,105,106,103,107,148,152,147,149,150,153,154,151,155,164,168,163,165,166,169,170,167,171,276,280,275,277,281,278,282,279,283,196,200,195,197,198,201,202,199,203,1028,1032,1030,1033,1034,1029,1027,1035,1031,292,296,291,293,294,297,298,295,299,532,536,531,533,534,537,538,535,539,2052,2056,2051,2053,2057,2054,2058,2055,2059,324,328,323,325,326,329,330,327,331,548,552,547,549,550,553,554,551,555,116,120,115,117,118,121,122,119,123,388,392,387,389,390,393,394,391,395,580,584,579,581,582,585,586,583,587,1044,1048,1043,1046,1049,1045,1050,1051,1047,180,184,179,181,182,185,186,183,187,644,648,643,645,646,649,650,647,651,212,216,211,213,214,217,218,215,219,1060,1064,1059,1061,1066,1062,1065,1063,1067,308,312,307,309,310,313,314,311,315,228,232,227,229,230,233,234,231,235,772,776,771,773,774,777,778,775,779,1092,1096,1091,1093,1098,1094,1097,1095,1099,340,344,339,341,342,345,346,343,347,2068,2072,2067,2069,2074,2073,2070,2071,2075,1156,1160,1155,1157,1162,1158,1161,1159,1163,356,360,355,357,358,361,362,359,363,564,568,563,565,569,566,570,567,571,2084,2088,2083,2085,2086,2089,2090,2087,2091,404,408,403,405,406,409,410,407,411,596,600,595,597,598,601,602,599,603,1284,1288,1283,1286,1289,1285,1290,1287,1291,2116,2120,2115,2117,2122,2118,2121,2119,2123,420,424,419,421,422,425,426,423,427,612,616,611,613,614,617,618,615,619,1076,1080,1075,1077,1082,1081,1078,1083,1079,660,664,659,661,662,665,666,663,667,452,456,451,453,454,457,458,455,459,2180,2184,2179,2181,2182,2185,2186,2183,2187,1540,1544,1539,1541,1546,1542,1545,1543,1547,676,680,675,678,677,681,682,679,683,1112,1108,1110,1107,1113,1109,1114,1111,1115,244,248,243,245,246,249,250,251,247,2308,2312,2307,2309,2310,2313,2314,2311,2315,788,792,787,790,789,793,794,791,795,1128,1124,1125,1123,1130,1126,1129,1127,1131,708,712,707,709,710,713,714,711,715,1172,1176,1171,1174,1177,1173,1178,1175,1179,804,808,803,805,806,809,810,807,811,372,376,374,371,373,377,378,375,379,2564,2568,2563,2565,2566,2569,2570,2567,2571,2100,2104,2099,2101,2102,2105,2106,2103,2107,836,840,835,837,838,841,842,839,843,1192,1188,1187,1189,1194,1190,1193,1191,1195,2132,2136,2131,2133,2134,2137,2138,2135,2139,436,440,435,437,438,442,441,439,443,1300,1304,1302,1299,1305,1301,1306,1303,1307,1220,1224,1219,1221,1226,1222,1225,1223,1227,628,632,627,629,630,633,634,631,635,2148,2152,2147,2149,2150,2153,2154,2151,2155,468,472,467,469,470,473,474,471,475,1320,1316,1317,1318,1321,1322,1315,1319,1323,900,904,899,901,902,905,906,903,907,2196,2200,2195,2197,2198,2201,2202,2199,2203,692,696,691,693,694,697,698,695,699,1348,1352,1347,1350,1353,1349,1354,1355,1351,484,488,483,485,489,486,490,487,491,2212,2216,2211,2213,2214,2217,2218,2215,2219,1556,1560,1555,1558,1561,1557,1562,1559,1563,1140,1144,1141,1142,1146,1139,1145,1143,1147,1572,1576,1571,1573,1578,1574,1577,1579,1575,2324,2328,2323,2325,2329,2326,2330,2327,2331,3076,3080,3078,3081,3082,3077,3075,3083,3079,724,728,723,725,726,729,730,727,731,2244,2248,2243,2245,2246,2249,2250,2247,2251,820,824,819,821,822,825,826,823,827,2340,2344,2339,2341,2342,2345,2346,2343,2347,1412,1416,1411,1413,1418,1414,1417,1415,1419,740,744,739,741,742,745,746,743,747,1608,1604,1603,1605,1609,1610,1606,1607,1611,1204,1208,1203,1205,1210,1206,1209,1211,1207,2580,2584,2579,2581,2582,2585,2586,2583,2587,852,856,851,853,854,857,858,855,859,2372,2376,2371,2373,2374,2377,2378,2375,2379,1240,1236,1235,1237,1242,1241,1238,1239,1243,1668,1672,1670,1667,1673,1674,1669,1675,1671,2596,2600,2595,2597,2598,2601,2602,2599,2603,868,872,867,869,870,873,874,871,875,1336,1332,1333,1331,1337,1334,1338,1335,1339,2164,2168,2163,2165,2166,2169,2170,2167,2171,916,920,915,917,922,918,921,919,923,2436,2440,2435,2437,2438,2441,2442,2439,2443,1252,1256,1253,1251,1254,1257,1258,1259,1255,2628,2632,2627,2629,2630,2633,2634,2631,2635,1364,1368,1365,1366,1369,1363,1370,1371,1367,932,936,931,933,934,937,938,935,939,3092,3096,3091,3094,3097,3093,3098,3099,3095,1796,1800,1801,1798,1795,1797,1802,1799,1803,2228,2232,2227,2229,2230,2233,2234,2231,2235,500,504,499,502,501,505,506,503,507,2692,2696,2691,2693,2694,2697,2698,2695,2699,964,968,963,965,966,969,970,967,971,1588,1592,1587,1590,1589,1593,1594,1591,1595,1380,1384,1379,1381,1386,1382,1385,1387,1383,3108,3112,3107,3109,3114,3110,3113,3111,3115,2260,2264,2259,2261,2262,2265,2266,2263,2267,1428,1432,1430,1427,1433,1434,1429,1431,1435,2356,2360,2355,2357,2358,2361,2362,2359,2363,1620,1624,1621,1626,1622,1619,1625,1627,1623,2820,2824,2819,2821,2822,2825,2826,2823,2827,2276,2280,2275,2277,2278,2281,2282,2279,2283,756,760,755,757,758,761,762,759,763,3140,3144,3139,3141,3146,3142,3145,3143,3147,1448,1444,1446,1445,1449,1443,1450,1451,1447,2388,2392,2387,2389,2390,2393,2394,2391,2395,1636,1640,1635,1638,1637,1642,1641,1643,1639,1684,1688,1686,1685,1689,1683,1690,1691,1687,1476,1480,1475,1478,1481,1477,1482,1479,1483,3204,3208,3203,3205,3210,3206,3209,3207,3211,2404,2408,2403,2405,2406,2409,2410,2407,2411,2612,2616,2611,2613,2617,2614,2618,2615,2619,884,888,883,885,886,889,890,887,891,1272,1268,1269,1270,1267,1273,1274,1275,1271,2452,2456,2451,2453,2454,2457,2458,2455,2459,1704,1700,1699,1705,1702,1701,1706,1707,1703,2644,2648,2643,2645,2646,2649,2650,2647,2651,3332,3336,3331,3334,3337,3333,3338,3335,3339,948,952,947,949,950,953,954,951,955,2468,2472,2467,2469,2470,2473,2474,2471,2475,1816,1812,1811,1814,1817,1818,1813,1815,1819,1732,1736,1733,1731,1738,1734,1737,1739,1735,2660,2664,2659,2661,2662,2665,2666,2663,2667,1396,1400,1397,1395,1402,1401,1398,1399,1403,1832,1828,1827,1829,1830,1833,1834,1831,1835,3124,3128,3123,3125,3130,3129,3126,3131,3127,2708,2712,2707,2709,2710,2713,2714,2711,2715,2500,2504,2499,2501,2502,2505,2506,2503,2507,980,984,979,981,982,985,986,983,987,3588,3592,3587,3589,3594,3590,3593,3591,3595,2724,2728,2723,2726,2725,2729,2730,2727,2731,3160,3156,3158,3155,3161,3157,3162,3159,3163,996,1000,995,997,998,1001,1002,999,1003,1460,1464,1459,1462,1465,1461,1466,1463,1467,2292,2296,2291,2293,2294,2297,2298,2299,2295,1860,1864,1861,1859,1866,1862,1865,1867,1863,2836,2840,2835,2838,2837,2841,2842,2839,2843,1656,1652,1651,1657,1654,1653,1658,1655,1659,3176,3172,3173,3171,3178,3174,3177,3175,3179,2756,2760,2755,2757,2758,2761,2762,2759,2763,1492,1496,1491,1494,1497,1493,1498,1499,1495,3220,3224,3219,3222,3225,3221,3226,3223,3227,2852,2856,2851,2853,2854,2857,2858,2855,2859,1928,1924,1926,1923,1930,1929,1925,1927,1931,2420,2424,2422,2419,2421,2425,2426,2423,2427,1512,1508,1510,1507,1514,1513,1509,1511,1515,1720,1716,1715,1718,1721,1717,1722,1719,1723,2884,2888,2883,2885,2886,2889,2890,2887,2891,3240,3236,3235,3237,3242,3238,3241,3239,3243,2484,2488,2483,2485,2486,2490,2489,2487,2491,3348,3352,3350,3347,3353,3349,3354,3351,3355,3268,3272,3267,3269,3274,3270,3273,3271,3275,1752,1748,1749,1747,1754,1750,1753,1755,1751,1848,1844,1843,1850,1845,1846,1849,1851,1847,2676,2680,2675,2677,2678,2681,2682,2679,2683,3368,3364,3365,3366,3369,3370,3363,3367,3371,2516,2520,2515,2517,2518,2521,2522,2519,2523,2948,2952,2947,2949,2950,2953,2954,2951,2955,1764,1768,1763,1765,1770,1766,1769,1767,1771,2740,2744,2739,2741,2742,2745,2746,2743,2747,3396,3400,3395,3398,3401,3397,3402,3403,3399,2532,2536,2531,2533,2537,2534,2538,2535,2539,3604,3608,3603,3606,3609,3605,3610,3607,3611,1876,1880,1877,1882,1878,1881,1875,1883,1879,1012,1016,1011,1013,1014,1017,1018,1015,1019,3188,3192,3189,3190,3194,3187,3193,3191,3195,1892,1896,1891,1897,1894,1893,1898,1895,1899,3620,3624,3619,3621,3626,3622,3625,3627,3623,2772,2776,2771,2773,2774,2777,2778,2775,2779,1944,1940,1939,1941,1945,1942,1946,1943,1947,2868,2872,2867,2869,2870,2873,2874,2871,2875,3460,3464,3459,3461,3466,3462,3465,3463,3467,2788,2792,2787,2789,2790,2793,2794,2791,2795,3656,3652,3651,3653,3657,3658,3654,3655,3659,1524,1528,1525,1530,1523,1529,1526,1527,1531,3252,3256,3251,3253,3258,3254,3257,3259,3255,1956,1960,1955,1958,1961,1957,1962,1959,1963,2900,2904,2899,2901,2902,2905,2906,2903,2907,3288,3284,3283,3285,3290,3289,3286,3287,3291,3716,3720,3718,3715,3721,3722,3717,3723,3719,1992,1988,1989,1993,1987,1994,1990,1991,1995,2916,2920,2915,2917,2918,2921,2922,2919,2923,3384,3380,3381,3379,3385,3382,3386,3383,3387,1784,1780,1781,1782,1785,1779,1786,1787,1783,2964,2968,2963,2965,2970,2966,2969,2967,2971,3300,3304,3301,3299,3302,3305,3306,3307,3303,3412,3416,3413,3414,3417,3411,3418,3419,3415,3844,3848,3849,3846,3843,3845,3850,3847,3851,2980,2984,2979,2981,2982,2985,2986,2983,2987,2548,2552,2547,2550,2549,2553,2554,2551,2555,1912,1908,1907,1913,1910,1909,1914,1911,1915,3636,3640,3635,3638,3637,3641,3642,3639,3643,3012,3016,3011,3013,3014,3017,3018,3015,3019,3428,3432,3427,3429,3434,3430,3433,3435,3431,3476,3480,3478,3475,3481,3482,3477,3479,3483,1976,1972,1971,1974,1977,1973,1978,1975,1979,3668,3672,3669,3674,3670,3667,3673,3675,3671,2804,2808,2803,2805,2806,2809,2810,2807,2811,3496,3492,3494,3493,3497,3491,3498,3499,3495,3684,3688,3683,3686,3685,3690,3689,3691,3687,3732,3736,3734,3733,3737,3731,3738,3739,3735,2004,2008,2005,2003,2010,2006,2009,2011,2007,3524,3528,3523,3526,3529,3525,3530,3527,3531,2932,2936,2931,2933,2934,2937,2938,2935,2939,3320,3316,3317,3318,3315,3321,3322,3323,3319,3752,3748,3747,3753,3750,3749,3754,3755,3751,2020,2024,2019,2021,2026,2025,2022,2023,2027,2996,3000,2995,2997,2998,3001,3002,2999,3003,3864,3860,3859,3862,3865,3866,3861,3863,3867,3780,3784,3781,3779,3786,3782,3785,3787,3783,3444,3448,3445,3443,3450,3449,3446,3447,3451,3880,3876,3875,3877,3878,3881,3882,3879,3883,3028,3032,3027,3029,3030,3033,3034,3031,3035,3044,3048,3043,3045,3046,3049,3050,3047,3051,3508,3512,3507,3510,3513,3509,3514,3511,3515,3908,3912,3909,3907,3914,3910,3913,3915,3911,3704,3700,3699,3705,3702,3701,3706,3703,3707,3540,3544,3539,3542,3545,3541,3546,3547,3543,3976,3972,3974,3971,3978,3977,3973,3975,3979,2036,2040,2035,2037,2038,2041,2042,2039,2043,3560,3556,3558,3555,3562,3561,3557,3559,3563,3768,3764,3763,3766,3769,3765,3770,3767,3771,3896,3892,3891,3898,3893,3894,3897,3899,3895,3800,3796,3797,3795,3802,3798,3801,3803,3799,3812,3816,3811,3813,3818,3814,3817,3815,3819,3924,3928,3925,3930,3926,3929,3923,3931,3927,3060,3064,3059,3061,3062,3065,3066,3063,3067,3940,3944,3939,3945,3942,3941,3946,3943,3947,3992,3988,3987,3989,3993,3990,3994,3991,3995,3572,3576,3573,3578,3571,3577,3574,3575,3579,4004,4008,4003,4006,4009,4005,4010,4007,4011,4040,4036,4037,4041,4035,4042,4038,4039,4043,3832,3828,3829,3830,3833,3827,3834,3835,3831,3960,3956,3955,3961,3958,3957,3962,3959,3963,4024,4020,4019,4022,4025,4021,4026,4023,4027,4052,4056,4053,4051,4058,4054,4057,4059,4055,4068,4072,4067,4069,4074,4073,4070,4071,4075,4084,4088,4083,4085,4086,4089,4090,4087,4091]。
在一种可实施的方式中,Nmax=8192,B=8,KL=1,KH=6时,对应的Q1、Q2和Q3如下:
Q3=[0,1,2,4,8,16,32,3,5,64,9,6,10,128,12,256,24,7,512,11,17,18,20,40,19,33,34,36,13,48,14,72,21,35,65,66,68,80,37,22,136,264,38,96,67,129,130,132,144,69,272,160,520,288,528,192,544,70,131,257,258,260,15,320,133,23,134,384,56,39,259,26,25,28,27,513,514,516,261,29,515,41,42,44,43,49,50,52,88,30,71,262,2048,576,45,640,51,74,73,76,46,75,81,82,84,517,104,53,1032,152,77,768,518,54,83,137,138,140,112,1024,135,78,85,168,139,97,98,100,99,145,146,148,86,280,141,1040,101,147,161,162,164,176,142,31,200,1056,263,149,102,304,4096,296,1030,163,265,266,268,47,267,1026,1028,1025,208,150,165,55,328,1088,536,79,269,2056,224,166,519,552,270,560,277,87,1152,197,2064,61,525,278,526,293,584,198,2080,120,336,62,143,1029,103,294,93,592,392,2053,1280,151,1027,273,274,276,275,193,194,196,195,57,58,60,59,521,522,524,523,289,290,292,291,529,530,532,531,89,90,92,91,2049,2050,2052,2051,321,322,324,323,105,106,108,107,545,546,548,648,94,400,608,2112,352,325,533,547,153,154,156,155,385,386,388,109,1048,184,534,167,326,2054,157,656,110,117,1038,776,1064,4104,549,387,113,114,116,115,577,578,580,216,416,271,279,158,550,672,118,579,169,170,172,171,1041,1042,1044,1043,1033,1034,1036,1072,2176,389,173,1037,199,784,4112,312,1536,704,390,174,581,1046,448,1096,63,4128,527,582,181,295,285,232,205,182,2304,286,1045,4101,1104,1061,344,645,535,240,2072,206,95,327,800,2055,4160,301,1160,213,568,1120,832,1035,641,642,644,643,177,178,180,179,281,282,284,283,201,202,204,203,1057,1058,1060,1059,4097,4098,4100,4099,297,298,300,299,769,770,772,646,896,2560,302,771,209,210,212,211,305,306,308,307,1089,1090,1092,1091,537,538,540,360,539,225,226,228,227,329,330,332,4102,111,331,2057,2058,2060,2059,2065,2066,2068,1168,214,309,1062,2088,408,551,229,159,310,1093,541,1288,773,333,119,2067,337,338,340,2061,600,339,1153,1154,1156,1184,2096,368,1031,230,391,4224,542,334,2062,774,175,1155,553,554,556,555,121,122,124,123,393,394,396,2120,341,2069,424,395,353,354,356,583,355,2081,2082,2084,1296,1094,287,183,125,557,1216,616,342,2083,561,562,564,1157,563,1049,1050,1052,1051,585,586,588,397,1112,207,2128,4352,558,432,1039,357,664,1312,624,587,401,402,404,403,1281,1282,1284,1080,2085,126,2070,1063,565,398,2184,456,4120,358,405,303,2312,1544,1158,1283,185,186,188,187,2113,2114,2116,189,4103,566,1054,2086,589,1344,215,647,2144,2115,593,594,596,595,417,418,420,419,649,650,652,406,464,680,1069,590,1286,4608,1552,2192,597,311,2117,598,651,4105,4106,4108,4107,217,218,220,219,609,610,612,421,792,4136,611,1073,1076,1074,1075,2177,2178,2180,1047,231,688,653,1128,248,1070,2320,190,1568,654,2208,1095,335,480,4109,221,1285,613,2568,1408,4144,422,2336,1077,614,543,2576,343,2240,775,317,2592,4110,2118,222,4168,453,237,559,2179,4113,4114,4116,4115,1537,1538,1540,1539,449,450,452,451,657,658,660,659,313,314,316,315,1066,1065,1068,4117,712,661,1053,808,1541,720,816,1101,2063,1176,2368,2181,1136,662,2071,1600,454,318,1110,2182,781,376,4176,736,567,2432,1192,1078,840,238,1159,359,2104,399,4133,591,678,677,2087,4118,1542,349,1102,245,4232,4360,127,1067,233,234,236,235,1098,1100,1097,1099,777,778,780,779,4129,4130,4132,4131,673,674,676,675,2305,2306,2308,2307,241,242,244,243,345,346,348,347,1105,1108,1106,1107,2074,2073,2076,2075,785,786,788,787,2561,2562,2564,191,1125,782,407,2309,2077,246,4134,350,599,2563,4161,4162,4164,4192,4163,705,706,708,707,1162,1164,1161,1163,569,570,572,571,361,362,364,363,1122,1121,1124,790,1165,1320,1123,2089,2090,2092,2091,1169,1172,1170,2136,1200,1664,573,1171,409,410,412,411,801,802,804,803,601,602,604,2078,789,1304,709,365,4240,440,2119,374,1224,423,2310,4165,1174,574,413,2624,1109,603,369,370,372,371,4225,4226,4228,366,2093,1287,1055,655,2688,805,4368,615,1166,710,4256,429,373,605,1232,848,2094,632,4616,806,4384,2565,2152,904,4624,4288,414,2101,223,1126,4640,4166,663,3080,1328,472,2200,455,2125,1189,1248,4227,2097,2098,2100,2099,1186,1185,1188,1187,425,426,428,427,2122,2121,2124,2123,1289,1292,1290,1291,833,834,836,835,617,618,620,619,1082,1081,1084,1083,1298,1297,1300,837,2816,1086,1302,1352,864,2566,2102,1173,606,912,1103,4111,696,4416,1424,2160,1293,4229,1560,1792,319,621,4119,3072,430,2183,2126,1299,2129,2130,2132,2131,1217,1220,1218,4230,838,1219,433,434,436,435,4353,4354,4356,488,2133,1111,239,622,2216,4480,437,1608,1294,461,4152,2134,1543,496,669,1190,1317,679,1079,1221,4135,2328,629,1584,351,1360,438,4355,665,666,668,667,457,458,460,459,4122,4121,4124,4123,2185,2186,2188,2187,625,626,628,627,897,898,900,462,2189,3088,2149,469,1549,247,2224,4357,4125,1127,1144,2190,899,2145,2146,2148,2147,4609,4610,4612,670,1318,783,1085,4611,1113,1116,1114,1115,465,466,468,467,1546,1548,1545,2079,2248,1576,728,928,4184,791,367,3104,1376,901,630,4126,685,711,1118,253,2311,1301,2197,4167,824,2150,1175,902,4358,686,1222,2352,1416,1133,6144,375,2344,1558,4672,3078,470,1167,4141,1547,681,682,684,683,2193,2194,2196,2195,249,250,252,251,1314,1313,1316,415,485,2095,1240,4736,744,1616,960,693,2256,1350,797,2198,4142,2213,1141,2103,2376,4613,807,3136,4200,694,254,2584,1550,717,1071,1315,1553,1556,1554,1555,4137,4138,4140,4139,689,690,692,691,1346,1348,1345,1347,793,794,796,795,3074,3076,3073,575,4149,1440,798,5128,1208,2127,1191,4248,2317,4173,431,1142,607,2272,2214,4864,2567,2600,486,1573,4614,2318,1181,4150,718,813,856,1117,839,1295,4208,725,1472,752,2608,5120,2325,1349,4231,814,4174,439,2135,3200,2245,1197,4181,1680,623,1632,1336,4264,671,1198,1557,2109,1413,1303,463,2573,1135,4182,381,2326,1672,2574,821,2341,726,4376,1182,872,2632,2246,631,1574,1223,4237,5136,2168,1605,4197,741,2384,4272,2110,1205,845,1319,920,382,4238,2191,3077,822,2151,1229,2342,2141,4127,880,4296,1256,742,445,1392,471,2640,5152,1696,2440,687,1325,1800,903,1134,4359,4245,4198,3328,2199,846,1670,4400,3075,2209,2210,2212,2211,2313,2314,2316,2315,481,482,484,483,1130,1132,1129,1131,1570,1569,1572,1571,713,714,716,715,4145,4146,4148,4147,4170,4169,4172,4171,809,810,812,811,1177,1180,1178,1179,2321,2322,2324,2323,721,722,724,723,377,378,380,379,2241,2242,2244,2243,1409,1410,1412,1411,1137,1138,1140,1139,2105,2106,2108,2107,2569,2570,2572,2571,4177,4178,4180,4179,817,818,820,819,2337,2338,2340,2339,4233,4234,4236,4235,1601,1602,1604,1603,841,842,844,843,2577,2578,2580,2579,1194,1196,1193,1195,737,738,740,739,4193,4194,4196,4195,442,441,444,443,1201,1204,1202,1203,2137,2138,2140,2139,1305,1308,1306,1307,4241,4242,4244,4243,2369,2370,2372,2371,849,850,852,851,1666,1668,1665,2696,1264,446,2142,4392,936,5126,2448,853,2656,1310,637,2400,4143,1551,2373,1230,2581,1414,1206,1667,633,634,636,635,2593,2594,2596,1333,487,1808,2595,2153,2154,2156,2155,5122,5124,5121,695,4304,2157,1087,3096,2232,4246,854,2582,1237,4261,1326,1368,504,799,4151,255,4424,5184,2215,909,1559,2374,1309,4632,719,1143,477,2205,2704,1448,2158,2165,638,4175,944,4365,1728,3086,2824,3112,869,6152,1592,4320,4262,1253,4615,1351,4648,1183,1565,2597,4366,478,968,383,2264,910,2464,2319,2327,815,2206,976,2598,2720,870,2166,917,4656,1606,4373,1824,3120,727,1150,493,1357,4183,2437,5248,2221,4293,3085,1384,701,1566,2247,1798,2832,1365,6160,1334,4157,2360,3584,2752,2438,1648,2222,4621,1238,823,2629,1575,4374,3094,1199,4622,1432,4389,1421,918,2496,1254,502,933,4680,1366,4294,3144,1488,743,2111,6176,1358,760,4216,1581,2575,2630,494,4432,2229,2343,1272,4158,702,2333,1624,501,2280,1415,4239,5125,847,2253,1856,2230,4199,992,447,4390,4189,1607,2334,1704,733,1797,4688,1669,1231,4488,3093,6149,1590,934,3152,3109,2392,2693,1119,5376,2583,1381,855,4247,2288,734,829,5123,4361,4362,4364,4363,4257,4258,4260,4259,1226,1225,1228,1227,905,906,908,907,473,474,476,475,1233,1234,1236,1235,865,866,868,867,1321,1322,1324,1323,2201,2202,2204,2203,2433,2434,2436,2435,2161,2162,2164,2163,2625,2626,2628,2627,4369,4370,4372,4371,913,914,916,915,1330,1329,1332,1331,697,698,700,699,4289,4290,4292,4291,1353,1354,1356,1355,1252,1249,1250,1251,489,490,492,491,1794,1793,1796,1795,3081,3082,3084,2254,4744,1213,2143,2375,4190,2848,1430,4496,1688,4704,965,6208,1614,4448,2349,1239,4421,4629,3208,2261,1327,2616,1589,3168,749,2880,1640,966,3083,2217,2218,2220,2219,4153,4154,4156,4155,4617,4618,4620,4619,3089,3090,3092,3091,1564,1561,1562,1563,4385,4386,4388,4387,929,930,932,931,2689,2690,2692,2691,1578,1580,1577,1579,1146,1145,1148,1147,2225,2226,2228,2227,1364,1362,1361,1363,4625,4626,4628,4627,497,498,500,499,2329,2330,2332,2331,729,730,732,731,1586,1585,1588,1587,4185,4186,4188,4187,2249,2250,2252,2251,3105,3106,3108,3107,6145,6146,6148,6147,4417,4418,4420,4419,961,962,964,963,1378,1377,1380,1379,2345,2346,2348,2347,1418,1420,1417,1419,1609,1612,1610,1611,825,826,828,827,2817,2818,2820,1456,4205,5144,4280,2694,4630,2944,1214,830,911,2350,1621,2819,1210,1209,1212,1211,2257,2258,2260,2259,1425,1426,1428,1427,745,746,748,747,4641,4642,4644,4643,4201,4202,4204,4203,2353,2354,2356,2355,3137,3138,3140,3139,4249,4250,4252,4251,753,754,756,755,857,858,860,859,2585,2586,2588,1582,4263,2408,2587,4481,4482,4484,1832,871,4422,6150,2159,639,1480,4253,1335,3216,888,2262,4752,1245,479,4206,2357,1422,4213,3110,1677,750,5134,4872,5160,2456,1613,861,1446,2599,2277,757,2207,1382,4645,2358,3141,2589,4483,2377,2378,2380,2379,1620,1617,1618,3336,2821,4312,919,2381,4512,4367,4375,2167,4254,1504,4646,862,1920,4768,2648,1445,4214,758,3232,1149,1359,2416,1816,3079,2278,5168,2439,1671,1712,6272,4485,4269,2590,5133,2382,1622,1311,4295,2822,2223,4880,877,2389,1207,4408,5632,4800,4486,952,4270,1686,495,1262,4677,5142,2472,1619,2273,2274,2276,2275,4209,4210,4212,4211,4673,4674,4676,4675,1242,1241,1244,1243,1673,1676,1674,1675,5129,5130,5132,1341,1429,703,2631,1638,4544,3344,1567,1736,935,3142,2335,1685,2231,2173,5192,2605,3264,2664,4159,1246,503,2390,3205,925,1269,4623,878,4678,1478,735,4277,4391,1799,4381,1678,2445,4328,1637,4301,1373,3160,4278,2255,1255,6400,1591,2606,2480,4382,885,3087,2405,1400,2712,1744,1656,3360,2672,5141,926,3128,1270,5200,941,5157,1367,4440,2174,1805,4741,3111,2613,2446,1583,4631,2504,4336,967,6168,2406,2453,4302,2351,4191,886,4423,3592,831,4896,3206,1342,2237,6151,2614,1431,1261,4397,1840,3102,5256,984,1760,4309,2637,1615,4664,751,3392,2263,5216,4928,1702,942,2695,5131,4265,4266,4268,4267,5137,5138,5140,5139,2385,2386,2388,2387,1441,1442,1444,1443,3201,3202,3204,3203,873,874,876,875,1337,1338,1340,1339,1476,1473,1474,1475,1633,1636,1634,1635,2601,2602,2604,2603,2169,2170,2172,2171,1260,1257,1258,1259,4737,4738,4740,4739,922,921,924,923,2441,2442,2444,2443,4273,4274,4276,4275,4377,4378,4380,4379,2401,2402,2404,2403,2609,2610,2612,2611,4297,4298,4300,4299,1684,1682,1681,1683,881,882,884,883,5153,5154,5156,5155,3097,3098,3100,3099,2633,2634,2636,2635,1369,1370,1372,1371,2449,2450,2452,2451,4393,4394,4396,4395,937,938,940,939,3329,3330,3332,3331,4865,4866,4868,2454,1423,2512,2728,1383,4742,3117,4992,2638,1814,3334,6656,1477,4398,4867,2233,2234,2236,2235,4305,4306,4308,4307,1697,1698,1700,1699,1801,1804,1802,1512,4456,1733,3600,1598,1374,509,1806,4207,2645,949,5264,2359,973,1397,4310,2646,4405,5158,2469,1000,2840,6184,3095,4504,1438,2279,2736,2701,1390,4647,1464,3176,4325,2296,4255,3118,950,1151,4406,5189,4637,2238,5384,1597,4869,863,3616,2702,759,1864,4429,3143,4215,1701,2383,2528,1803,1265,1266,1268,1267,505,506,508,507,2641,2642,2644,2643,1386,1388,1385,1387,2465,2466,2468,2467,4401,4402,4404,4403,1810,1809,1812,1811,5185,5186,5188,5187,945,946,948,947,4633,4634,4636,4635,1730,1732,1729,1731,2697,2698,2700,2699,1436,1433,1434,1008,6157,2269,1623,4696,3333,5280,2661,510,3456,6192,2470,1435,4321,4322,4324,4323,4425,4426,4428,4427,6153,6154,6156,6155,969,970,972,971,2657,2658,2660,2659,2265,2266,2268,2267,3121,3124,3122,3123,6161,6162,6164,6163,1393,1396,1394,1395,3585,3586,3588,4464,3125,2662,5127,2591,4326,4487,2391,1928,4638,1829,4430,2823,1389,2365,6158,1872,4870,974,4271,1453,3587,2497,2498,2500,2499,2705,2706,2708,2707,1593,1594,1596,2270,6216,1215,4437,2501,2285,1629,1520,2607,1830,6165,1734,4520,2760,2709,879,3101,981,2856,4679,5392,3589,982,5190,2768,4383,927,4279,2864,3149,4221,4653,3224,5312,1639,1447,4712,1343,4438,1679,3184,5253,2710,1479,3648,2502,2366,3158,1888,765,4493,2829,1496,2424,5208,4303,1861,887,6224,2784,1437,4654,2615,1720,3240,4528,997,3126,5135,2888,1630,4453,1813,1462,2286,1398,4760,3207,2407,5408,4720,1645,2447,1848,1687,5176,6181,2639,1247,2726,2725,1936,4222,6166,3590,5159,2397,4661,4494,3150,2293,6280,4552,943,4454,4501,4399,1454,6408,5640,998,1595,4433,4434,4436,4435,1626,1625,1628,1627,3114,3113,3116,2175,3115,2361,2362,2364,2363,1826,1825,1828,1827,5249,5250,5252,5251,4649,4650,4652,4651,4217,4218,4220,4219,977,978,980,979,2281,2282,2284,2283,761,762,764,763,1449,1452,1450,1451,3146,3148,3145,3147,2825,2826,2828,2827,4489,4490,4492,4491,1857,1860,1858,1859,4449,4450,4452,4451,6177,6178,6180,6179,4657,4658,4660,4659,2721,2722,2724,2723,1644,1642,1641,1643,1458,1457,1460,1459,2289,2290,2292,2291,2393,2394,2396,2395,993,994,996,995,5145,5146,5148,5147,3153,3156,3154,3155,4681,4682,4684,4683,4497,4498,4500,4499,1689,1692,1690,1691,5377,5378,5380,1278,5254,2239,766,3173,2830,5379,2833,2834,2836,2835,1481,1484,1482,1483,4281,4282,4284,4283,6209,6210,6212,2455,4285,4662,1709,5150,1646,2294,6182,511,4685,5440,2398,1485,4311,2647,4743,1693,6240,6211,2753,2754,2756,2755,3210,3212,3209,3211,2617,2618,2620,2619,4689,4690,4692,4691,889,890,892,891,2409,2410,2412,2411,1273,1274,1276,1275,4513,4514,4516,2838,4515,1650,1649,1652,1651,3170,3169,3172,1952,4502,3213,3368,4560,4776,3171,1490,1489,1492,1491,3217,3220,3218,3248,1752,5165,1807,3712,1399,2621,4686,3219,2457,2458,2460,2459,1705,1708,1706,5382,951,1654,2837,1926,1707,1921,1922,1924,3352,2757,5648,2413,6288,2488,1391,4693,2422,3272,2471,4407,6213,1494,4694,1271,3222,4517,2622,4888,1694,893,2461,1923,2849,2850,2852,2851,4745,4746,4748,4747,2649,2650,2652,1461,5143,3157,2651,2417,2418,2420,2419,4705,4706,4708,4707,4313,4314,4316,4315,6273,6274,6276,2414,975,4327,1862,894,4784,1815,4749,3335,3103,5224,4344,1653,2703,5166,1510,2853,6416,2663,4286,1375,3214,5664,2758,1703,4750,6304,2477,5191,2421,2653,4431,4576,3280,2896,4317,2680,1486,5381,4709,6664,5504,2854,4518,6432,5173,4710,1821,4639,1718,2952,1599,6672,4439,1776,6336,2462,1405,4871,1735,4413,2271,3174,6688,1831,1493,6214,2711,1984,1455,4318,3376,2520,957,2503,4549,4333,3237,4655,3296,983,6275,5169,5172,5170,5171,5633,5634,5636,5635,4545,4546,4548,4547,4753,4754,4756,4755,3234,3233,3236,3235,5162,5161,5164,2885,1710,958,3134,4808,3350,4757,3400,5149,2912,4904,1768,3221,5637,2654,4816,2960,4912,5197,3151,6159,5272,2744,1741,6464,3472,3341,6277,3608,5232,3840,2367,2669,4758,1463,6167,5696,4550,4414,2478,1749,5206,999,6278,2886,1838,1277,4877,1647,2536,4472,3159,2287,1925,4832,2670,4663,1742,6528,5288,5174,2485,1880,4936,1717,1016,4334,3656,5255,4455,3342,2509,1837,6200,4495,3591,2544,2717,1631,1469,4687,3238,3365,4774,2727,3127,4773,767,3269,6183,1904,5638,4445,2677,5198,4341,989,3632,2399,1406,3408,2486,2510,1822,4223,5163,1714,1713,1716,1715,4409,4410,4412,4411,953,954,956,955,1817,1818,1820,1819,2473,2474,2476,2475,3337,3340,3338,3339,1506,1505,1508,1507,2881,2882,2884,2883,4329,4330,4332,4331,1738,1740,1737,1739,5194,5196,5193,5195,4873,4874,4876,4875,3346,3345,3348,3347,2665,2666,2668,2667,3130,3129,3132,3131,1402,1401,1404,1403,4769,4770,4772,4771,6401,6402,6404,6403,3265,3268,3266,3267,2481,2482,2484,2483,4337,4338,4340,4339,4441,4442,4444,4443,985,986,988,987,2713,2714,2716,2715,5201,5204,5202,5203,6170,6169,6172,6171,2505,2506,2508,2507,1746,1745,1748,1747,1833,1834,1836,1835,1868,1866,1865,1867,2945,2946,2948,4287,5221,2517,4878,4503,3597,2295,1944,1863,6405,6173,3175,4342,3192,2947,2673,2674,2676,2675,4881,4882,4884,4883,1761,1764,1762,1763,6657,6658,6660,4446,2718,3366,1695,2831,4695,990,3133,6659,1841,1844,1842,1843,4801,4802,4804,4803,5258,5260,5257,5259,4665,4666,4668,4667,3161,3164,3162,3163,3594,3596,3593,1005,4886,5261,5416,3624,2776,2976,6232,5296,1845,2839,2415,1495,5760,3424,4669,2949,2678,1655,6174,2733,1765,4885,5400,2759,4805,4461,3166,4536,2301,1487,3349,6215,2872,1750,4470,1869,5320,3223,4519,2950,6406,2734,959,3270,1896,1263,3464,3181,5270,4670,2423,1877,1509,4509,3606,6720,5205,1711,4462,2518,3215,6189,1846,3595,4457,4458,4460,4459,2513,2514,2516,2515,2729,2730,2732,2731,1465,1468,1466,1467,3362,3361,3364,2463,1960,5383,2533,5151,4751,3288,6784,2792,4901,1784,4711,3664,5262,3008,1870,4806,2741,1662,4525,1013,4469,4701,3398,5328,2845,4944,1927,6190,1528,4728,1766,4902,3189,1511,6661,2855,1719,6248,2742,2302,5000,895,3598,2765,1439,4510,3119,3363,2297,2298,2300,2299,5218,5217,5220,5219,3601,3604,3602,3603,1001,1002,1004,1003,6185,6186,6188,6187,5265,5268,5266,5267,4505,4506,4508,4507,4897,4898,4900,4899,2737,2738,2740,2739,3394,3396,3393,3395,4697,4698,4700,4699,2841,2842,2844,2843,4465,4466,4468,4467,2529,2530,2532,2531,1497,1500,1498,1499,3178,3180,3177,3179,1009,1010,1012,1011,3618,3617,3620,3619,1657,1658,1660,2623,6197,4319,5222,3488,1006,2846,1878,4759,7176,3256,5424,4568,3239,6296,4551,1661,6221,1502,5285,2479,3190,5344,2655,4933,6912,1934,5182,5398,5448,4960,2534,3621,6662,1014,3229,6198,5269,1470,4702,2766,2861,5008,1743,2904,5199,3165,4792,2887,5520,3343,6256,2773,5389,1968,5656,3520,1894,5888,4415,4717,2800,7168,1517,4526,3397,6279,2862,6222,2487,1941,4934,1823,4584,3245,6229,5207,1659,2761,2762,2764,2763,5282,5281,5284,5283,6193,6194,6196,6195,1873,1874,1876,4335,3728,2671,1992,1875,6218,6217,6220,6219,4521,4522,4524,4523,5385,5388,5386,5387,1930,1929,1932,1931,4929,4930,4932,4931,2857,2858,2860,2859,3225,3228,3226,3227,1889,1892,1890,1891,1514,1516,1513,1515,2769,2770,2772,2771,2425,2426,2428,2427,5394,5393,5396,5395,4713,4714,4716,4715,3457,3458,3460,3459,5178,5177,5180,5179,3185,3186,3188,3187,6225,6226,6228,6227,5313,5316,5314,5315,4529,4530,4532,4531,1721,1724,1722,1723,2865,2866,2868,2867,1938,1937,1940,1939,4761,4762,4764,4763,4553,4554,4556,4555,6281,6282,6284,4718,3680,3384,6312,2719,3246,4533,6283,4993,4994,4996,1501,3605,3461,5704,3351,2511,1725,5390,4557,991,3183,6230,5639,2429,4592,1933,4765,3720,5286,5413,4775,5175,2869,5317,1839,2774,6424,1525,4725,3230,5680,2920,4447,5456,4534,2679,3622,3271,4558,6285,1726,7184,3653,6245,4565,5645,2789,1518,4343,6320,1767,3253,2893,5223,3367,2968,5240,2430,6286,4995,4721,4722,4724,4723,3649,3650,3652,3651,2889,2890,2892,2891,3242,3244,3241,2870,1893,4766,5414,4879,3277,5181,6175,1757,2928,6344,3304,2790,5672,2493,4824,5024,3440,2519,4887,4463,7200,3744,5472,4997,1958,4726,2735,1471,4781,1007,2000,4807,3373,3848,5214,2951,1847,4349,3182,6407,5397,6293,1942,4920,6246,5271,4998,4782,2894,3718,1871,5318,3243,2785,2786,2788,2787,6241,6242,6244,6243,2490,2489,2492,2491,3249,3252,3250,3251,3353,3356,3354,3355,1953,1956,1954,1955,1524,1522,1521,1523,1754,1756,1753,1755,5209,5212,5210,5211,5642,5644,5641,6448,5512,5229,3312,2494,4471,6440,5654,2984,7174,2901,4566,5263,3358,2685,5643,4561,4562,4564,4563,4777,4778,4780,4779,6289,6290,6292,6291,5410,5409,5412,1912,4511,4581,6191,3599,1758,3278,3462,5336,1989,4840,3254,1526,5712,5056,3381,2535,4789,3856,2743,6352,1773,1957,3135,1853,5446,1976,4893,6294,2902,1015,3285,6309,3374,3416,2552,2847,5237,6199,2303,6472,1751,4903,7232,2957,3607,4790,4350,3357,6680,2767,5646,1503,4813,3191,5167,2525,5411,4345,4346,4348,4347,2897,2898,2900,2899,5649,5652,5650,5651,3714,3716,3713,3715,2681,2682,2684,2683,1850,1849,1852,1851,7170,7172,7169,4671,5536,4894,1781,3496,1885,5304,2686,6223,5287,2016,2992,6413,3776,1854,4527,5238,2917,4703,3640,6368,6310,3301,6663,3399,6696,1774,3231,3613,4582,5669,6414,2526,5277,1895,3016,2431,4814,4909,2958,4952,5213,2863,4935,1782,5391,3024,1279,4821,2918,1943,5568,2965,4848,6704,1663,3654,6421,3872,5445,2775,4910,3198,4535,2541,3405,6231,7296,6341,5293,3432,2749,3614,5776,4719,1021,3846,5728,5432,1935,4767,3413,5294,3382,5653,6205,5509,1886,5399,4559,3696,6669,3286,5231,2871,1407,4477,3623,6422,5768,3247,6670,4917,3480,6437,3469,2966,4822,1990,3302,2550,5278,4968,2981,6728,3414,1879,1022,6342,4727,3536,5670,2791,5319,1902,3406,2808,6264,5701,3629,4837,2542,6480,1759,3320,6206,2750,5301,4941,3672,2549,5415,5016,4478,3463,6287,7173,2895,1527,4918,3904,6247,3040,5325,2495,6438,6237,4976,3655,5352,4838,4541,3752,5488,2781,1959,4567,3845,6736,3717,5792,3279,6536,4783,1949,3638,2982,1534,5421,5896,4999,5230,3167,7424,3429,2903,6295,4942,5766,2782,2877,7171,4785,4786,4788,4787,5442,5444,5441,5443,4889,4890,4892,4891,3274,3273,3276,3275,6409,6410,6412,6411,6305,6306,6308,6307,4577,4578,4580,4579,2953,2954,2956,2955,2521,2522,2524,2523,5226,5228,5225,5227,1770,1772,1769,1771,3281,3282,3284,3283,3369,3370,3372,3371,5666,5665,5668,5667,2913,2914,2916,2915,4809,4810,4812,4811,1882,1881,1884,1883,4905,4906,4908,4907,5273,5276,5274,5275,1985,1986,1988,1987,6417,6418,6420,6419,2961,2962,2964,2963,3378,3377,3380,3379,4817,4818,4820,4819,2745,2746,2748,2747,4473,4474,4476,4475,6337,6338,6340,6339,3300,3297,3298,3299,5505,5506,5508,5507,3401,3402,3404,3403,2537,2538,2540,2539,3842,3841,3844,3843,5233,5234,5236,5235,1777,1778,1780,1779,6201,6202,6204,6203,6665,6666,6668,6667,1017,1018,1020,1019,1897,1900,1898,1899,4913,4914,4916,4915,3612,3609,3610,3611,6433,6434,6436,6435,2977,2978,2980,2979,3194,3193,3196,3195,3626,3628,3625,3627,5697,5698,5700,5699,3412,3410,3409,6792,3261,5360,4542,3411,4937,4938,4940,4939,5290,5292,5289,5291,6673,6674,6676,6675,2545,2546,2548,2547,4833,4834,4836,4835,2777,2778,2780,2779,4538,4537,4540,4539,5401,5404,5402,5403,5297,5300,5298,5299,6233,6234,6236,6235,3634,3633,3636,3635,1948,1945,1946,1947,6465,6466,6468,6467,4945,4946,4948,4947,3009,3010,3012,3011,3426,3425,3428,3427,3466,3468,3465,3467,3657,3660,3658,3659,1905,1906,1908,1907,2873,2874,2876,2875,5762,5764,5761,6238,1910,1965,5032,3478,6544,4949,3736,6752,5406,3013,1901,4733,3662,6496,1966,1775,5647,3287,6469,5326,6677,5510,2008,3375,5302,5763,4729,4730,4732,4731,3258,3257,3260,3259,3473,3474,3476,3637,2797,5429,4583,3688,5904,3014,4791,3504,6253,5183,7192,3475,1530,1529,1532,1531,6689,6690,6692,6691,2793,2794,2796,2795,6249,6250,6252,6251,5322,5321,5324,6328,4950,6678,5333,5422,3262,1950,5464,2878,4600,4895,2959,4351,1909,3669,3630,6311,5005,1991,3880,5655,2919,6470,5405,4815,2687,3528,1727,5239,4573,6301,3383,2936,6800,3293,5544,2527,6254,1855,3470,6261,4734,3725,2798,5040,5824,7182,6920,1974,5323,5001,5002,5004,5003,4569,4570,4572,4571,5329,5330,5332,5331,5417,5418,5420,7208,4965,3661,5688,2909,3494,5349,5447,5279,2805,5661,3430,6693,4574,5064,4479,6360,2967,5006,6560,6415,6423,4911,6302,3552,5072,6694,2910,3968,6816,4966,2005,3493,6262,2806,1887,3197,5013,3407,1023,3864,5702,5920,7216,4823,3719,3760,5246,4589,5453,6533,6317,7181,3670,5480,4797,5662,3359,6343,5419,4961,4962,4964,4963,6297,6298,6300,6299,2801,2802,2804,2803,1961,1962,1964,1963,2905,2906,2908,2907,3668,3665,3666,1998,5894,6928,1783,5461,5430,2925,3255,6456,7680,6848,2024,6534,5744,3000,6318,5334,3734,4919,2543,3310,6725,5671,7190,3667,6529,6530,6532,6531,6721,6722,6724,6723,6257,6258,6260,6259,5009,5010,5012,5011,1972,1969,1970,1971,5426,5425,5428,5427,3290,3289,3292,3291,3721,3724,3722,3723,4793,4794,4796,4795,7177,7178,7180,5295,3389,3477,5528,2751,5517,5014,1903,3686,6592,5350,1973,4598,3615,3784,2983,5029,5462,3733,7240,1789,5584,4839,6207,3294,5454,2551,4856,2973,5677,3317,6671,2926,6726,4590,3526,2783,6325,6439,5368,1997,4798,3847,6429,3726,5720,4597,6376,3685,5511,2032,4943,6349,3421,5952,6326,5088,3303,4543,1917,3639,5703,6430,2933,5800,4829,3448,5893,5765,3792,3704,5327,7189,2974,5686,5030,3318,7248,2989,1519,7205,3415,6488,3853,6789,5215,3631,2006,6679,5477,4951,6384,3015,4830,1951,4925,6350,1911,5309,6239,2934,6471,2021,2879,6944,5526,3390,5784,5061,3479,5710,3309,6445,3888,5335,7304,3032,3808,6357,5423,3663,6712,2799,5685,7264,4845,6976,3750,2990,5736,5062,7179,5348,5345,5346,5347,5449,5450,5452,5451,1993,1994,1996,1995,4585,4586,4588,4587,5890,5889,5892,5891,6313,6314,6316,6315,7185,7186,7188,7187,3489,3490,3492,3491,2921,2922,2924,2923,3385,3386,3388,3387,3524,3521,3522,3523,5660,5657,5658,5659,3681,3684,3682,3683,5025,5026,5028,5027,6785,6786,6788,6787,3308,3305,3306,3307,1785,1786,1788,1787,5242,5241,5244,5243,5674,5676,5673,5675,2970,2969,2972,2971,5460,5458,5457,5459,6321,6322,6324,6323,4593,4594,4596,4595,6425,6426,6428,6427,4825,4826,4828,4827,2001,2002,2004,2003,5682,5681,5684,5683,3732,3730,3729,3731,6345,6346,6348,6347,7201,7202,7204,7203,2929,2930,2932,2931,5057,5058,5060,5059,5474,5473,5476,5475,3417,3418,3420,3419,5514,5516,5513,5515,5705,5708,5706,5707,6441,6442,6444,6443,4921,4922,4924,4923,2985,2986,2988,2987,6913,6914,6916,5552,1790,3471,3431,6790,7040,1975,5310,4926,3862,5007,3525,6446,5717,6915,5306,5305,5308,5307,3849,3852,3850,5678,3560,6504,3781,5928,4967,3646,3422,2557,3854,6255,4735,5576,2997,1967,5431,7312,4984,3021,3445,6358,5341,4575,6453,5518,7206,3048,5773,4846,6552,5709,3486,4957,5542,3438,6695,3512,2022,6373,4853,6303,5478,2998,3199,6454,7237,6685,1981,7432,3645,6917,2911,5015,2807,3912,6477,6263,3749,5600,3851,6353,6354,6356,6355,3745,3746,3748,3747,5521,5522,5524,5523,3313,3314,3316,3315,4841,4842,4844,4843,2553,2554,2556,2555,2017,2018,2020,2019,3434,3436,3433,3435,6449,6450,6452,6451,3858,3857,3860,3859,1913,1916,1914,1915,7233,7234,7236,7235,2993,2994,2996,2995,4849,4850,4852,4851,5716,5713,5714,3056,4958,6016,3671,6744,5541,1918,4854,7328,5245,2558,5455,6512,5912,7175,6374,6535,1999,5767,5808,3976,6686,3877,6478,5718,3437,5407,3920,6918,3022,6319,3501,4973,3263,6485,5303,1533,3677,3568,5048,3878,5782,4591,5358,3782,6568,5715,6681,6682,6684,6683,3484,3481,3482,3483,4953,4954,4956,4955,3778,3780,3777,3779,6473,6474,6476,6475,6369,6370,6372,6371,3017,3018,3020,3019,5338,5337,5340,5339,5769,5772,5770,5771,3641,3642,3644,5437,2927,5525,3029,4799,6727,5734,7440,5663,3030,5832,5031,7238,6431,5781,2975,6327,6269,6701,1982,7360,3687,3495,6760,5342,4599,3391,6486,3727,7301,5021,5365,4974,3527,5574,4831,5895,2023,5774,3936,2813,6541,5733,3544,5469,7256,6351,3909,2935,5351,3485,5687,6702,3768,6576,3045,4981,7183,3678,6501,3861,5496,3510,3446,6808,5840,2013,5752,7456,6768,3693,5022,3896,3735,7224,5366,5037,3295,5463,3984,6270,5901,2007,7207,6709,6542,5679,6600,2991,5063,6502,6549,6447,3502,4982,7688,3046,3643,3441,3444,3442,3443,6481,6482,6484,6483,3674,3673,3676,3675,5537,5538,5540,5539,3874,3873,3876,3875,7297,7298,7300,7299,4969,4970,4972,4971,5433,5434,5436,5435,5572,5569,5570,5571,6697,6698,6700,6699,5729,5732,5730,5731,6265,6266,6268,6267,1977,1980,1978,1979,3025,3026,3028,3027,5356,5353,5354,5355,2809,2810,2812,2811,3497,3500,3498,3499,5018,5017,5020,5019,6537,6538,6540,6539,3905,3908,3906,3907,6497,6498,6500,6499,5780,5778,5777,4927,5779,6705,6706,6708,6707,3692,3690,3689,3691,3506,3505,3508,3507,4977,4978,4980,4979,3041,3042,3044,3043,7193,7194,7196,7195,2010,2009,2012,2011,6729,6730,6732,6731,5465,5466,5468,5467,6545,6546,6548,6547,3737,3740,3738,3739,7425,7426,7428,3326,7302,5438,2814,2030,7427,5033,5034,5036,5035,5897,5900,5898,6333,6710,5527,3757,5357,5936,7198,3694,5080,5856,2559,6733,5711,2014,4847,7488,3533,6359,5798,5038,6791,3741,2040,4000,6550,5519,6608,6824,5479,3800,7213,3855,3447,6734,5910,7430,2999,3702,5573,3974,5608,5829,7696,3439,5694,5470,4605,5902,6741,1535,5045,6455,5069,5493,3542,6742,3319,2029,6565,5096,6936,3742,2941,3509,7191,5534,3023,6375,3910,2942,6832,3863,6797,5486,5560,7272,6392,3701,7214,5046,3558,5247,6334,3423,5693,4959,7712,3751,6798,4855,5960,7239,5797,6479,6624,5899,3529,3532,3530,3531,6329,6330,6332,6331,5793,5794,5796,5795,5361,5362,5364,5363,4601,4602,4604,4603,6737,6738,6740,6739,2937,2938,2940,2939,5482,5484,5481,5483,6561,6562,6564,6563,3321,3322,3324,3323,3698,3697,3700,3699,5906,5905,5908,5907,5041,5042,5044,5043,3538,3537,3540,3539,3969,3970,3972,3971,3753,3756,3754,3755,5532,5529,5530,5104,6365,5719,3534,7429,6757,4606,7552,6566,5531,5826,5828,5825,5827,6793,6794,6796,6795,2026,2025,2028,2027,5065,5066,5068,5067,6753,6754,6756,6755,6361,6362,6364,6363,7217,7220,7218,7219,5689,5690,5692,7221,6758,3869,6687,2037,3766,3647,6487,3824,6024,5925,3453,6919,3783,5485,6461,3879,3541,5968,5070,5549,4032,3503,6366,1791,3005,5311,6597,6381,5725,5616,6703,5926,3031,3758,3006,5830,6856,6805,4975,7197,5077,6952,3816,2038,7685,5078,6864,5023,6960,7245,7320,3789,5735,5543,5439,5775,7280,6806,3511,5575,7744,6598,6462,3797,7254,5984,3047,4861,3886,3325,6925,5592,3695,6520,1919,5957,4983,3973,6880,5533,6711,3790,5816,7336,5093,7222,3928,6984,5726,5909,3765,5558,3064,6382,5494,7303,6503,5741,3885,6543,5944,5783,3679,3517,6735,5343,6822,6821,6032,2815,3952,7686,6493,7246,6389,3037,5039,3454,5550,3870,5094,5691,7681,7682,7684,7683,5489,5492,5490,5491,6593,6594,6596,6595,7210,7209,7212,6271,7211,6801,6802,6804,6803,5722,5721,5724,5723,3762,3761,3764,3763,6457,6458,6460,6459,5922,5921,5924,5923,3865,3866,3868,3867,3001,3002,3004,3003,3554,3553,3556,3555,2033,2034,2036,2035,5073,5074,5076,5075,6377,6378,6380,6379,4857,4858,4860,4859,3786,3788,3785,3787,5545,5548,5546,5547,7242,7244,7241,7243,6921,6922,6924,6923,3450,3449,3452,3451,5953,5956,5954,5955,6817,6818,6820,6819,5740,5738,5737,5739,6385,6386,6388,6387,5554,5553,5556,5555,6489,6490,6492,6491,5089,5090,5092,5091,3033,3034,3036,3035,7249,7252,7250,7251,3794,3793,3796,3795,3881,3882,3884,3883,3916,3914,3913,3915,5785,5788,5786,5787,6929,6930,6932,6931,5577,5580,5578,5579,3809,3812,3810,5374,6335,2039,4862,7269,6926,6551,3992,3911,5805,5742,6390,4607,3811,3889,3892,3890,3891,6849,6850,6852,6851,7306,7308,7305,7307,6713,6714,6716,6715,4985,4986,4988,4987,6505,6506,6508,6507,5369,5370,5372,5371,3513,3516,3514,3515,5746,5745,5748,5747,7266,7265,7268,6494,5581,3743,6743,3038,5789,3053,6934,6048,7309,7464,7267,3049,3050,3052,3051,5586,5585,5588,5587,7313,7316,7314,7344,3893,5848,5903,3543,7808,5495,6717,7315,6017,6018,6020,3703,5047,5750,3813,6933,6022,7448,6853,6509,6584,5487,3535,3798,6518,3917,7368,6567,5590,3007,3944,3311,5367,7318,6718,5790,4989,3925,3557,6557,6019,5801,5804,5802,5803,6553,6554,6556,6555,6945,6946,6948,6947,6745,6746,6748,5557,7253,3759,6747,6513,6514,6516,6515,3545,3548,3546,3547,3057,3058,3060,6510,5071,3894,5958,3059,3705,3706,3708,4990,5911,4008,7431,7199,2031,5749,6799,5606,6949,3832,6759,5471,7310,3918,6854,5799,3710,6573,3061,6517,6749,7376,6992,3975,3576,6776,5582,3814,6950,3559,5917,3767,5814,7048,5695,2943,5872,3487,6558,5501,5831,6367,7270,5927,3054,5589,3926,6807,6080,5551,7472,6616,5053,6599,3709,3550,7333,1983,7392,5079,6981,5806,5054,3982,7230,7446,7496,7008,5864,3062,7317,3518,6750,7056,3791,7247,6840,5837,7568,7437,4016,7704,3942,7936,6463,6765,5559,3565,6574,5845,5095,3989,6982,5934,5373,3871,5743,6632,2046,7255,3707,3921,3922,3924,6383,6021,4040,3923,7330,7329,7332,7331,5810,5809,5812,5811,5913,5914,5916,5915,7433,7436,7434,7435,6569,6570,6572,6571,5049,5050,5052,5051,3978,3977,3980,3979,5602,5601,5604,5603,6977,6978,6980,6979,3937,3940,3938,3939,5834,5836,5833,5835,3562,3564,3561,3563,2041,2042,2044,2043,7442,7441,7444,7443,6761,6762,6764,6763,7226,7225,7228,7227,5498,5497,5500,5499,7361,7364,7362,7363,6577,6578,6580,6579,3769,3772,3770,3771,5081,5082,5084,5083,3986,3985,3988,3987,6809,6810,6812,6811,6601,6602,6604,6603,5842,5841,5844,6766,5838,6581,5976,3549,5813,5112,7752,3773,7438,6605,5933,3039,7687,6640,3981,6813,5727,5565,7334,7461,6823,5843,5929,5930,5932,7223,4863,7365,3887,6000,3573,6773,5085,7728,6495,5502,7504,6582,2047,6606,5918,3774,5931,5964,5962,5961,5963,7041,7042,7044,6613,7693,3566,6391,6040,5959,3815,7271,7288,7043,6769,6770,6772,6771,5857,5860,5858,5859,5937,5940,5938,5939,3572,3570,3569,3941,6814,7462,5791,6927,5086,7229,5101,3805,2015,7720,6872,7072,5941,6935,6511,5591,7520,7045,4006,6774,5751,3519,6829,5861,3055,4048,6855,7262,3895,6397,5583,7445,3571,4001,4004,4002,4003,7690,7692,7689,3990,6968,5846,5965,7319,7046,6830,5055,3919,7366,5992,5359,7560,7277,6519,5973,5605,7702,5807,6614,7311,5942,7691,3802,3804,3801,3803,7257,7260,7258,7259,6609,6610,6612,6611,6825,6826,6828,6827,7458,7457,7460,3960,6559,6056,6629,3806,7384,4037,6888,5880,3574,7760,7104,5966,6837,5758,5109,3821,4005,3901,7494,4024,6941,6023,5624,3063,5862,7285,5607,3799,6951,5815,6838,6398,4991,7694,3551,6861,5535,7215,7459,5561,5564,5562,5563,6393,6394,6396,6395,7697,7700,7698,7699,5097,5098,5100,5099,3898,3897,3900,3899,7490,7492,7489,7491,6833,6834,6836,6835,6937,6938,6940,6939,6625,6626,6628,6627,7274,7276,7273,7275,5593,5596,5594,5595,3818,3820,3817,3819,5105,5106,5108,5107,5753,5754,5756,6719,7584,5102,6942,3829,5974,3933,7352,7335,4064,5757,3902,5598,6575,7286,6751,6030,3822,6630,7717,5110,7325,3943,5566,6862,6957,5839,7000,7261,6983,3830,7439,3327,6869,6064,3991,7616,5990,6896,3711,5613,7493,6958,6583,6037,5919,7341,5755,5969,5970,5972,7824,6767,6088,3069,5971,7714,7713,7716,7715,6857,6858,6860,6859,6026,6025,6028,6027,3930,3929,3932,3931,6953,6954,6956,6955,4033,4034,4036,4035,7321,7324,7322,7323,5985,5988,5986,5987,5610,5612,5609,5611,6865,6866,6868,6867,6521,6522,6524,6523,7553,7554,7556,7555,7281,7282,7284,7283,3825,3826,3828,7776,7480,3983,6815,7342,5597,7701,7557,3934,7447,6607,5821,5087,7279,3455,6525,6029,3827,3065,3066,3068,3067,5817,5820,5818,5819,3945,3948,3946,3947,6961,6962,6964,6963,6034,6033,6036,6035,7745,7746,7748,7747,7338,7340,7337,7816,2045,6965,5935,6870,4038,5621,7326,7016,3927,3070,6775,7718,7367,3950,5822,7749,6885,5614,3807,5863,7349,6989,7463,7064,6526,3575,6966,5989,7373,5853,7024,7400,6886,6589,7536,4007,6615,7840,6054,6831,3997,5567,5103,6096,3582,7469,7944,7047,5943,7278,6038,6990,7814,5967,7339,6985,6986,6988,6987,6881,6882,6884,6883,6586,6585,6588,6587,7345,7348,7346,7347,7449,7452,7450,7451,5620,5618,5617,5619,3996,3993,3994,3995,6049,6052,6050,6051,5850,5852,5849,5851,6993,6994,6996,6995,3953,3954,3956,3955,7810,7812,7809,7408,6590,3958,4013,7080,6997,7454,3949,6781,6008,4014,3823,7695,5854,7374,7558,4056,6085,7350,7811,6777,6778,6780,6779,5946,5945,5948,5947,3578,3577,3580,5622,7477,6631,7952,6839,5869,6053,7231,3579,7370,7369,7372,5949,6072,6998,5111,7381,7470,3998,7512,6648,6943,6399,3957,5847,7053,4039,7703,7453,6863,5599,3775,7287,6621,5877,7592,3903,5981,6782,6112,7088,7872,5950,4022,7371,7049,7050,7052,7051,6617,6618,6620,6619,7465,7466,7468,7013,7736,7397,7495,5870,7327,7709,6622,5991,7112,6527,7054,6959,5878,7120,5375,7014,4053,6039,3935,7061,3071,5759,7750,7968,6871,7294,6637,7501,7528,6845,7710,5117,7467,5866,5868,5865,5867,7377,7378,7380,7379,7009,7010,7012,7011,4009,4010,4012,4011,5978,5977,5980,5979,6081,6082,6084,6083,7057,7058,7060,7059,4020,4017,4018,4019,7474,7473,7476,7475,6841,6842,6844,6843,7396,7393,7394,7395,4041,4042,4044,4043,6633,6634,6636,6635,7938,7937,7940,4046,7942,6031,3831,7509,7478,5982,4072,7792,7382,6967,5503,7719,7343,7576,7565,7062,3951,6086,7398,4021,6646,7939,7497,7498,7500,7499,5873,5874,5876,5875,5113,5114,5116,5115,5993,5996,5994,5995,7708,7705,7706,7077,7510,5975,5118,3837,7632,6887,5998,7502,6904,7725,6638,5855,7416,4045,6846,7768,6645,7559,4080,6991,5623,8000,7136,6591,3965,7751,7848,6877,6055,7941,7813,7375,6045,7734,7078,3567,5630,7263,4054,7525,6999,6878,3999,6973,7707,7073,7074,7076,7075,7290,7289,7292,7291,3833,3834,3836,3835,7722,7724,7721,7723,7508,7506,7505,3959,7357,7507,6641,6642,6644,6643,6873,6874,6876,6875,4049,4050,4052,4051,7730,7729,7732,7731,6044,6041,6042,6043,7105,7106,7108,7107,7522,7521,7524,7523,7562,7564,7561,7563,7753,7756,7754,7755,6001,6002,6004,6003,6969,6970,6972,6971,7354,7353,7356,7355,7569,7570,7572,4069,6006,6061,7574,7832,7109,5997,7758,6062,5871,7383,6104,7471,7733,6893,7784,7110,7600,3838,7571,5626,5625,5628,5627,6889,6890,6892,6891,4065,4066,4068,4067,3961,3964,3962,4023,7358,6046,6974,7055,6005,7765,7726,6087,7976,7015,6783,7624,5823,4015,7479,7032,7389,6623,5951,7566,7821,6894,3963,6057,6058,6060,6070,7757,7005,7590,4070,6901,7526,4029,7063,7648,7006,8064,6101,7589,3966,6902,5983,7293,7503,5119,7960,4047,7815,7856,6059,7764,7761,7762,7766,7455,6094,5879,7021,7351,3581,6120,7096,7830,6639,7406,7763,6897,6898,6900,6899,7001,7002,7004,7003,6068,6065,6066,6067,7386,7385,7388,7387,7817,7820,7818,7819,6089,6090,6092,6091,7585,7586,7588,7485,7573,6847,5999,7782,6069,7711,7880,7079,7829,4030,5885,7390,6647,7069,7413,7022,7622,6879,6093,7943,4071,7822,7587,7017,7018,7020,7019,7620,7617,7618,7619,7481,7482,7484,7483,7777,7780,7778,7779,4025,4028,4026,4027,7404,7401,7402,7403,5881,5882,5884,5883,7066,7065,7068,7067,6097,6098,6100,6099,7828,7826,7825,7781,6128,7517,7399,6013,7735,7029,7544,7888,4061,7800,7070,7414,7085,5615,7511,7949,4055,7727,6102,7111,6047,6007,7030,6117,6975,7827,7025,7026,7028,7027,4058,4057,4060,4059,7513,7514,7516,7515,7081,7082,7084,7083,7945,7948,7946,7486,4078,7575,7405,7984,7128,7904,7759,4062,6895,7846,7086,4088,5886,7567,7527,6071,7958,7621,7656,7877,7742,7518,6653,7950,3583,7093,6063,7117,7541,4077,7144,7582,7534,7608,6118,7094,7295,6077,7741,7007,6903,8008,7845,7947,7841,7842,7844,7843,7409,7410,7412,7411,6649,6650,6652,6651,6113,6114,6116,6115,7530,7532,7529,7531,7954,7953,7956,7955,6009,6012,6010,6011,7089,7090,7092,7091,7580,7577,7578,7152,7767,6014,6654,7579,7874,7876,7873,7875,4074,4073,4076,4075,7113,7114,7116,7115,7737,7738,7740,4085,6095,8072,7973,7533,8016,7118,7597,3839,7359,5629,7773,7664,7974,7878,7023,7125,4086,7126,7071,6078,7783,7591,7487,7823,7623,6119,8032,6909,7640,3967,8005,7031,7581,7864,7141,7774,7957,7606,7542,6109,7789,7992,7831,7391,8080,6103,7087,7598,7142,7739,7537,7540,7538,7539,7770,7769,7772,7771,7970,7969,7972,7971,6073,6076,6074,6075,4081,4082,4084,4083,7121,7122,7124,7123,6905,6906,6908,6907,7593,7596,7594,7595,8001,8004,8002,8003,7788,7786,7785,7787,7602,7601,7604,7603,7137,7138,7140,7139,6106,6105,6108,6107,7833,7836,7834,7835,7625,7628,7626,7627,7033,7034,7036,7035,7794,7793,7796,7795,7417,7418,7420,7419,7634,7633,7636,7422,4087,6910,6126,7853,7790,6655,6110,7629,7837,6136,8096,7635,8065,8066,8068,7896,7951,7543,7095,7798,8070,7535,5631,7638,7415,6125,7838,7037,8067,7849,7852,7850,7851,6122,6121,6124,6123,7858,7857,7860,7605,7859,7961,7962,7964,7119,8006,7038,7959,4079,7797,7654,7519,7847,7630,7965,6133,7862,7743,7920,7549,7879,7975,7637,8128,7599,5887,7101,4031,7127,7854,7102,7912,6134,7963,7097,7098,7100,7099,7650,7649,7652,7651,6129,6130,6132,6131,7882,7884,7881,7883,4089,4090,4092,4091,7546,7545,7548,7547,7129,7130,7132,7885,7131,8012,8010,8009,7607,7893,7143,7982,7421,7791,4094,6015,8069,7886,8024,7861,7160,7981,8011,7977,7978,7980,7775,7613,6911,8048,7133,7550,4095,7966,7979,7890,7889,7892,7891,7905,7908,7906,6135,8088,8007,7907,7985,7988,7986,7987,7609,7612,7610,7611,7145,7146,7148,7147,7641,7644,7642,7643,7801,7802,7804,7839,7134,7149,4063,7989,7639,7799,7909,7631,7894,8013,7103,8040,7407,8021,7653,7855,7990,8104,6127,7928,8014,7806,7157,8071,7672,7910,7655,7863,7039,7583,7150,8022,7805,7646,6079,8078,7158,7614,7887,8112,8038,7661,8085,7967,6142,7803,8017,8018,8020,8136,8019,7153,7154,7156,7155,8074,8073,8076,8075,8033,8036,8034,8035,7658,7660,7657,7659,6137,6138,6140,6139,7865,7868,7866,7867,8082,8081,8084,8083,7668,7666,7665,7645,7869,7135,8077,4093,7983,7669,6143,7870,7662,7911,8037,7901,6111,8102,7615,7151,8144,7991,7667,8097,8100,8098,8099,7898,7900,7897,7899,7994,7993,7996,7995,7914,7916,7913,8086,8015,7915,8026,8025,8028,8056,7902,8133,7670,8027,8129,8130,8132,7917,8101,7997,8120,7159,7895,7647,7925,8029,8160,7998,7918,8039,8131,7921,7922,7924,7926,7423,8087,7807,7165,8079,8030,7551,7923,7161,7162,7164,7163,8041,8044,8042,8043,8092,8089,8090,6141,8134,8023,7166,8046,8091,8049,8050,8052,7903,8051,7674,7673,7676,7671,8103,8093,7678,8054,8109,8045,8110,7919,8152,7675,8105,8106,8108,8094,8053,8135,7871,7999,8118,8149,8031,7167,8107,8116,8113,8114,8115,8137,8138,8140,8139,7929,7930,7932,7931,8145,8146,8148,8142,7927,8168,8047,8117,8147,8161,8162,8164,7933,8141,8176,8061,7663,8163,8057,8060,8058,8150,8095,8055,8165,7934,8119,8111,8059,8121,8124,8122,8166,8125,8062,8143,7677,8126,8123,8154,8153,8156,8155,8170,8169,8172,8167,8157,8151,8174,8158,8184,7679,8171,8177,8178,8180,8173,8179,8181,7935,8182,8185,8063,8186,8183,8188,8187,8175,8127,8190,8191,8159,8189]。
Q1=[0,8,16,32,5,64,6,128,256,24,7,512,40,13,48,14,72,21,80,37,22,136,264,38,96,144,69,272,160,520,288,528,192,544,70,15,320,133,23,134,384,56,39,261,29,88,30,71,262,2048,576,45,640,46,517,104,53,1032,152,77,768,518,54,112,1024,135,78,85,168,86,280,141,1040,101,176,142,31,200,1056,263,149,102,304,4096,296,1030,47,208,150,165,55,328,1088,536,79,269,2056,224,166,519,552,270,560,277,87,1152,197,2064,61,525,278,526,293,584,198,2080,120,336,62,143,1029,103,294,93,592,392,2053,1280,151,648,94,400,608,2112,352,325,533,109,1048,184,534,167,326,2054,157,656,110,117,1038,776,1064,4104,549,216,416,271,279,158,550,672,118,1072,2176,389,173,1037,199,784,4112,312,1536,704,390,174,581,1046,448,1096,63,4128,527,582,181,295,285,232,205,182,2304,286,1045,4101,1104,1061,344,645,535,240,2072,206,95,327,800,2055,4160,301,1160,213,568,1120,832,646,896,2560,302,360,4102,111,1168,214,309,1062,2088,408,551,229,159,310,1093,541,1288,773,333,119,2061,600,1184,2096,368,1031,230,391,4224,542,334,2062,774,175,2120,341,2069,424,583,1296,1094,287,183,125,557,1216,616,342,1157,397,1112,207,2128,4352,558,432,1039,357,664,1312,624,1080,2085,126,2070,1063,565,398,2184,456,4120,358,405,303,2312,1544,1158,189,4103,566,1054,2086,589,1344,215,647,2144,406,464,680,1069,590,1286,4608,1552,2192,597,311,2117,598,421,792,4136,1047,231,688,653,1128,248,1070,2320,190,1568,654,2208,1095,335,480,4109,221,1285,613,2568,1408,4144,422,2336,1077,614,543,2576,343,2240,775,317,2592,4110,2118,222,4168,453,237,559,4117,712,661,1053,808,1541,720,816,1101,2063,1176,2368,2181,1136,662,2071,1600,454,318,1110,2182,781,376,4176,736,567,2432,1192,1078,840,238,1159,359,2104,399,4133,591,678,677,2087,4118,1542,349,1102,245,4232,4360,127,191,1125,782,407,2309,2077,246,4134,350,599,4192,790,1165,1320,2136,1200,1664,573,2078,789,1304,709,365,4240,440,2119,374,1224,423,2310,4165,1174,574,413,2624,1109,366,2093,1287,1055,655,2688,805,4368,615,1166,710,4256,429,373,605,1232,848,2094,632,4616,806,4384,2565,2152,904,4624,4288,414,2101,223,1126,4640,4166,663,3080,1328,472,2200,455,2125,1189,1248,837,2816,1086,1302,1352,864,2566,2102,1173,606,912,1103,4111,696,4416,1424,2160,1293,4229,1560,1792,319,621,4119,3072,430,2183,2126,4230,838,488,2133,1111,239,622,2216,4480,437,1608,1294,461,4152,2134,1543,496,669,1190,1317,679,1079,1221,4135,2328,629,1584,351,1360,438,462,2189,3088,2149,469,1549,247,2224,4357,4125,1127,1144,2190,670,1318,783,1085,2079,2248,1576,728,928,4184,791,367,3104,1376,901,630,4126,685,711,1118,253,2311,1301,2197,4167,824,2150,1175,902,4358,686,1222,2352,1416,1133,6144,375,2344,1558,4672,3078,470,1167,4141,415,485,2095,1240,4736,744,1616,960,693,2256,1350,797,2198,4142,2213,1141,2103,2376,4613,807,3136,4200,694,254,2584,1550,717,1071,575,4149,1440,798,5128,1208,2127,1191,4248,2317,4173,431,1142,607,2272,2214,4864,2567,2600,486,1573,4614,2318,1181,4150,718,813,856,1117,839,1295,4208,725,1472,752,2608,5120,2325,1349,4231,814,4174,439,2135,3200,2245,1197,4181,1680,623,1632,1336,4264,671,1198,1557,2109,1413,1303,463,2573,1135,4182,381,2326,1672,2574,821,2341,726,4376,1182,872,2632,2246,631,1574,1223,4237,5136,2168,1605,4197,741,2384,4272,2110,1205,845,1319,920,382,4238,2191,3077,822,2151,1229,2342,2141,4127,880,4296,1256,742,445,1392,471,2640,5152,1696,2440,687,1325,1800,903,1134,4359,4245,4198,3328,2199,846,1670,4400,2696,1264,446,2142,4392,936,5126,2448,853,2656,1310,637,2400,4143,1551,2373,1230,2581,1414,1206,1333,487,1808,695,4304,2157,1087,3096,2232,4246,854,2582,1237,4261,1326,1368,504,799,4151,255,4424,5184,2215,909,1559,2374,1309,4632,719,1143,477,2205,2704,1448,2158,2165,638,4175,944,4365,1728,3086,2824,3112,869,6152,1592,4320,4262,1253,4615,1351,4648,1183,1565,2597,4366,478,968,383,2264,910,2464,2319,2327,815,2206,976,2598,2720,870,2166,917,4656,1606,4373,1824,3120,727,1150,493,1357,4183,2437,5248,2221,4293,3085,1384,701,1566,2247,1798,2832,1365,6160,1334,4157,2360,3584,2752,2438,1648,2222,4621,1238,823,2629,1575,4374,3094,1199,4622,1432,4389,1421,918,2496,1254,502,933,4680,1366,4294,3144,1488,743,2111,6176,1358,760,4216,1581,2575,2630,494,4432,2229,2343,1272,4158,702,2333,1624,501,2280,1415,4239,5125,847,2253,1856,2230,4199,992,447,4390,4189,1607,2334,1704,733,1797,4688,1669,1231,4488,3093,6149,1590,934,3152,3109,2392,2693,1119,5376,2583,1381,855,4247,2288,734,829,2254,4744,1213,2143,2375,4190,2848,1430,4496,1688,4704,965,6208,1614,4448,2349,1239,4421,4629,3208,2261,1327,2616,1589,3168,749,2880,1640,966,1456,4205,5144,4280,2694,4630,2944,1214,830,911,2350,1621,1582,4263,2408,1832,871,4422,6150,2159,639,1480,4253,1335,3216,888,2262,4752,1245,479,4206,2357,1422,4213,3110,1677,750,5134,4872,5160,2456,1613,861,1446,2599,2277,757,2207,1382,4645,2358,3141,2589,3336,2821,4312,919,2381,4512,4367,4375,2167,4254,1504,4646,862,1920,4768,2648,1445,4214,758,3232,1149,1359,2416,1816,3079,2278,5168,2439,1671,1712,6272,4485,4269,2590,5133,2382,1622,1311,4295,2822,2223,4880,877,2389,1207,4408,5632,4800,4486,952,4270,1686,495,1262,4677,5142,2472,1341,1429,703,2631,1638,4544,3344,1567,1736,935,3142,2335,1685,2231,2173,5192,2605,3264,2664,4159,1246,503,2390,3205,925,1269,4623,878,4678,1478,735,4277,4391,1799,4381,1678,2445,4328,1637,4301,1373,3160,4278,2255,1255,6400,1591,2606,2480,4382,885,3087,2405,1400,2712,1744,1656,3360,2672,5141,926,3128,1270,5200,941,5157,1367,4440,2174,1805,4741,3111,2613,2446,1583,4631,2504,4336,967,6168,2406,2453,4302,2351,4191,886,4423,3592,831,4896,3206,1342,2237,6151,2614,1431,1261,4397,1840,3102,5256,984,1760,4309,2637,1615,4664,751,3392,2263,5216,4928,1702,942,2695,2454,1423,2512,2728,1383,4742,3117,4992,2638,1814,3334,6656,1477,4398,1512,4456,1733,3600,1598,1374,509,1806,4207,2645,949,5264,2359,973,1397,4310,2646,4405,5158,2469,1000,2840,6184,3095,4504,1438,2279,2736,2701,1390,4647,1464,3176,4325,2296,4255,3118,950,1151,4406,5189,4637,2238,5384,1597,4869,863,3616,2702,759,1864,4429,3143,4215,1701,2383,2528,1008,6157,2269,1623,4696,3333,5280,2661,510,3456,6192,2470,4464,3125,2662,5127,2591,4326,4487,2391,1928,4638,1829,4430,2823,1389,2365,6158,1872,4870,974,4271,1453,2270,6216,1215,4437,2501,2285,1629,1520,2607,1830,6165,1734,4520,2760,2709,879,3101,981,2856,4679,5392,3589,982,5190,2768,4383,927,4279,2864,3149,4221,4653,3224,5312,1639,1447,4712,1343,4438,1679,3184,5253,2710,1479,3648,2502,2366,3158,1888,765,4493,2829,1496,2424,5208,4303,1861,887,6224,2784,1437,4654,2615,1720,3240,4528,997,3126,5135,2888,1630,4453,1813,1462,2286,1398,4760,3207,2407,5408,4720,1645,2447,1848,1687,5176,6181,2639,1247,2726,2725,1936,4222,6166,3590,5159,2397,4661,4494,3150,2293,6280,4552,943,4454,4501,4399,1454,6408,5640,998,2175,1278,5254,2239,766,3173,2830,2455,4285,4662,1709,5150,1646,2294,6182,511,4685,5440,2398,1485,4311,2647,4743,1693,6240,2838,1952,4502,3213,3368,4560,4776,3248,1752,5165,1807,3712,1399,2621,4686,5382,951,1654,2837,1926,3352,2757,5648,2413,6288,2488,1391,4693,2422,3272,2471,4407,6213,1494,4694,1271,3222,4517,2622,4888,1694,893,2461,1461,5143,3157,2414,975,4327,1862,894,4784,1815,4749,3335,3103,5224,4344,1653,2703,5166,1510,2853,6416,2663,4286,1375,3214,5664,2758,1703,4750,6304,2477,5191,2421,2653,4431,4576,3280,2896,4317,2680,1486,5381,4709,6664,5504,2854,4518,6432,5173,4710,1821,4639,1718,2952,1599,6672,4439,1776,6336,2462,1405,4871,1735,4413,2271,3174,6688,1831,1493,6214,2711,1984,1455,4318,3376,2520,957,2503,4549,4333,3237,4655,3296,983,2885,1710,958,3134,4808,3350,4757,3400,5149,2912,4904,1768,3221,5637,2654,4816,2960,4912,5197,3151,6159,5272,2744,1741,6464,3472,3341,6277,3608,5232,3840,2367,2669,4758,1463,6167,5696,4550,4414,2478,1749,5206,999,6278,2886,1838,1277,4877,1647,2536,4472,3159,2287,1925,4832,2670,4663,1742,6528,5288,5174,2485,1880,4936,1717,1016,4334,3656,5255,4455,3342,2509,1837,6200,4495,3591,2544,2717,1631,1469,4687,3238,3365,4774,2727,3127,4773,767,3269,6183,1904,5638,4445,2677,5198,4341,989,3632,2399,1406,3408,2486,2510,1822,4223,4287,5221,2517,4878,4503,3597,2295,1944,1863,6405,6173,3175,4342,3192,4446,2718,3366,1695,2831,4695,990,3133,1005,4886,5261,5416,3624,2776,2976,6232,5296,1845,2839,2415,1495,5760,3424,4669,2949,2678,1655,6174,2733,1765,4885,5400,2759,4805,4461,3166,4536,2301,1487,3349,6215,2872,1750,4470,1869,5320,3223,4519,2950,6406,2734,959,3270,1896,1263,3464,3181,5270,4670,2423,1877,1509,4509,3606,6720,5205,1711,4462,2518,3215,6189,1846,2463,1960,5383,2533,5151,4751,3288,6784,2792,4901,1784,4711,3664,5262,3008,1870,4806,2741,1662,4525,1013,4469,4701,3398,5328,2845,4944,1927,6190,1528,4728,1766,4902,3189,1511,6661,2855,1719,6248,2742,2302,5000,895,3598,2765,1439,4510,3119,2623,6197,4319,5222,3488,1006,2846,1878,4759,7176,3256,5424,4568,3239,6296,4551,1661,6221,1502,5285,2479,3190,5344,2655,4933,6912,1934,5182,5398,5448,4960,2534,3621,6662,1014,3229,6198,5269,1470,4702,2766,2861,5008,1743,2904,5199,3165,4792,2887,5520,3343,6256,2773,5389,1968,5656,3520,1894,5888,4415,4717,2800,7168,1517,4526,3397,6279,2862,6222,2487,1941,4934,1823,4584,3245,6229,5207,4335,3728,2671,1992,4718,3680,3384,6312,2719,3246,4533,1501,3605,3461,5704,3351,2511,1725,5390,4557,991,3183,6230,5639,2429,4592,1933,4765,3720,5286,5413,4775,5175,2869,5317,1839,2774,6424,1525,4725,3230,5680,2920,4447,5456,4534,2679,3622,3271,4558,6285,1726,7184,3653,6245,4565,5645,2789,1518,4343,6320,1767,3253,2893,5223,3367,2968,5240,2430,6286,2870,1893,4766,5414,4879,3277,5181,6175,1757,2928,6344,3304,2790,5672,2493,4824,5024,3440,2519,4887,4463,7200,3744,5472,4997,1958,4726,2735,1471,4781,1007,2000,4807,3373,3848,5214,2951,1847,4349,3182,6407,5397,6293,1942,4920,6246,5271,4998,4782,2894,3718,1871,5318,6448,5512,5229,3312,2494,4471,6440,5654,2984,7174,2901,4566,5263,3358,2685,1912,4511,4581,6191,3599,1758,3278,3462,5336,1989,4840,3254,1526,5712,5056,3381,2535,4789,3856,2743,6352,1773,1957,3135,1853,5446,1976,4893,6294,2902,1015,3285,6309,3374,3416,2552,2847,5237,6199,2303,6472,1751,4903,7232,2957,3607,4790,4350,3357,6680,2767,5646,1503,4813,3191,5167,2525,4671,5536,4894,1781,3496,1885,5304,2686,6223,5287,2016,2992,6413,3776,1854,4527,5238,2917,4703,3640,6368,6310,3301,6663,3399,6696,1774,3231,3613,4582,5669,6414,2526,5277,1895,3016,2431,4814,4909,2958,4952,5213,2863,4935,1782,5391,3024,1279,4821,2918,1943,5568,2965,4848,6704,1663,3654,6421,3872,5445,2775,4910,3198,4535,2541,3405,6231,7296,6341,5293,3432,2749,3614,5776,4719,1021,3846,5728,5432,1935,4767,3413,5294,3382,5653,6205,5509,1886,5399,4559,3696,6669,3286,5231,2871,1407,4477,3623,6422,5768,3247,6670,4917,3480,6437,3469,2966,4822,1990,3302,2550,5278,4968,2981,6728,3414,1879,1022,6342,4727,3536,5670,2791,5319,1902,3406,2808,6264,5701,3629,4837,2542,6480,1759,3320,6206,2750,5301,4941,3672,2549,5415,5016,4478,3463,6287,7173,2895,1527,4918,3904,6247,3040,5325,2495,6438,6237,4976,3655,5352,4838,4541,3752,5488,2781,1959,4567,3845,6736,3717,5792,3279,6536,4783,1949,3638,2982,1534,5421,5896,4999,5230,3167,7424,3429,2903,6295,4942,5766,2782,2877,6792,3261,5360,4542,6238,1910,1965,5032,3478,6544,4949,3736,6752,5406,3013,1901,4733,3662,6496,1966,1775,5647,3287,6469,5326,6677,5510,2008,3375,5302,3637,2797,5429,4583,3688,5904,3014,4791,3504,6253,5183,7192,6328,4950,6678,5333,5422,3262,1950,5464,2878,4600,4895,2959,4351,1909,3669,3630,6311,5005,1991,3880,5655,2919,6470,5405,4815,2687,3528,1727,5239,4573,6301,3383,2936,6800,3293,5544,2527,6254,1855,3470,6261,4734,3725,2798,5040,5824,7182,6920,1974,7208,4965,3661,5688,2909,3494,5349,5447,5279,2805,5661,3430,6693,4574,5064,4479,6360,2967,5006,6560,6415,6423,4911,6302,3552,5072,6694,2910,3968,6816,4966,2005,3493,6262,2806,1887,3197,5013,3407,1023,3864,5702,5920,7216,4823,3719,3760,5246,4589,5453,6533,6317,7181,3670,5480,4797,5662,3359,6343,1998,5894,6928,1783,5461,5430,2925,3255,6456,7680,6848,2024,6534,5744,3000,6318,5334,3734,4919,2543,3310,6725,5671,7190,5295,3389,3477,5528,2751,5517,5014,1903,3686,6592,5350,1973,4598,3615,3784,2983,5029,5462,3733,7240,1789,5584,4839,6207,3294,5454,2551,4856,2973,5677,3317,6671,2926,6726,4590,3526,2783,6325,6439,5368,1997,4798,3847,6429,3726,5720,4597,6376,3685,5511,2032,4943,6349,3421,5952,6326,5088,3303,4543,1917,3639,5703,6430,2933,5800,4829,3448,5893,5765,3792,3704,5327,7189,2974,5686,5030,3318,7248,2989,1519,7205,3415,6488,3853,6789,5215,3631,2006,6679,5477,4951,6384,3015,4830,1951,4925,6350,1911,5309,6239,2934,6471,2021,2879,6944,5526,3390,5784,5061,3479,5710,3309,6445,3888,5335,7304,3032,3808,6357,5423,3663,6712,2799,5685,7264,4845,6976,3750,2990,5736,5062,5552,1790,3471,3431,6790,7040,1975,5310,4926,3862,5007,3525,6446,5717,5678,3560,6504,3781,5928,4967,3646,3422,2557,3854,6255,4735,5576,2997,1967,5431,7312,4984,3021,3445,6358,5341,4575,6453,5518,7206,3048,5773,4846,6552,5709,3486,4957,5542,3438,6695,3512,2022,6373,4853,6303,5478,2998,3199,6454,7237,6685,1981,7432,3645,6917,2911,5015,2807,3912,6477,6263,3749,5600,3056,4958,6016,3671,6744,5541,1918,4854,7328,5245,2558,5455,6512,5912,7175,6374,6535,1999,5767,5808,3976,6686,3877,6478,5718,3437,5407,3920,6918,3022,6319,3501,4973,3263,6485,5303,1533,3677,3568,5048,3878,5782,4591,5358,3782,6568,5437,2927,5525,3029,4799,6727,5734,7440,5663,3030,5832,5031,7238,6431,5781,2975,6327,6269,6701,1982,7360,3687,3495,6760,5342,4599,3391,6486,3727,7301,5021,5365,4974,3527,5574,4831,5895,2023,5774,3936,2813,6541,5733,3544,5469,7256,6351,3909,2935,5351,3485,5687,6702,3768,6576,3045,4981,7183,3678,6501,3861,5496,3510,3446,6808,5840,2013,5752,7456,6768,3693,5022,3896,3735,7224,5366,5037,3295,5463,3984,6270,5901,2007,7207,6709,6542,5679,6600,2991,5063,6502,6549,6447,3502,4982,7688,3046,4927,3326,7302,5438,2814,2030,6333,6710,5527,3757,5357,5936,7198,3694,5080,5856,2559,6733,5711,2014,4847,7488,3533,6359,5798,5038,6791,3741,2040,4000,6550,5519,6608,6824,5479,3800,7213,3855,3447,6734,5910,7430,2999,3702,5573,3974,5608,5829,7696,3439,5694,5470,4605,5902,6741,1535,5045,6455,5069,5493,3542,6742,3319,2029,6565,5096,6936,3742,2941,3509,7191,5534,3023,6375,3910,2942,6832,3863,6797,5486,5560,7272,6392,3701,7214,5046,3558,5247,6334,3423,5693,4959,7712,3751,6798,4855,5960,7239,5797,6479,6624,5104,6365,5719,3534,7429,6757,4606,7552,6566,7221,6758,3869,6687,2037,3766,3647,6487,3824,6024,5925,3453,6919,3783,5485,6461,3879,3541,5968,5070,5549,4032,3503,6366,1791,3005,5311,6597,6381,5725,5616,6703,5926,3031,3758,3006,5830,6856,6805,4975,7197,5077,6952,3816,2038,7685,5078,6864,5023,6960,7245,7320,3789,5735,5543,5439,5775,7280,6806,3511,5575,7744,6598,6462,3797,7254,5984,3047,4861,3886,3325,6925,5592,3695,6520,1919,5957,4983,3973,6880,5533,6711,3790,5816,7336,5093,7222,3928,6984,5726,5909,3765,5558,3064,6382,5494,7303,6503,5741,3885,6543,5944,5783,3679,3517,6735,5343,6822,6821,6032,2815,3952,7686,6493,7246,6389,3037,5039,3454,5550,3870,5094,6271,5374,6335,2039,4862,7269,6926,6551,3992,3911,5805,5742,6390,4607,6494,5581,3743,6743,3038,5789,3053,6934,6048,7309,7464,7344,3893,5848,5903,3543,7808,5495,6717,3703,5047,5750,3813,6933,6022,7448,6853,6509,6584,5487,3535,3798,6518,3917,7368,6567,5590,3007,3944,3311,5367,7318,6718,5790,4989,3925,3557,6557,5557,7253,3759,6510,5071,3894,5958,4990,5911,4008,7431,7199,2031,5749,6799,5606,6949,3832,6759,5471,7310,3918,6854,5799,3710,6573,3061,6517,6749,7376,6992,3975,3576,6776,5582,3814,6950,3559,5917,3767,5814,7048,5695,2943,5872,3487,6558,5501,5831,6367,7270,5927,3054,5589,3926,6807,6080,5551,7472,6616,5053,6599,3709,3550,7333,1983,7392,5079,6981,5806,5054,3982,7230,7446,7496,7008,5864,3062,7317,3518,6750,7056,3791,7247,6840,5837,7568,7437,4016,7704,3942,7936,6463,6765,5559,3565,6574,5845,5095,3989,6982,5934,5373,3871,5743,6632,2046,7255,6383,6021,4040,6766,5838,6581,5976,3549,5813,5112,7752,3773,7438,6605,5933,3039,7687,6640,3981,6813,5727,5565,7334,7461,6823,7223,4863,7365,3887,6000,3573,6773,5085,7728,6495,5502,7504,6582,2047,6606,5918,3774,6613,7693,3566,6391,6040,5959,3815,7271,7288,3941,6814,7462,5791,6927,5086,7229,5101,3805,2015,7720,6872,7072,5941,6935,6511,5591,7520,7045,4006,6774,5751,3519,6829,5861,3055,4048,6855,7262,3895,6397,5583,7445,3990,6968,5846,5965,7319,7046,6830,5055,3919,7366,5992,5359,7560,7277,6519,5973,5605,7702,5807,6614,7311,5942,3960,6559,6056,6629,3806,7384,4037,6888,5880,3574,7760,7104,5966,6837,5758,5109,3821,4005,3901,7494,4024,6941,6023,5624,3063,5862,7285,5607,3799,6951,5815,6838,6398,4991,7694,3551,6861,5535,7215,6719,7584,5102,6942,3829,5974,3933,7352,7335,4064,5757,3902,5598,6575,7286,6751,6030,3822,6630,7717,5110,7325,3943,5566,6862,6957,5839,7000,7261,6983,3830,7439,3327,6869,6064,3991,7616,5990,6896,3711,5613,7493,6958,6583,6037,5919,7341,7824,6767,6088,3069,7776,7480,3983,6815,7342,5597,7701,7557,3934,7447,6607,5821,5087,7279,3455,6525,6029,7816,2045,6965,5935,6870,4038,5621,7326,7016,3927,3070,6775,7718,7367,3950,5822,7749,6885,5614,3807,5863,7349,6989,7463,7064,6526,3575,6966,5989,7373,5853,7024,7400,6886,6589,7536,4007,6615,7840,6054,6831,3997,5567,5103,6096,3582,7469,7944,7047,5943,7278,6038,6990,7814,5967,7408,6590,3958,4013,7080,6997,7454,3949,6781,6008,4014,3823,7695,5854,7374,7558,4056,6085,7350,5622,7477,6631,7952,6839,5869,6053,7231,5949,6072,6998,5111,7381,7470,3998,7512,6648,6943,6399,3957,5847,7053,4039,7703,7453,6863,5599,3775,7287,6621,5877,7592,3903,5981,6782,6112,7088,7872,5950,4022,7013,7736,7397,7495,5870,7327,7709,6622,5991,7112,6527,7054,6959,5878,7120,5375,7014,4053,6039,3935,7061,3071,5759,7750,7968,6871,7294,6637,7501,7528,6845,7710,5117,4046,7942,6031,3831,7509,7478,5982,4072,7792,7382,6967,5503,7719,7343,7576,7565,7062,3951,6086,7398,4021,6646,7077,7510,5975,5118,3837,7632,6887,5998,7502,6904,7725,6638,5855,7416,4045,6846,7768,6645,7559,4080,6991,5623,8000,7136,6591,3965,7751,7848,6877,6055,7941,7813,7375,6045,7734,7078,3567,5630,7263,4054,7525,6999,6878,3999,6973,3959,7357,4069,6006,6061,7574,7832,7109,5997,7758,6062,5871,7383,6104,7471,7733,6893,7784,7110,7600,3838,4023,7358,6046,6974,7055,6005,7765,7726,6087,7976,7015,6783,7624,5823,4015,7479,7032,7389,6623,5951,7566,7821,6894,6070,7757,7005,7590,4070,6901,7526,4029,7063,7648,7006,8064,6101,7589,3966,6902,5983,7293,7503,5119,7960,4047,7815,7856,7766,7455,6094,5879,7021,7351,3581,6120,7096,7830,6639,7406,7485,7573,6847,5999,7782,6069,7711,7880,7079,7829,4030,5885,7390,6647,7069,7413,7022,7622,6879,6093,7943,4071,7822,7781,6128,7517,7399,6013,7735,7029,7544,7888,4061,7800,7070,7414,7085,5615,7511,7949,4055,7727,6102,7111,6047,6007,7030,6117,6975,7486,4078,7575,7405,7984,7128,7904,7759,4062,6895,7846,7086,4088,5886,7567,7527,6071,7958,7621,7656,7877,7742,7518,6653,7950,3583,7093,6063,7117,7541,4077,7144,7582,7534,7608,6118,7094,7295,6077,7741,7007,6903,8008,7845,7152,7767,6014,6654,4085,6095,8072,7973,7533,8016,7118,7597,3839,7359,5629,7773,7664,7974,7878,7023,7125,4086,7126,7071,6078,7783,7591,7487,7823,7623,6119,8032,6909,7640,3967,8005,7031,7581,7864,7141,7774,7957,7606,7542,6109,7789,7992,7831,7391,8080,6103,7087,7598,7142,7422,4087,6910,6126,7853,7790,6655,6110,7629,7837,6136,8096,7896,7951,7543,7095,7798,8070,7535,5631,7638,7415,6125,7838,7037,7605,7119,8006,7038,7959,4079,7797,7654,7519,7847,7630,7965,6133,7862,7743,7920,7549,7879,7975,7637,8128,7599,5887,7101,4031,7127,7854,7102,7912,6134,7885,7607,7893,7143,7982,7421,7791,4094,6015,8069,7886,8024,7861,7160,7981,7775,7613,6911,8048,7133,7550,4095,7966,6135,8088,8007,7839,7134,7149,4063,7989,7639,7799,7909,7631,7894,8013,7103,8040,7407,8021,7653,7855,7990,8104,6127,7928,8014,7806,7157,8071,7672,7910,7655,7863,7039,7583,7150,8022,7805,7646,6079,8078,7158,7614,7887,8112,8038,7661,8085,7967,6142,8136,7645,7869,7135,8077,4093,7983,7669,6143,7870,7662,7911,8037,7901,6111,8102,7615,7151,8144,7991,8086,8015,8056,7902,8133,7670,7917,8101,7997,8120,7159,7895,7647,7925,8029,8160,7998,7918,8039,7926,7423,8087,7807,7165,8079,8030,7551,6141,8134,8023,7166,8046,7903,7671,8103,8093,7678,8054,8109,8045,8110,7919,8152,8094,8053,8135,7871,7999,8118,8149,8031,7167,8142,7927,8168,8047,8117,7933,8141,8176,8061,7663,8150,8095,8055,8165,7934,8119,8111,8166,8125,8062,8143,7677,8126,8167,8157,8151,8174,8158,8184,7679,8173,8181,7935,8182,8063,8183,8175,8127,8190,8191,8159,8189]。
Q2=[1,2,4,3,9,10,12,11,17,18,20,19,33,34,36,35,65,66,68,67,129,130,132,131,257,258,260,259,26,25,28,27,513,514,516,515,41,42,44,43,49,50,52,51,74,73,76,75,81,82,84,83,137,138,140,139,97,98,100,99,145,146,148,147,161,162,164,163,265,266,268,267,1026,1028,1025,1027,273,274,276,275,193,194,196,195,57,58,60,59,521,522,524,523,289,290,292,291,529,530,532,531,89,90,92,91,2049,2050,2052,2051,321,322,324,323,105,106,108,107,545,546,548,547,153,154,156,155,385,386,388,387,113,114,116,115,577,578,580,579,169,170,172,171,1041,1042,1044,1043,1033,1034,1036,1035,641,642,644,643,177,178,180,179,281,282,284,283,201,202,204,203,1057,1058,1060,1059,4097,4098,4100,4099,297,298,300,299,769,770,772,771,209,210,212,211,305,306,308,307,1089,1090,1092,1091,537,538,540,539,225,226,228,227,329,330,332,331,2057,2058,2060,2059,2065,2066,2068,2067,337,338,340,339,1153,1154,1156,1155,553,554,556,555,121,122,124,123,393,394,396,395,353,354,356,355,2081,2082,2084,2083,561,562,564,563,1049,1050,1052,1051,585,586,588,587,401,402,404,403,1281,1282,1284,1283,185,186,188,187,2113,2114,2116,2115,593,594,596,595,417,418,420,419,649,650,652,651,4105,4106,4108,4107,217,218,220,219,609,610,612,611,1073,1076,1074,1075,2177,2178,2180,2179,4113,4114,4116,4115,1537,1538,1540,1539,449,450,452,451,657,658,660,659,313,314,316,315,1066,1065,1068,1067,233,234,236,235,1098,1100,1097,1099,777,778,780,779,4129,4130,4132,4131,673,674,676,675,2305,2306,2308,2307,241,242,244,243,345,346,348,347,1105,1108,1106,1107,2074,2073,2076,2075,785,786,788,787,2561,2562,2564,2563,4161,4162,4164,4163,705,706,708,707,1162,1164,1161,1163,569,570,572,571,361,362,364,363,1122,1121,1124,1123,2089,2090,2092,2091,1169,1172,1170,1171,409,410,412,411,801,802,804,803,601,602,604,603,369,370,372,371,4225,4226,4228,4227,2097,2098,2100,2099,1186,1185,1188,1187,425,426,428,427,2122,2121,2124,2123,1289,1292,1290,1291,833,834,836,835,617,618,620,619,1082,1081,1084,1083,1298,1297,1300,1299,2129,2130,2132,2131,1217,1220,1218,1219,433,434,436,435,4353,4354,4356,4355,665,666,668,667,457,458,460,459,4122,4121,4124,4123,2185,2186,2188,2187,625,626,628,627,897,898,900,899,2145,2146,2148,2147,4609,4610,4612,4611,1113,1116,1114,1115,465,466,468,467,1546,1548,1545,1547,681,682,684,683,2193,2194,2196,2195,249,250,252,251,1314,1313,1316,1315,1553,1556,1554,1555,4137,4138,4140,4139,689,690,692,691,1346,1348,1345,1347,793,794,796,795,3074,3076,3073,3075,2209,2210,2212,2211,2313,2314,2316,2315,481,482,484,483,1130,1132,1129,1131,1570,1569,1572,1571,713,714,716,715,4145,4146,4148,4147,4170,4169,4172,4171,809,810,812,811,1177,1180,1178,1179,2321,2322,2324,2323,721,722,724,723,377,378,380,379,2241,2242,2244,2243,1409,1410,1412,1411,1137,1138,1140,1139,2105,2106,2108,2107,2569,2570,2572,2571,4177,4178,4180,4179,817,818,820,819,2337,2338,2340,2339,4233,4234,4236,4235,1601,1602,1604,1603,841,842,844,843,2577,2578,2580,2579,1194,1196,1193,1195,737,738,740,739,4193,4194,4196,4195,442,441,444,443,1201,1204,1202,1203,2137,2138,2140,2139,1305,1308,1306,1307,4241,4242,4244,4243,2369,2370,2372,2371,849,850,852,851,1666,1668,1665,1667,633,634,636,635,2593,2594,2596,2595,2153,2154,2156,2155,5122,5124,5121,5123,4361,4362,4364,4363,4257,4258,4260,4259,1226,1225,1228,1227,905,906,908,907,473,474,476,475,1233,1234,1236,1235,865,866,868,867,1321,1322,1324,1323,2201,2202,2204,2203,2433,2434,2436,2435,2161,2162,2164,2163,2625,2626,2628,2627,4369,4370,4372,4371,913,914,916,915,1330,1329,1332,1331,697,698,700,699,4289,4290,4292,4291,1353,1354,1356,1355,1252,1249,1250,1251,489,490,492,491,1794,1793,1796,1795,3081,3082,3084,3083,2217,2218,2220,2219,4153,4154,4156,4155,4617,4618,4620,4619,3089,3090,3092,3091,1564,1561,1562,1563,4385,4386,4388,4387,929,930,932,931,2689,2690,2692,2691,1578,1580,1577,1579,1146,1145,1148,1147,2225,2226,2228,2227,1364,1362,1361,1363,4625,4626,4628,4627,497,498,500,499,2329,2330,2332,2331,729,730,732,731,1586,1585,1588,1587,4185,4186,4188,4187,2249,2250,2252,2251,3105,3106,3108,3107,6145,6146,6148,6147,4417,4418,4420,4419,961,962,964,963,1378,1377,1380,1379,2345,2346,2348,2347,1418,1420,1417,1419,1609,1612,1610,1611,825,826,828,827,2817,2818,2820,2819,1210,1209,1212,1211,2257,2258,2260,2259,1425,1426,1428,1427,745,746,748,747,4641,4642,4644,4643,4201,4202,4204,4203,2353,2354,2356,2355,3137,3138,3140,3139,4249,4250,4252,4251,753,754,756,755,857,858,860,859,2585,2586,2588,2587,4481,4482,4484,4483,2377,2378,2380,2379,1620,1617,1618,1619,2273,2274,2276,2275,4209,4210,4212,4211,4673,4674,4676,4675,1242,1241,1244,1243,1673,1676,1674,1675,5129,5130,5132,5131,4265,4266,4268,4267,5137,5138,5140,5139,2385,2386,2388,2387,1441,1442,1444,1443,3201,3202,3204,3203,873,874,876,875,1337,1338,1340,1339,1476,1473,1474,1475,1633,1636,1634,1635,2601,2602,2604,2603,2169,2170,2172,2171,1260,1257,1258,1259,4737,4738,4740,4739,922,921,924,923,2441,2442,2444,2443,4273,4274,4276,4275,4377,4378,4380,4379,2401,2402,2404,2403,2609,2610,2612,2611,4297,4298,4300,4299,1684,1682,1681,1683,881,882,884,883,5153,5154,5156,5155,3097,3098,3100,3099,2633,2634,2636,2635,1369,1370,1372,1371,2449,2450,2452,2451,4393,4394,4396,4395,937,938,940,939,3329,3330,3332,3331,4865,4866,4868,4867,2233,2234,2236,2235,4305,4306,4308,4307,1697,1698,1700,1699,1801,1804,1802,1803,1265,1266,1268,1267,505,506,508,507,2641,2642,2644,2643,1386,1388,1385,1387,2465,2466,2468,2467,4401,4402,4404,4403,1810,1809,1812,1811,5185,5186,5188,5187,945,946,948,947,4633,4634,4636,4635,1730,1732,1729,1731,2697,2698,2700,2699,1436,1433,1434,1435,4321,4322,4324,4323,4425,4426,4428,4427,6153,6154,6156,6155,969,970,972,971,2657,2658,2660,2659,2265,2266,2268,2267,3121,3124,3122,3123,6161,6162,6164,6163,1393,1396,1394,1395,3585,3586,3588,3587,2497,2498,2500,2499,2705,2706,2708,2707,1593,1594,1596,1595,4433,4434,4436,4435,1626,1625,1628,1627,3114,3113,3116,3115,2361,2362,2364,2363,1826,1825,1828,1827,5249,5250,5252,5251,4649,4650,4652,4651,4217,4218,4220,4219,977,978,980,979,2281,2282,2284,2283,761,762,764,763,1449,1452,1450,1451,3146,3148,3145,3147,2825,2826,2828,2827,4489,4490,4492,4491,1857,1860,1858,1859,4449,4450,4452,4451,6177,6178,6180,6179,4657,4658,4660,4659,2721,2722,2724,2723,1644,1642,1641,1643,1458,1457,1460,1459,2289,2290,2292,2291,2393,2394,2396,2395,993,994,996,995,5145,5146,5148,5147,3153,3156,3154,3155,4681,4682,4684,4683,4497,4498,4500,4499,1689,1692,1690,1691,5377,5378,5380,5379,2833,2834,2836,2835,1481,1484,1482,1483,4281,4282,4284,4283,6209,6210,6212,6211,2753,2754,2756,2755,3210,3212,3209,3211,2617,2618,2620,2619,4689,4690,4692,4691,889,890,892,891,2409,2410,2412,2411,1273,1274,1276,1275,4513,4514,4516,4515,1650,1649,1652,1651,3170,3169,3172,3171,1490,1489,1492,1491,3217,3220,3218,3219,2457,2458,2460,2459,1705,1708,1706,1707,1921,1922,1924,1923,2849,2850,2852,2851,4745,4746,4748,4747,2649,2650,2652,2651,2417,2418,2420,2419,4705,4706,4708,4707,4313,4314,4316,4315,6273,6274,6276,6275,5169,5172,5170,5171,5633,5634,5636,5635,4545,4546,4548,4547,4753,4754,4756,4755,3234,3233,3236,3235,5162,5161,5164,5163,1714,1713,1716,1715,4409,4410,4412,4411,953,954,956,955,1817,1818,1820,1819,2473,2474,2476,2475,3337,3340,3338,3339,1506,1505,1508,1507,2881,2882,2884,2883,4329,4330,4332,4331,1738,1740,1737,1739,5194,5196,5193,5195,4873,4874,4876,4875,3346,3345,3348,3347,2665,2666,2668,2667,3130,3129,3132,3131,1402,1401,1404,1403,4769,4770,4772,4771,6401,6402,6404,6403,3265,3268,3266,3267,2481,2482,2484,2483,4337,4338,4340,4339,4441,4442,4444,4443,985,986,988,987,2713,2714,2716,2715,5201,5204,5202,5203,6170,6169,6172,6171,2505,2506,2508,2507,1746,1745,1748,1747,1833,1834,1836,1835,1868,1866,1865,1867,2945,2946,2948,2947,2673,2674,2676,2675,4881,4882,4884,4883,1761,1764,1762,1763,6657,6658,6660,6659,1841,1844,1842,1843,4801,4802,4804,4803,5258,5260,5257,5259,4665,4666,4668,4667,3161,3164,3162,3163,3594,3596,3593,3595,4457,4458,4460,4459,2513,2514,2516,2515,2729,2730,2732,2731,1465,1468,1466,1467,3362,3361,3364,3363,2297,2298,2300,2299,5218,5217,5220,5219,3601,3604,3602,3603,1001,1002,1004,1003,6185,6186,6188,6187,5265,5268,5266,5267,4505,4506,4508,4507,4897,4898,4900,4899,2737,2738,2740,2739,3394,3396,3393,3395,4697,4698,4700,4699,2841,2842,2844,2843,4465,4466,4468,4467,2529,2530,2532,2531,1497,1500,1498,1499,3178,3180,3177,3179,1009,1010,1012,1011,3618,3617,3620,3619,1657,1658,1660,1659,2761,2762,2764,2763,5282,5281,5284,5283,6193,6194,6196,6195,1873,1874,1876,1875,6218,6217,6220,6219,4521,4522,4524,4523,5385,5388,5386,5387,1930,1929,1932,1931,4929,4930,4932,4931,2857,2858,2860,2859,3225,3228,3226,3227,1889,1892,1890,1891,1514,1516,1513,1515,2769,2770,2772,2771,2425,2426,2428,2427,5394,5393,5396,5395,4713,4714,4716,4715,3457,3458,3460,3459,5178,5177,5180,5179,3185,3186,3188,3187,6225,6226,6228,6227,5313,5316,5314,5315,4529,4530,4532,4531,1721,1724,1722,1723,2865,2866,2868,2867,1938,1937,1940,1939,4761,4762,4764,4763,4553,4554,4556,4555,6281,6282,6284,6283,4993,4994,4996,4995,4721,4722,4724,4723,3649,3650,3652,3651,2889,2890,2892,2891,3242,3244,3241,3243,2785,2786,2788,2787,6241,6242,6244,6243,2490,2489,2492,2491,3249,3252,3250,3251,3353,3356,3354,3355,1953,1956,1954,1955,1524,1522,1521,1523,1754,1756,1753,1755,5209,5212,5210,5211,5642,5644,5641,5643,4561,4562,4564,4563,4777,4778,4780,4779,6289,6290,6292,6291,5410,5409,5412,5411,4345,4346,4348,4347,2897,2898,2900,2899,5649,5652,5650,5651,3714,3716,3713,3715,2681,2682,2684,2683,1850,1849,1852,1851,7170,7172,7169,7171,4785,4786,4788,4787,5442,5444,5441,5443,4889,4890,4892,4891,3274,3273,3276,3275,6409,6410,6412,6411,6305,6306,6308,6307,4577,4578,4580,4579,2953,2954,2956,2955,2521,2522,2524,2523,5226,5228,5225,5227,1770,1772,1769,1771,3281,3282,3284,3283,3369,3370,3372,3371,5666,5665,5668,5667,2913,2914,2916,2915,4809,4810,4812,4811,1882,1881,1884,1883,4905,4906,4908,4907,5273,5276,5274,5275,1985,1986,1988,1987,6417,6418,6420,6419,2961,2962,2964,2963,3378,3377,3380,3379,4817,4818,4820,4819,2745,2746,2748,2747,4473,4474,4476,4475,6337,6338,6340,6339,3300,3297,3298,3299,5505,5506,5508,5507,3401,3402,3404,3403,2537,2538,2540,2539,3842,3841,3844,3843,5233,5234,5236,5235,1777,1778,1780,1779,6201,6202,6204,6203,6665,6666,6668,6667,1017,1018,1020,1019,1897,1900,1898,1899,4913,4914,4916,4915,3612,3609,3610,3611,6433,6434,6436,6435,2977,2978,2980,2979,3194,3193,3196,3195,3626,3628,3625,3627,5697,5698,5700,5699,3412,3410,3409,3411,4937,4938,4940,4939,5290,5292,5289,5291,6673,6674,6676,6675,2545,2546,2548,2547,4833,4834,4836,4835,2777,2778,2780,2779,4538,4537,4540,4539,5401,5404,5402,5403,5297,5300,5298,5299,6233,6234,6236,6235,3634,3633,3636,3635,1948,1945,1946,1947,6465,6466,6468,6467,4945,4946,4948,4947,3009,3010,3012,3011,3426,3425,3428,3427,3466,3468,3465,3467,3657,3660,3658,3659,1905,1906,1908,1907,2873,2874,2876,2875,5762,5764,5761,5763,4729,4730,4732,4731,3258,3257,3260,3259,3473,3474,3476,3475,1530,1529,1532,1531,6689,6690,6692,6691,2793,2794,2796,2795,6249,6250,6252,6251,5322,5321,5324,5323,5001,5002,5004,5003,4569,4570,4572,4571,5329,5330,5332,5331,5417,5418,5420,5419,4961,4962,4964,4963,6297,6298,6300,6299,2801,2802,2804,2803,1961,1962,1964,1963,2905,2906,2908,2907,3668,3665,3666,3667,6529,6530,6532,6531,6721,6722,6724,6723,6257,6258,6260,6259,5009,5010,5012,5011,1972,1969,1970,1971,5426,5425,5428,5427,3290,3289,3292,3291,3721,3724,3722,3723,4793,4794,4796,4795,7177,7178,7180,7179,5348,5345,5346,5347,5449,5450,5452,5451,1993,1994,1996,1995,4585,4586,4588,4587,5890,5889,5892,5891,6313,6314,6316,6315,7185,7186,7188,7187,3489,3490,3492,3491,2921,2922,2924,2923,3385,3386,3388,3387,3524,3521,3522,3523,5660,5657,5658,5659,3681,3684,3682,3683,5025,5026,5028,5027,6785,6786,6788,6787,3308,3305,3306,3307,1785,1786,1788,1787,5242,5241,5244,5243,5674,5676,5673,5675,2970,2969,2972,2971,5460,5458,5457,5459,6321,6322,6324,6323,4593,4594,4596,4595,6425,6426,6428,6427,4825,4826,4828,4827,2001,2002,2004,2003,5682,5681,5684,5683,3732,3730,3729,3731,6345,6346,6348,6347,7201,7202,7204,7203,2929,2930,2932,2931,5057,5058,5060,5059,5474,5473,5476,5475,3417,3418,3420,3419,5514,5516,5513,5515,5705,5708,5706,5707,6441,6442,6444,6443,4921,4922,4924,4923,2985,2986,2988,2987,6913,6914,6916,6915,5306,5305,5308,5307,3849,3852,3850,3851,6353,6354,6356,6355,3745,3746,3748,3747,5521,5522,5524,5523,3313,3314,3316,3315,4841,4842,4844,4843,2553,2554,2556,2555,2017,2018,2020,2019,3434,3436,3433,3435,6449,6450,6452,6451,3858,3857,3860,3859,1913,1916,1914,1915,7233,7234,7236,7235,2993,2994,2996,2995,4849,4850,4852,4851,5716,5713,5714,5715,6681,6682,6684,6683,3484,3481,3482,3483,4953,4954,4956,4955,3778,3780,3777,3779,6473,6474,6476,6475,6369,6370,6372,6371,3017,3018,3020,3019,5338,5337,5340,5339,5769,5772,5770,5771,3641,3642,3644,3643,3441,3444,3442,3443,6481,6482,6484,6483,3674,3673,3676,3675,5537,5538,5540,5539,3874,3873,3876,3875,7297,7298,7300,7299,4969,4970,4972,4971,5433,5434,5436,5435,5572,5569,5570,5571,6697,6698,6700,6699,5729,5732,5730,5731,6265,6266,6268,6267,1977,1980,1978,1979,3025,3026,3028,3027,5356,5353,5354,5355,2809,2810,2812,2811,3497,3500,3498,3499,5018,5017,5020,5019,6537,6538,6540,6539,3905,3908,3906,3907,6497,6498,6500,6499,5780,5778,5777,5779,6705,6706,6708,6707,3692,3690,3689,3691,3506,3505,3508,3507,4977,4978,4980,4979,3041,3042,3044,3043,7193,7194,7196,7195,2010,2009,2012,2011,6729,6730,6732,6731,5465,5466,5468,5467,6545,6546,6548,6547,3737,3740,3738,3739,7425,7426,7428,7427,5033,5034,5036,5035,5897,5900,5898,5899,3529,3532,3530,3531,6329,6330,6332,6331,5793,5794,5796,5795,5361,5362,5364,5363,4601,4602,4604,4603,6737,6738,6740,6739,2937,2938,2940,2939,5482,5484,5481,5483,6561,6562,6564,6563,3321,3322,3324,3323,3698,3697,3700,3699,5906,5905,5908,5907,5041,5042,5044,5043,3538,3537,3540,3539,3969,3970,3972,3971,3753,3756,3754,3755,5532,5529,5530,5531,5826,5828,5825,5827,6793,6794,6796,6795,2026,2025,2028,2027,5065,5066,5068,5067,6753,6754,6756,6755,6361,6362,6364,6363,7217,7220,7218,7219,5689,5690,5692,5691,7681,7682,7684,7683,5489,5492,5490,5491,6593,6594,6596,6595,7210,7209,7212,7211,6801,6802,6804,6803,5722,5721,5724,5723,3762,3761,3764,3763,6457,6458,6460,6459,5922,5921,5924,5923,3865,3866,3868,3867,3001,3002,3004,3003,3554,3553,3556,3555,2033,2034,2036,2035,5073,5074,5076,5075,6377,6378,6380,6379,4857,4858,4860,4859,3786,3788,3785,3787,5545,5548,5546,5547,7242,7244,7241,7243,6921,6922,6924,6923,3450,3449,3452,3451,5953,5956,5954,5955,6817,6818,6820,6819,5740,5738,5737,5739,6385,6386,6388,6387,5554,5553,5556,5555,6489,6490,6492,6491,5089,5090,5092,5091,3033,3034,3036,3035,7249,7252,7250,7251,3794,3793,3796,3795,3881,3882,3884,3883,3916,3914,3913,3915,5785,5788,5786,5787,6929,6930,6932,6931,5577,5580,5578,5579,3809,3812,3810,3811,3889,3892,3890,3891,6849,6850,6852,6851,7306,7308,7305,7307,6713,6714,6716,6715,4985,4986,4988,4987,6505,6506,6508,6507,5369,5370,5372,5371,3513,3516,3514,3515,5746,5745,5748,5747,7266,7265,7268,7267,3049,3050,3052,3051,5586,5585,5588,5587,7313,7316,7314,7315,6017,6018,6020,6019,5801,5804,5802,5803,6553,6554,6556,6555,6945,6946,6948,6947,6745,6746,6748,6747,6513,6514,6516,6515,3545,3548,3546,3547,3057,3058,3060,3059,3705,3706,3708,3707,3921,3922,3924,3923,7330,7329,7332,7331,5810,5809,5812,5811,5913,5914,5916,5915,7433,7436,7434,7435,6569,6570,6572,6571,5049,5050,5052,5051,3978,3977,3980,3979,5602,5601,5604,5603,6977,6978,6980,6979,3937,3940,3938,3939,5834,5836,5833,5835,3562,3564,3561,3563,2041,2042,2044,2043,7442,7441,7444,7443,6761,6762,6764,6763,7226,7225,7228,7227,5498,5497,5500,5499,7361,7364,7362,7363,6577,6578,6580,6579,3769,3772,3770,3771,5081,5082,5084,5083,3986,3985,3988,3987,6809,6810,6812,6811,6601,6602,6604,6603,5842,5841,5844,5843,5929,5930,5932,5931,5964,5962,5961,5963,7041,7042,7044,7043,6769,6770,6772,6771,5857,5860,5858,5859,5937,5940,5938,5939,3572,3570,3569,3571,4001,4004,4002,4003,7690,7692,7689,7691,3802,3804,3801,3803,7257,7260,7258,7259,6609,6610,6612,6611,6825,6826,6828,6827,7458,7457,7460,7459,5561,5564,5562,5563,6393,6394,6396,6395,7697,7700,7698,7699,5097,5098,5100,5099,3898,3897,3900,3899,7490,7492,7489,7491,6833,6834,6836,6835,6937,6938,6940,6939,6625,6626,6628,6627,7274,7276,7273,7275,5593,5596,5594,5595,3818,3820,3817,3819,5105,5106,5108,5107,5753,5754,5756,5755,5969,5970,5972,5971,7714,7713,7716,7715,6857,6858,6860,6859,6026,6025,6028,6027,3930,3929,3932,3931,6953,6954,6956,6955,4033,4034,4036,4035,7321,7324,7322,7323,5985,5988,5986,5987,5610,5612,5609,5611,6865,6866,6868,6867,6521,6522,6524,6523,7553,7554,7556,7555,7281,7282,7284,7283,3825,3826,3828,3827,3065,3066,3068,3067,5817,5820,5818,5819,3945,3948,3946,3947,6961,6962,6964,6963,6034,6033,6036,6035,7745,7746,7748,7747,7338,7340,7337,7339,6985,6986,6988,6987,6881,6882,6884,6883,6586,6585,6588,6587,7345,7348,7346,7347,7449,7452,7450,7451,5620,5618,5617,5619,3996,3993,3994,3995,6049,6052,6050,6051,5850,5852,5849,5851,6993,6994,6996,6995,3953,3954,3956,3955,7810,7812,7809,7811,6777,6778,6780,6779,5946,5945,5948,5947,3578,3577,3580,3579,7370,7369,7372,7371,7049,7050,7052,7051,6617,6618,6620,6619,7465,7466,7468,7467,5866,5868,5865,5867,7377,7378,7380,7379,7009,7010,7012,7011,4009,4010,4012,4011,5978,5977,5980,5979,6081,6082,6084,6083,7057,7058,7060,7059,4020,4017,4018,4019,7474,7473,7476,7475,6841,6842,6844,6843,7396,7393,7394,7395,4041,4042,4044,4043,6633,6634,6636,6635,7938,7937,7940,7939,7497,7498,7500,7499,5873,5874,5876,5875,5113,5114,5116,5115,5993,5996,5994,5995,7708,7705,7706,7707,7073,7074,7076,7075,7290,7289,7292,7291,3833,3834,3836,3835,7722,7724,7721,7723,7508,7506,7505,7507,6641,6642,6644,6643,6873,6874,6876,6875,4049,4050,4052,4051,7730,7729,7732,7731,6044,6041,6042,6043,7105,7106,7108,7107,7522,7521,7524,7523,7562,7564,7561,7563,7753,7756,7754,7755,6001,6002,6004,6003,6969,6970,6972,6971,7354,7353,7356,7355,7569,7570,7572,7571,5626,5625,5628,5627,6889,6890,6892,6891,4065,4066,4068,4067,3961,3964,3962,3963,6057,6058,6060,6059,7764,7761,7762,7763,6897,6898,6900,6899,7001,7002,7004,7003,6068,6065,6066,6067,7386,7385,7388,7387,7817,7820,7818,7819,6089,6090,6092,6091,7585,7586,7588,7587,7017,7018,7020,7019,7620,7617,7618,7619,7481,7482,7484,7483,7777,7780,7778,7779,4025,4028,4026,4027,7404,7401,7402,7403,5881,5882,5884,5883,7066,7065,7068,7067,6097,6098,6100,6099,7828,7826,7825,7827,7025,7026,7028,7027,4058,4057,4060,4059,7513,7514,7516,7515,7081,7082,7084,7083,7945,7948,7946,7947,7841,7842,7844,7843,7409,7410,7412,7411,6649,6650,6652,6651,6113,6114,6116,6115,7530,7532,7529,7531,7954,7953,7956,7955,6009,6012,6010,6011,7089,7090,7092,7091,7580,7577,7578,7579,7874,7876,7873,7875,4074,4073,4076,4075,7113,7114,7116,7115,7737,7738,7740,7739,7537,7540,7538,7539,7770,7769,7772,7771,7970,7969,7972,7971,6073,6076,6074,6075,4081,4082,4084,4083,7121,7122,7124,7123,6905,6906,6908,6907,7593,7596,7594,7595,8001,8004,8002,8003,7788,7786,7785,7787,7602,7601,7604,7603,7137,7138,7140,7139,6106,6105,6108,6107,7833,7836,7834,7835,7625,7628,7626,7627,7033,7034,7036,7035,7794,7793,7796,7795,7417,7418,7420,7419,7634,7633,7636,7635,8065,8066,8068,8067,7849,7852,7850,7851,6122,6121,6124,6123,7858,7857,7860,7859,7961,7962,7964,7963,7097,7098,7100,7099,7650,7649,7652,7651,6129,6130,6132,6131,7882,7884,7881,7883,4089,4090,4092,4091,7546,7545,7548,7547,7129,7130,7132,7131,8012,8010,8009,8011,7977,7978,7980,7979,7890,7889,7892,7891,7905,7908,7906,7907,7985,7988,7986,7987,7609,7612,7610,7611,7145,7146,7148,7147,7641,7644,7642,7643,7801,7802,7804,7803,8017,8018,8020,8019,7153,7154,7156,7155,8074,8073,8076,8075,8033,8036,8034,8035,7658,7660,7657,7659,6137,6138,6140,6139,7865,7868,7866,7867,8082,8081,8084,8083,7668,7666,7665,7667,8097,8100,8098,8099,7898,7900,7897,7899,7994,7993,7996,7995,7914,7916,7913,7915,8026,8025,8028,8027,8129,8130,8132,8131,7921,7922,7924,7923,7161,7162,7164,7163,8041,8044,8042,8043,8092,8089,8090,8091,8049,8050,8052,8051,7674,7673,7676,7675,8105,8106,8108,8107,8116,8113,8114,8115,8137,8138,8140,8139,7929,7930,7932,7931,8145,8146,8148,8147,8161,8162,8164,8163,8057,8060,8058,8059,8121,8124,8122,8123,8154,8153,8156,8155,8170,8169,8172,8171,8177,8178,8180,8179,8185,8186,8188,8187]。
在一种可实施的方式中,Nmax=8192,B=16,KL=3,KH=13时,对应的Q1、Q2和Q3如下:
Q3=[0,1,2,4,8,16,32,3,5,64,9,6,17,10,18,128,12,33,65,256,34,7,129,66,512,11,20,24,130,19,13,48,14,257,21,258,26,513,80,25,22,514,96,144,28,49,272,160,1026,288,528,192,544,44,81,50,15,320,23,384,76,82,27,36,40,35,37,38,41,42,97,39,145,29,43,68,72,67,69,74,70,73,98,140,30,146,71,2048,161,576,45,640,1025,46,75,132,136,131,133,134,137,138,273,162,193,77,768,268,274,112,1024,135,78,289,194,139,260,264,259,261,262,265,266,60,290,529,524,141,1040,176,2049,142,530,321,31,1056,545,322,2050,263,304,4096,92,47,267,516,520,515,517,518,521,522,385,546,208,386,1088,577,113,79,269,108,578,224,519,270,1041,641,1036,523,52,56,51,53,54,57,58,55,59,84,88,83,85,86,89,90,560,114,156,87,1152,2064,61,1042,525,642,526,177,1057,91,100,104,99,101,102,105,106,769,2080,172,336,62,4097,143,103,178,93,1058,592,770,4098,107,148,152,147,149,150,153,154,1280,151,209,284,94,204,400,608,2112,1089,352,155,164,168,163,165,166,169,170,210,305,300,109,1090,167,225,306,157,2065,656,110,171,276,280,275,277,281,278,282,1038,1153,226,416,271,279,158,337,2066,672,332,540,1072,2176,173,1037,784,4112,338,1536,704,1154,174,2060,283,196,200,195,197,198,201,202,199,2081,448,353,2113,561,203,1028,1032,1030,1033,1034,1029,1027,63,4128,1281,527,556,285,124,205,2304,562,286,354,2082,401,1104,396,1282,593,240,206,95,800,402,4160,301,417,1120,832,588,1035,1537,2177,2114,896,594,418,2560,302,111,1052,1168,4113,188,449,1073,609,159,2178,541,610,657,333,4114,2061,1184,2096,368,652,1031,292,296,291,293,294,297,298,295,299,532,536,531,533,534,537,538,535,539,2052,2056,2051,2053,2057,2054,2058,2055,2059,324,328,323,325,326,329,330,327,331,548,552,547,549,550,553,554,551,4224,450,542,1538,334,555,116,120,115,117,118,121,122,119,2062,175,123,388,392,387,389,390,393,394,391,658,2305,220,1105,1068,395,580,584,579,581,582,585,586,4108,673,4129,583,1296,4161,287,125,557,1216,316,241,2306,1074,397,2561,207,2128,4352,674,558,785,1100,432,1039,236,1312,624,4130,587,1044,1048,1043,1046,1049,1045,1050,1051,780,1122,705,126,242,398,303,189,1169,1054,706,589,2562,1344,786,348,2144,464,4225,801,4162,1069,1164,590,4608,1121,1552,2192,1106,2076,572,1186,802,1047,180,184,179,181,182,185,186,183,187,644,648,643,645,646,649,650,647,651,4100,4104,4099,4101,4105,4102,4106,4103,4107,212,216,211,213,214,217,218,215,219,1060,1064,1059,1061,1066,1062,1065,1063,2097,688,653,1070,4226,369,2320,190,364,1568,654,2208,335,480,4109,221,3074,370,1408,4144,2336,543,1298,412,2576,2240,1185,317,2592,4110,222,2092,4353,237,559,1170,1292,833,834,1053,2129,1217,604,2098,433,720,816,1101,2063,2368,897,1136,1297,4354,1600,318,4609,898,781,1314,428,4176,736,2432,2124,625,238,2130,399,2145,591,434,349,1102,620,1553,1313,127,1067,308,312,307,309,310,313,314,311,315,228,232,227,229,230,233,234,231,235,772,776,771,773,774,777,778,775,779,1092,1096,1091,1093,1098,1094,1097,1095,1099,340,344,339,341,342,345,346,343,347,2068,2072,2067,2069,2074,2073,2070,2071,2075,1156,1160,1155,1157,1162,1158,1161,1159,1163,356,360,355,357,358,361,362,359,363,564,568,563,565,569,566,570,567,191,782,2193,626,2077,1218,571,2084,2088,2083,2085,2086,2089,2090,2087,465,2091,404,408,403,405,406,409,410,407,2146,4610,1346,350,1084,668,1548,4192,1165,460,1200,2188,1664,573,411,596,600,595,597,598,601,602,599,2078,1116,2194,365,4240,4124,689,466,481,574,2209,413,2624,603,1284,1288,1283,1286,1289,1285,1290,366,2093,4145,1287,1055,1570,655,2688,4368,3073,1166,684,1409,4256,429,252,605,1232,848,690,2094,5122,482,2321,4384,1132,4624,2210,1569,4288,414,1291,2116,2120,2115,2117,2122,2118,2121,2119,2123,420,424,419,421,422,425,426,423,427,612,616,611,613,614,617,618,615,223,4640,2241,1554,1328,619,1076,1080,1075,1077,1082,1081,1078,1083,1137,4140,796,2125,1601,1248,721,2816,716,1086,2316,864,2322,4177,4146,606,912,1103,4111,722,4416,1424,2160,1293,817,1792,319,621,1180,812,3072,1345,430,1138,2126,2337,2242,239,622,1410,4480,380,4172,1201,4178,818,1294,461,496,4193,669,1079,660,664,659,661,662,665,666,663,667,452,456,451,453,454,457,458,455,459,4116,4120,4115,4117,4122,4121,4118,4119,4123,2180,2184,2179,2181,2182,2185,2186,2183,2187,1540,1544,1539,1541,1546,1542,1545,1543,2108,1584,351,2338,2577,1360,2572,737,462,2189,3088,1666,1549,4241,2224,1196,4125,738,2190,1308,4194,2578,1602,670,783,2369,1085,849,2079,928,4236,367,3104,2593,1376,1233,2370,4126,685,844,4242,1118,253,686,2352,1133,6144,850,4257,4672,444,1167,4141,2140,1547,676,680,675,678,677,681,682,679,683,1112,1108,1110,1107,1113,1109,1114,1111,1115,4132,4136,4131,4133,4134,4137,4138,4135,4139,244,248,243,245,246,249,250,251,247,2308,2312,2307,2309,2310,2313,2314,2311,415,2095,1202,2315,788,792,787,790,789,793,794,791,795,1128,1124,1125,1123,1130,1126,1129,1127,4736,2433,5121,2594,1616,960,865,2256,1131,708,712,707,709,710,713,714,711,2434,1794,797,4142,715,4164,4168,4163,4165,4170,4166,4169,4167,4171,1172,1176,1171,1174,1177,1173,1178,1175,4369,1330,3136,636,1179,804,808,803,805,806,809,810,807,254,1550,4258,1665,717,2625,1071,575,913,1440,798,4289,811,372,376,374,371,373,377,378,375,2161,379,2564,2568,2563,2565,2566,2569,2570,2127,2317,2156,4173,1564,431,2626,607,2272,1228,4864,2567,1324,4364,866,4370,2318,1181,1234,3089,908,1793,718,813,2689,476,3084,1117,1329,2571,2100,2104,2099,2101,2102,2105,2106,2103,1295,4208,1472,914,2107,836,840,835,837,838,841,842,839,1249,752,2608,5120,2162,2204,814,4174,929,4385,4290,3200,1197,1680,623,1632,671,1198,1362,2109,3090,463,843,4228,4232,4227,4229,4230,4233,4234,4231,4235,1192,1188,1187,1189,1194,1190,1193,1191,2573,2690,1135,381,497,2574,2225,1586,930,4156,961,3105,1182,2817,4386,4625,492,1250,4620,4237,2220,5136,700,2384,1378,4272,2110,1356,845,6145,382,4238,2191,1585,4626,1425,2226,1229,4417,2141,4127,498,3106,880,445,1392,2640,1148,5152,1696,4641,1580,687,4418,1420,2818,1612,1325,6146,1134,1361,3328,846,2257,2332,1195,2132,2136,2131,2133,2134,2137,2138,2135,2139,436,440,435,437,438,442,441,439,443,1300,1304,1302,1299,1305,1301,1306,1303,1307,1220,1224,1219,1221,1226,1222,1225,1223,4400,732,1264,446,962,2142,2252,1426,2448,1377,2656,1310,4188,637,3137,2400,4143,1551,1230,2258,4481,4642,2353,1808,1441,4304,2348,2157,1087,4482,828,753,1326,799,255,3138,5184,909,2273,1309,719,2354,4673,477,2205,1617,2704,2158,4209,638,4175,748,944,4365,1728,4204,3086,4674,1227,628,632,627,629,630,633,634,631,635,4356,4360,4355,4357,4358,4361,4362,4359,4363,2148,2152,2147,2149,2150,2153,2154,2151,2155,468,472,467,469,470,473,474,471,475,900,904,899,901,902,905,906,903,907,1320,1316,1317,1318,1321,1322,1315,1319,4320,754,3201,1183,1565,1618,2274,4366,478,5137,1260,383,1212,4737,910,2464,2319,5132,815,2206,2385,976,2720,1633,2380,4656,4210,2588,1824,3120,4252,1150,1442,493,1357,5248,2221,1676,3085,701,1566,1323,2196,2200,2195,2197,2198,2201,2202,2199,2203,692,696,691,693,694,697,698,695,699,4612,4616,4611,4613,4614,4617,4618,4615,4619,1348,1352,1347,1350,1353,1349,1354,1355,1351,484,488,483,485,489,486,490,487,491,2212,2216,2211,2213,2214,2217,2218,2215,2219,4148,4152,4147,4149,4150,4153,4154,4151,4155,1556,1560,1555,1558,1561,1557,1562,1559,2832,1473,6160,2386,860,4157,3584,5138,2752,3202,1648,2222,4621,4738,1199,4622,4273,1421,5153,2496,2401,4865,2609,1682,1488,2111,6176,1358,4268,1244,1581,881,3329,2575,494,4432,2604,4158,702,2333,876,2172,4239,847,2253,1856,992,4274,1697,447,4189,5154,2610,1436,2334,733,4688,2402,1340,1231,1634,2449,3152,1474,4866,882,2444,1265,1119,3330,2641,5376,924,2288,1810,4305,734,4380,829,2254,1563,1140,1144,1141,1142,1146,1139,1145,1143,1147,1572,1576,1571,1573,1578,1574,1577,1579,1575,2324,2328,2323,2325,2329,2326,2330,2327,2331,3076,3080,3078,3081,3082,3077,3075,1213,2143,4190,4300,2848,4496,2450,4704,6208,1614,5185,1730,4448,2349,2465,1327,4306,4401,1804,3168,749,2880,945,2636,3083,1456,4396,1681,4205,3585,1266,1388,940,2944,1214,830,2642,2466,1809,911,2350,5186,1582,4321,2159,639,4402,3100,1698,4253,3216,6161,1372,4752,1245,479,4206,1422,946,1677,750,2236,5134,2497,1393,3121,508,1613,861,2657,1857,5249,2207,4322,2589,2658,2705,2381,4512,4367,1826,4254,1504,4433,6162,862,1920,4768,3232,1149,4428,1359,2416,2700,4636,1596,3079,724,728,723,725,726,729,730,727,731,4180,4184,4179,4181,4182,4185,4186,4183,4187,2244,2248,2243,2245,2246,2249,2250,2247,2251,820,824,819,821,822,825,826,823,827,2340,2344,2339,2341,2342,2345,2346,2343,2347,1412,1416,1411,1413,1418,1414,1417,1415,1419,740,744,739,741,742,745,746,743,747,4196,4200,4195,4197,4198,4201,4202,4199,4203,1608,1604,1603,1605,1609,1610,1606,1607,1611,1204,1208,1203,1205,1210,1206,1209,1211,5168,1712,977,6272,2498,4269,2590,3586,5133,2382,972,1311,2223,1729,4880,2706,4434,877,1207,4244,4248,4243,4245,4246,4249,4250,4247,4251,2580,2584,2579,2581,2582,2585,2586,2583,2587,852,856,851,853,854,857,858,855,859,2372,2376,2371,2373,2374,2377,2378,2375,2379,1240,1236,1235,1237,1242,1241,1238,1239,1243,4260,4264,4259,4261,4262,4265,4266,4263,4267,1668,1672,1670,1667,1673,1674,1669,1675,1671,2596,2600,2595,2597,2598,2601,2602,2599,2603,868,872,867,869,870,873,874,871,875,1336,1332,1333,1331,1337,1334,1338,1335,1339,2164,2168,2163,2165,2166,2169,2170,2167,2171,916,920,915,917,922,918,921,919,923,4372,4376,4371,4373,4377,4374,4378,4375,5632,4800,5250,2268,4270,495,1262,3153,1644,3116,1341,6156,4379,5124,5128,5126,5129,5130,5125,5123,1825,703,2721,6177,4544,3344,1567,4449,6209,2335,978,4657,2173,2605,3264,4159,1246,2364,1458,925,2289,1394,5377,4623,878,4652,735,3122,4381,1678,2445,4220,4301,1373,2255,993,6400,2722,2606,4658,2833,3148,2480,1452,4382,3087,994,2284,1744,4450,3360,2672,6178,926,764,2828,4497,5200,941,3170,2753,1628,4492,2174,1805,2290,1457,5378,2446,1921,4689,1583,4336,1484,4302,2351,4191,831,4896,1342,4498,2237,3217,1261,4397,1840,3102,4513,1650,1760,2754,1490,2637,1615,751,3392,5216,2834,4928,942,2396,1858,4684,5131,1423,5633,2512,6273,2849,6210,3117,1692,4992,3212,2638,4690,4514,6656,4398,3169,3600,3154,1598,1374,509,1806,4207,1922,5148,2620,1649,3234,5264,973,1489,1708,2850,4284,892,4545,5169,1438,4705,2736,2701,1390,4255,1868,3118,6274,2417,1151,1506,4637,2238,2412,1597,863,4706,3616,2702,4753,4429,1714,2383,2528,1008,6157,2269,2418,5280,1276,510,3456,6192,4464,4748,5127,2436,2440,2435,2437,2438,2441,2442,2439,2443,1252,1256,1253,1251,1254,1257,1258,1259,1255,4292,4296,4291,4293,4294,4297,4298,4295,4299,2628,2632,2627,2629,2630,2633,2634,2631,2635,4388,4392,4387,4389,4390,4393,4394,4391,4395,1364,1368,1365,1366,1369,1363,1370,1371,1367,932,936,931,933,934,937,938,935,939,3092,3096,3091,3094,3097,3093,3098,3099,3095,2228,2232,2227,2229,2230,2233,2234,2231,2235,1796,1800,1801,1798,1795,1797,1802,1799,1803,500,504,499,502,501,505,506,503,507,4628,4632,4627,4629,4630,4633,4634,4631,4635,2692,2696,2691,2693,2694,2697,2698,2695,2699,6148,6152,6147,6149,6153,6150,6154,6151,6155,4420,4424,4419,4421,4422,4425,4426,4423,4427,964,968,963,965,966,969,970,967,971,1380,1384,1379,1381,1386,1382,1385,1387,1383,1588,1592,1587,1590,1589,1593,1594,1591,2591,3346,2460,4546,4638,5634,3233,4430,1389,2365,6158,1872,974,4271,1453,2270,4754,1713,1215,6401,2285,1629,1520,4316,2607,3218,3340,2881,5201,2882,5164,879,3101,4769,1505,3265,2652,5392,2481,2768,4383,927,2864,3149,4221,4653,5312,1746,2945,1343,1679,4412,3184,1820,4337,1761,3345,6402,3648,1740,5170,2366,1888,765,4493,6657,2946,2829,956,3362,2476,4303,6224,2784,1437,4770,4654,4881,5196,4528,5135,1630,2673,2286,4332,5408,4720,1645,2447,4876,2639,1247,5218,4801,2482,1936,4222,4338,2397,4494,3150,1745,943,2668,3601,4399,1454,3361,1841,1595,2260,2264,2259,2261,2262,2265,2266,2263,2267,3108,3112,3107,3109,3114,3110,3113,3111,2175,3115,1428,1432,1430,1427,1433,1434,1429,1431,1435,2356,2360,2355,2357,2358,2361,2362,2359,2363,4644,4648,4643,4645,4646,4649,4650,4647,4651,1620,1624,1621,1626,1622,1619,1625,1627,1623,2820,2824,2819,2821,2822,2825,2826,2823,2827,4212,4216,4211,4213,4214,4217,4218,4215,4219,2276,2280,2275,2277,2278,2281,2282,2279,2283,756,760,755,757,758,761,762,759,763,3140,3144,3139,3141,3146,3142,3145,3143,3147,1448,1444,1446,1445,1449,1443,1450,1451,1447,4484,4488,4483,4485,4486,4489,4490,4487,4491,2388,2392,2387,2389,2390,2393,2394,2391,2395,4676,4680,4675,4677,4678,4681,4682,4679,4683,1636,1640,1635,1638,1637,1642,1641,1643,1639,1684,1688,1686,1685,1689,1683,1690,1691,1687,5140,5144,5139,5142,5145,5141,5146,5147,1278,2239,766,2830,4285,2674,1709,5265,3266,5150,2513,1646,4802,511,4685,6658,3394,5440,2398,1485,4882,3132,1404,2716,1693,4444,3596,6240,1952,3213,4560,2508,4897,988,3248,5165,1807,3712,5260,2621,4686,3164,5217,5648,2413,6288,5202,1391,6172,2737,1468,4668,5282,1836,2514,1873,2529,2622,1694,4898,893,2461,5143,4276,4280,4275,4277,4278,4281,4282,4279,4283,1476,1480,1475,1478,1481,1477,1482,1479,1483,3204,3208,3203,3205,3210,3206,3209,3207,3211,2404,2408,2403,2405,2406,2409,2410,2407,2411,2612,2616,2611,2613,2617,2614,2618,2615,2619,884,888,883,885,886,889,890,887,891,1272,1268,1269,1270,1267,1273,1274,1275,1271,4740,4744,4739,4741,4742,4745,4746,4743,4747,2452,2456,2451,2453,2454,2457,2458,2455,2459,1704,1700,1699,1705,1702,1701,1706,1707,2414,975,6193,894,4784,4749,3103,3618,2703,5166,1762,4465,6416,1842,4286,1375,3214,4460,2732,3457,5664,1703,5156,5160,5155,5157,5162,5158,5161,5159,4750,1009,6304,2477,1874,2300,2653,4431,4576,3280,2896,2738,4317,7170,1486,4466,2530,5504,1889,1004,6432,3180,1821,4639,5394,4508,1599,6672,1776,3617,6336,5281,2462,1405,4413,2271,6688,1010,3602,1984,1455,4318,3376,957,3185,6188,2844,4333,3649,4655,5266,3296,2769,5388,1710,4929,958,2764,3134,4930,5149,2912,6225,5313,1938,1660,4700,6194,2654,4529,1500,4816,2960,4912,5197,3151,6159,2770,1741,6464,3472,1516,4993,3341,5232,2865,1932,3840,2367,5393,2669,3228,2860,5696,3393,4414,2478,3186,1838,4994,1277,4877,1647,5410,4524,2287,4832,2670,1742,3458,6528,2428,6220,4721,4334,3249,6226,2866,1953,3342,2509,1837,4495,2544,6241,2717,1631,1469,4687,4530,767,1904,1724,4445,5198,989,3632,2399,1406,3408,4716,5649,2785,5409,2510,1822,4223,5163,4308,4312,4307,4309,4310,4313,4314,4311,4315,2644,2648,2643,2645,2646,2649,2650,2647,2651,948,952,947,949,950,953,954,951,955,3332,3336,3331,3334,3337,3333,3338,3335,3339,4404,4408,4403,4405,4406,4409,4410,4407,4411,2468,2472,2467,2469,2470,2473,2474,2471,2475,1816,1812,1811,1814,1817,1818,1813,1815,1819,4868,4872,4867,4869,4870,4873,4874,4871,4875,4324,4328,4323,4325,4326,4329,4330,4327,4331,1732,1736,1733,1731,1738,1734,1737,1739,1735,5188,5192,5187,5189,5194,5190,5193,5191,5195,2660,2664,2659,2661,2662,2665,2666,2663,2667,1396,1400,1397,1395,1402,1401,1398,1399,1403,1832,1828,1827,1829,1830,1833,1834,1831,1835,3124,3128,3123,3125,3130,3129,3126,3131,3127,4436,4440,4435,4437,4438,4441,4442,4439,4443,2708,2712,2707,2709,2710,2713,2714,2711,2715,980,984,979,981,982,985,986,983,987,2500,2504,2499,2501,2502,2505,2506,2503,2507,6164,6168,6163,6165,6170,6169,6166,6167,6171,5252,5256,5251,5253,5258,5254,5257,5255,5259,3588,3592,3587,3589,3594,3590,3593,3591,4287,3714,4878,3597,6289,4722,3244,6173,5314,1890,4561,2786,3356,6242,1522,5442,3650,4446,2718,1695,5180,2831,990,4764,3133,5644,2897,1005,1937,5261,4556,2976,5296,6284,2415,5760,3424,4669,3281,6174,2733,5212,2892,6290,4461,3166,2301,1487,4785,1869,2734,1521,4562,959,1263,3181,4577,4670,2898,6305,4509,6720,2492,1711,1756,4462,3215,6189,3595,4452,4456,4451,4453,4454,4457,4458,4455,4459,4660,4664,4659,4661,4665,4662,4666,4663,4667,2724,2728,2723,2726,2725,2729,2730,2727,2731,3160,3156,3158,3155,3161,3157,3162,3159,3163,996,1000,995,997,998,1001,1002,999,1003,6180,6184,6179,6181,6182,6185,6186,6183,6187,1460,1464,1459,1462,1465,1461,1466,1463,1467,2292,2296,2291,2293,2294,2297,2298,2299,2295,1860,1864,1861,1859,1866,1862,1865,1867,1863,4500,4504,4499,4501,4502,4505,4506,4503,4507,2836,2840,2835,2838,2837,2841,2842,2839,2463,5151,3250,2843,4692,4696,4691,4693,4694,4697,4698,4695,4699,1656,1652,1651,1657,1654,1653,1658,1655,5666,4751,6784,7169,3664,5262,3008,4780,1870,5505,2913,1662,4525,1985,4348,3842,4701,5328,2845,4944,4786,6190,4578,6417,1954,5228,3378,1777,2684,2302,895,3598,6306,3713,5665,2765,1439,4510,3119,2623,2961,4319,3488,1006,2846,6337,5650,5424,5233,1661,4892,6221,3612,1502,2479,5697,1986,5344,2655,4817,1852,3276,6912,1934,4812,5182,3372,6412,2914,1772,4960,6418,3229,3282,2956,1470,4702,3841,2766,2861,5008,1743,2524,5199,4818,3165,3377,5520,3343,6256,5389,1968,4913,3520,2962,5888,4415,4717,3297,2800,5276,4908,7168,5441,1517,4526,1778,5234,2862,6222,2977,6433,6338,1823,3245,1659,3176,3172,3173,3171,3178,3174,3177,3175,3179,2756,2760,2755,2757,2758,2761,2762,2759,2763,5380,5384,5379,5382,5385,5381,5386,5383,5387,6212,6216,6211,6213,6218,6214,6217,6215,6219,1492,1496,1491,1494,1497,1493,1498,1499,1495,4516,4520,4515,4517,4518,4521,4522,4519,4523,3220,3224,3219,3222,3225,3221,3226,3223,3227,2852,2856,2851,2853,2854,2857,2858,2855,2859,1928,1924,1926,1923,1930,1929,1925,1927,1931,2420,2424,2422,2419,2421,2425,2426,2423,2427,4708,4712,4707,4709,4710,4713,4714,4711,4715,5172,5176,5171,5173,5178,5177,5174,5179,4335,3728,2671,4718,3680,5506,2719,3246,3410,4476,1501,5297,1900,4914,2511,1725,5390,4557,991,3183,2429,4592,1933,4765,2545,3634,2978,5175,1512,1508,1510,1507,1514,1513,1509,1511,1515,1720,1716,1715,1718,1721,1717,1722,1719,1723,4756,4760,4755,4757,4758,4761,4762,4759,4763,4548,4552,4547,4549,4550,4553,4554,4551,4555,2884,2888,2883,2885,2886,2889,2890,2887,2891,6276,6280,6275,6277,6278,6281,6282,6279,6283,3240,3236,3235,3237,3242,3238,3241,3239,6204,1839,3009,3230,5680,4447,6434,6673,5456,2540,1884,3298,6668,4833,4558,6285,1726,7184,2748,1948,5762,5645,1518,1020,3426,6320,5292,3404,2893,4834,1905,2430,6286,5404,3633,6674,5698,4766,3473,4879,3277,6465,5181,4945,6175,2546,1757,2928,2493,5024,3440,4463,3196,7200,3744,6689,5472,5329,3628,2735,6466,1471,4781,1007,4940,3468,2000,3660,3373,5214,4349,3182,3409,4782,2894,1871,3243,5636,5640,5635,5637,5642,5638,5641,5639,6448,5229,2780,3312,2494,3010,4946,3474,4540,3425,5263,3358,6236,2685,5643,2484,2488,2483,2485,2486,2490,2489,2487,2491,3348,3352,3350,3347,3353,3349,3354,3351,3355,5208,5204,5206,5203,5209,5205,5210,5207,5211,4772,4776,4771,4774,4773,4777,4778,4775,4779,4340,4344,4339,4341,4342,4345,4346,4347,4343,3268,3272,3267,3269,3274,3270,3273,3271,4511,6191,3599,1758,5298,3278,6529,6690,5712,1906,5056,4961,3856,3489,6352,1773,3135,6530,5890,1853,2876,4893,2801,3374,2847,2303,5426,7232,2957,4732,4350,3357,2767,5646,5761,1503,4813,6721,5167,2525,4671,5009,3665,5536,4894,6257,1885,2686,6223,2796,2016,2992,6413,3776,6252,1854,5660,4527,6722,3275,1752,1748,1749,1747,1754,1750,1753,1755,1751,1848,1844,1843,1850,1845,1846,1849,1851,1847,2676,2680,2675,2677,2678,2681,2682,2679,2683,6404,6408,6403,6405,6406,6409,6410,6407,6411,4884,4888,4883,4886,4885,4889,4890,4887,4891,2516,2520,2515,2517,2518,2521,2522,2519,2523,3368,3364,3365,3366,3369,3370,3363,3367,1532,4703,6368,5324,5420,2802,1774,4962,3231,3613,3666,6414,2526,5277,5330,7185,5004,3308,5889,2431,4814,4909,3260,6785,2958,4572,1969,7180,5213,2863,5425,5391,3024,1279,5568,5010,3681,5345,4848,6704,6258,1663,3872,6300,4910,3198,3490,2541,3405,5025,1964,7296,3724,5293,2749,3614,5776,4719,1021,3371,2948,2952,2947,2949,2950,2953,2954,2951,2955,1764,1768,1763,1765,1770,1766,1769,1767,1771,5224,5220,5221,5219,5226,5222,5225,5223,5227,4804,4808,4803,4805,4806,4809,4810,4807,4811,5268,5272,5267,5270,5273,5269,5274,5271,5275,4900,4904,4899,4901,4902,4905,4906,4903,4907,4468,4472,4470,4467,4469,4473,4474,4471,4475,2740,2744,2739,2741,2742,2745,2746,2743,2747,6660,6664,6659,6661,6662,6665,6666,6663,6667,3396,3400,3395,3398,3401,3397,3402,3403,3399,2532,2536,2531,2533,2537,2534,2538,2535,2539,1012,1016,1011,1013,1014,1017,1018,1015,1019,1876,1880,1877,1882,1878,1881,1875,1883,5728,1935,4767,3521,5294,5458,2908,6205,1886,7186,2001,4559,3696,6669,6786,5231,1407,4477,4593,3247,6670,6321,5682,5026,3469,5057,7201,1970,5278,6913,1879,3604,3608,3603,3606,3609,3605,3610,3607,1022,4588,3730,5346,3536,1902,3406,6316,4796,3292,3629,2929,2542,6480,5474,1759,6206,2750,5452,4941,2924,4478,6287,5681,2895,3904,5521,3040,6322,5325,3745,2495,6237,1996,4594,7202,4976,3484,4541,5488,2781,2002,6736,5244,5792,3388,3279,5676,4783,1949,3682,2017,5516,3522,6914,5708,2930,1534,5421,5230,3313,3167,5457,7424,2972,4942,3858,6353,2782,6428,2877,1788,3611,6196,6200,6195,6197,6198,6201,6202,6199,6203,4932,4936,4931,4933,4934,4937,4938,4935,4939,3188,3192,3189,3190,3194,3187,3193,3191,3195,5288,5284,5283,5285,5290,5286,5289,5287,5291,1892,1896,1891,1897,1894,1893,1898,1895,1899,3620,3624,3619,3621,3626,3622,3625,3627,3623,2772,2776,2771,2773,2774,2777,2778,2775,2779,6228,6232,6227,6229,6230,6233,6234,6231,6235,4532,4536,4531,4533,4534,4538,4537,4535,4539,5396,5400,5398,5395,5401,5397,5402,5399,5403,1944,1940,1939,1941,1945,1942,1946,1943,1947,2868,2872,2867,2869,2870,2873,2874,2871,2875,5316,5320,5315,5317,5322,5318,5321,5319,3261,4828,5360,4542,5058,6238,6348,5522,1965,6544,5473,6752,5406,1901,4733,3662,7233,3778,6496,1966,1775,5647,5326,3375,6354,6449,3852,2797,2993,5904,5537,3504,6444,3729,6253,5183,3314,4924,4849,3436,2988,5422,3262,1950,2878,4895,3857,2959,4351,7234,3630,5005,6369,5405,2018,4815,2687,6450,1727,3746,4573,6301,5713,1916,3420,6800,3293,2527,6254,1855,3470,2994,4734,3725,4844,2798,5040,5824,7182,3441,5323,3460,3464,3459,3461,3466,3462,3465,3463,3467,4724,4728,4723,4725,4726,4729,4730,4727,4731,2788,2792,2787,2789,2790,2793,2794,2791,2795,1524,1528,1525,1530,1523,1529,1526,1527,1531,3656,3652,3651,3653,3657,3658,3654,3655,3659,6244,6248,6243,6245,6246,6249,6250,6247,6251,4564,4568,4563,4565,4566,4569,4570,4567,4571,5416,5412,5413,5414,5417,5418,5411,5415,2556,3661,2909,3905,4850,7297,5279,5661,5714,6370,4574,5356,4479,5308,5006,6560,6415,4911,3874,6302,3552,6481,5072,2910,3968,6816,1887,5729,3197,6476,3407,1023,6684,3644,5920,7216,3760,5246,3025,5538,4589,5453,6317,5772,7181,3020,4797,5662,3359,5419,3252,3256,3251,3253,3258,3254,3257,3259,1998,3777,6928,5569,6482,2925,4956,3255,4996,5000,4995,4997,4998,5001,5002,4999,5003,1956,1960,1955,1958,1961,1957,1962,1959,1963,6292,6296,6291,6293,6294,6297,6298,6295,6299,2900,2904,2899,2901,2902,2905,2906,2903,2907,4788,4792,4787,4789,4790,4793,4794,4791,4795,5444,5448,5443,5446,5449,5445,5450,5451,5447,3288,3284,3283,3285,3290,3289,3286,3287,3291,4580,4584,4579,4581,4585,4582,4586,4583,4587,6308,6312,6307,6309,6310,6313,6314,6311,6315,5652,5656,5651,5654,5657,5653,5658,5655,7680,6848,7298,5744,6318,2543,3310,1980,3692,5295,3389,3873,2751,5517,1903,6592,3615,6497,3026,6705,5778,1789,5584,6207,3294,5454,3506,5340,2973,5677,4977,3442,7425,6671,2926,4590,6700,2783,1997,4798,6429,3726,4972,6268,2032,4943,6349,3421,5952,5088,5793,3041,4543,1917,6706,5532,3500,6430,4829,3042,3792,6498,5436,5327,2974,2812,5730,6545,7248,5570,2989,1519,4978,3676,6540,3853,3505,5361,5215,7426,3969,6737,3631,5020,6384,5906,4830,1951,4925,3532,6350,5659,3716,3720,3718,3715,3721,3722,3717,3723,3719,1992,1988,1989,1993,1987,1994,1990,1991,1995,2916,2920,2915,2917,2918,2921,2922,2919,2923,3384,3380,3381,3379,3385,3382,3386,3383,3387,1784,1780,1781,1782,1785,1779,1786,1787,1783,5236,5240,5237,5238,5242,5235,5241,5239,5243,7172,7176,7174,7177,7178,7173,7171,5309,6239,2879,6944,3390,6546,5710,5826,3309,6445,3888,6561,3698,3808,5423,3538,3663,2799,5900,7264,4845,6976,2990,5041,3906,6732,7179,5552,5777,1790,3471,7681,5362,5484,5036,3740,7040,5310,4926,6738,6562,5905,2012,5007,6446,5678,3646,3422,2557,3854,6255,4735,3970,7196,3697,5794,1967,7312,3021,5468,5341,4575,3537,3756,5518,5042,5773,4846,6332,2940,6593,5489,7217,4604,5709,3486,4957,6753,5953,3438,6303,3916,3199,3554,6685,1981,3645,2911,6754,6801,6477,3762,5922,5600,3056,4958,6016,1918,7328,3324,5245,2558,5455,6512,6796,2033,5692,7175,2964,2968,2963,2965,2970,2966,2969,2967,2971,5668,5672,5667,5669,5674,5670,5673,5675,5671,6420,6424,6419,6421,6425,6422,6426,6423,6427,4820,4824,4819,4821,4822,4825,4826,4823,4827,3300,3304,3301,3299,3302,3305,3306,3307,3303,6340,6344,6339,6341,6342,6345,6346,6343,6347,4916,4920,4915,4917,4918,4921,4922,4919,4923,3412,3416,3413,3414,3417,3411,3418,3419,3415,6436,6440,6435,6437,6438,6441,6442,6439,6443,2980,2984,2979,2981,2982,2985,2986,2983,2987,5508,5512,5507,5509,5514,5510,5513,5511,5515,3844,3848,3849,3846,3843,3845,3850,3847,3851,2548,2552,2547,2550,2549,2553,2554,2551,2555,4836,4840,4835,4837,4838,4841,4842,4839,4843,5704,5700,5699,5701,5705,5706,5702,5703,5707,5300,5304,5299,5301,5306,5302,5305,5307,1999,5808,5073,6594,6686,7682,6478,5068,3437,5407,3920,3022,6319,3501,5825,2028,6802,3761,4973,3263,5303,6676,6680,6675,6677,6678,6681,6682,6679,6683,1912,1908,1907,1913,1910,1909,1914,1911,1915,4948,4952,4947,4949,4950,4953,4954,4951,4955,6468,6472,6467,6469,6470,6473,6474,6471,6475,3636,3640,3635,3638,3637,3641,3642,3639,1533,3677,3568,6364,4591,5358,7249,5740,7212,5437,2927,5921,4799,6817,3553,7440,5663,6431,2975,5074,6269,6701,1982,7360,5342,3794,3391,3727,6460,5554,2034,5021,3868,6385,3809,5490,4974,4831,3788,7218,5774,3936,2813,6541,3004,5469,6351,5089,3485,6818,6702,6929,7244,6576,5548,7183,3678,5090,6380,5840,2013,7456,6768,3693,5022,4860,6924,5037,3295,7266,6849,5724,3984,6270,5901,6386,5553,6542,6017,5679,3793,2991,5580,6447,3502,3889,3643,3012,3016,3011,3013,3014,3017,3018,3015,3019,3428,3432,3427,3429,3434,3430,3433,3435,3431,5336,5332,5331,5333,5338,5337,5334,5335,5339,3476,3480,3478,3475,3481,3482,3477,3479,3483,5764,5768,5766,5763,5769,5770,5765,5771,5767,6692,6696,6691,6693,6694,6697,6698,6695,6699,1976,1972,1971,1974,1977,1973,1978,1975,1979,4964,4968,4963,4965,4966,4969,4970,4967,4971,3668,3672,3669,3674,3670,3667,3673,3675,3671,5432,5428,5429,5427,5433,5430,5434,5431,5435,6260,6264,6259,6261,6262,6265,6266,6263,6267,2804,2808,2803,2805,2806,2809,2810,2807,2811,5012,5016,5011,5013,5018,5014,5017,5015,5019,3496,3492,3494,3493,3497,3491,3498,3499,3495,6532,6536,6531,6533,6534,6537,6538,6535,6539,5348,5352,5349,5347,5350,5353,5354,5355,5351,6724,6728,6723,6725,6726,6729,6730,6727,6731,3684,3688,3683,3686,3685,3690,3689,3691,3687,5460,5464,5461,5462,5465,5459,5466,5467,5463,3732,3736,3734,3733,3737,3731,3738,3739,3735,7188,7192,7187,7190,7193,7189,7194,7195,4927,3326,5438,2814,2030,6333,3757,7313,5357,5936,7198,3694,5746,5856,6850,5586,2559,6733,5711,2014,4847,7488,3533,6930,3452,5038,3741,6492,5954,4000,5519,6608,6945,3036,7213,3855,5788,7308,6734,7265,7696,7250,3439,5694,5470,4605,5902,3516,6018,6716,5745,1535,7330,3884,5069,3921,5585,5804,2029,3742,6946,2941,4988,7191,5028,5032,5027,5029,5030,5033,5034,5031,5035,5892,5896,5897,5894,5891,5893,5898,5895,5534,3023,2942,6832,6797,5486,5964,7214,3810,6513,5247,5602,3890,6334,3423,6508,5693,4959,7712,6798,3057,3922,5810,6479,6624,5899,2004,2008,2005,2003,2010,2006,2009,2011,2007,6324,6328,6323,6325,6326,6329,6330,6327,6331,4596,4600,4595,4598,4597,4601,4602,4599,4603,3524,3528,3523,3526,3529,3525,3530,3527,3531,2932,2936,2931,2933,2934,2937,2938,2935,2939,3320,3316,3317,3318,3315,3321,3322,3323,3319,6788,6792,6787,6789,6790,6793,6794,6791,6795,5684,5688,5683,5686,5685,5689,5690,5687,5104,6365,3534,6514,5372,4606,7552,3937,3052,3869,6687,7442,6556,3647,3824,7329,3453,5485,6461,5968,3058,5070,5549,4032,3503,6366,1791,5809,3005,5311,6381,5725,5616,6703,7314,7436,3758,6977,3006,6978,4975,7197,5601,7361,3986,3708,6748,6577,3548,6864,5023,6960,7245,3789,3564,5842,7041,5439,5775,7280,3980,5916,5857,7441,7744,5836,6462,5984,4861,3886,7042,3325,6925,5052,3695,7458,6572,1919,6880,5533,3790,5726,6769,6382,4001,5741,3885,6543,3679,3517,6735,5343,6578,6032,2815,3952,3772,6493,7246,3037,5841,5039,3454,6764,7697,5550,7457,3870,5937,5691,5060,5064,5059,5061,5062,5065,5066,5063,5067,5476,5480,5475,5477,5482,5478,5481,5483,5479,7204,7208,7203,7205,7210,7206,7209,7207,6271,7211,2020,2024,2019,2021,2026,2025,2022,2023,2027,3752,3748,3747,3753,3750,3749,3754,3755,3751,6356,6360,6355,6357,6358,6361,6362,6359,6363,5524,5528,5526,5523,5529,5530,5525,5527,5531,2996,3000,2995,2997,2998,3001,3002,2999,3003,6452,6456,6451,6453,6454,6457,6458,6455,6459,5716,5720,5717,5722,5718,5715,5721,5723,5719,3864,3860,3859,3862,3865,3866,3861,3863,3867,6916,6920,6915,6917,6918,6921,6922,6919,6923,6372,6376,6371,6373,6374,6377,6378,6375,6379,4852,4856,4851,4853,4854,4857,4858,4855,4859,3780,3784,3781,3779,3786,3782,3785,3787,3783,7236,7240,7235,7237,7242,7238,7241,7239,7243,3444,3448,3445,3443,3450,3449,3446,3447,3451,5544,5540,5542,5541,5545,5539,5546,5547,5543,3880,3876,3875,3877,3878,3881,3882,3879,3883,6484,6488,6483,6485,6486,6489,6490,6487,6491,3028,3032,3027,3029,3030,3033,3034,3031,3035,5732,5736,5731,5734,5733,5738,5737,5739,5735,5780,5784,5782,5781,5785,5779,5786,5787,5783,5572,5576,5571,5574,5577,5573,5578,5575,5579,7300,7304,7299,7301,7306,7302,7305,7303,7307,6500,6504,6499,6501,6502,6505,6506,6503,6507,6708,6712,6707,6709,6713,6710,6714,6711,5374,6335,4862,6926,6770,5805,2044,7362,6715,4980,4984,4979,4981,4982,4985,4986,4983,4987,5368,5364,5365,5366,5363,5369,5370,5371,3938,6609,5742,4607,3570,7490,6494,5581,3743,7228,5500,3038,6812,5789,7692,3053,3985,6048,7309,6604,5084,7344,5903,7808,6717,7260,6509,5487,3535,6833,5564,3917,5932,3569,6610,3007,5969,3311,5367,3044,3048,3043,3045,3046,3049,3050,3047,3051,3508,3512,3507,3510,3513,3509,3514,3511,3515,3908,3912,3909,3907,3914,3910,3913,3915,3911,6548,6552,6547,6549,6550,6553,6554,6551,6555,5800,5796,5795,5801,5798,5797,5802,5803,6625,6718,5790,4989,6557,3759,3804,6510,5071,4990,7199,2031,7714,6799,5858,5938,5471,7310,6828,3918,7553,5799,6740,6744,6739,6741,6742,6745,6746,6743,6747,3704,3700,3699,3705,3702,3701,3706,3703,5105,3710,6573,5970,4033,6396,6749,7376,6992,6834,5582,6626,5985,5100,4002,7276,5917,3825,5695,2943,5872,7713,3487,6558,5501,6367,3054,5106,7698,6080,5551,7472,5053,7281,3709,6940,3550,7745,4034,1983,7392,6865,3900,5806,5054,3982,6860,7230,3820,7008,6034,5756,3518,6750,5596,7056,3791,7247,6866,5837,7568,5612,7437,4016,6961,6028,7936,6463,6765,7324,6956,7489,3565,6574,3826,7282,5934,5373,3871,5743,2046,3707,7428,7432,7427,7430,7433,7429,7434,7431,7435,5044,5048,5043,5045,5046,5049,5050,5047,5051,6564,6568,6563,6565,6566,6569,6570,6567,6571,3540,3544,3539,3542,3545,3541,3546,3547,3543,5912,5908,5907,5910,5913,5914,5909,5911,5915,3976,3972,3974,3971,3978,3977,3973,3975,3979,5828,5832,5829,5827,5834,5830,5833,5835,5831,6756,6760,6755,6757,6758,6761,6762,6759,6763,5492,5496,5493,5491,5498,5497,5494,5495,5499,2036,2040,2035,2037,2038,2041,2042,2039,2043,5928,5924,5923,5925,5926,5929,5930,5927,6383,6766,5838,7554,6524,3549,7345,3948,6962,6049,3773,7438,6605,5933,3039,6640,3981,6813,5727,5565,4863,3887,6000,5820,5085,7728,6495,5502,7504,3932,2047,6881,6606,5918,3774,5931,7220,7224,7219,7221,7226,7225,7222,7227,7223,3560,3556,3558,3555,3562,3561,3557,3559,3563,3768,3764,3763,3766,3769,3765,3770,3767,3771,6804,6808,6803,6805,6806,6809,6810,6807,6811,6596,6600,6595,6597,6598,6601,6602,6599,6603,5076,5080,5075,5077,5078,5081,5082,5079,5083,7684,7688,7683,7685,7690,7686,7689,7687,3996,7810,7693,3566,3068,7340,5986,6882,3953,7452,5618,7746,6814,5791,6927,5086,7229,6993,5101,6033,3805,2015,7072,6511,7520,7377,3519,6829,3055,6988,4048,7262,6397,5583,5965,6830,5617,5055,3919,5359,7277,6994,6588,5807,5852,7311,7691,7256,7252,7254,7251,7257,7253,7258,7255,7259,6820,6824,6819,6822,6821,6825,6826,6823,6827,5092,5096,5091,5093,5094,5097,5098,5095,5099,5556,5560,5555,5558,5561,5557,5562,5559,5563,6388,6392,6387,6389,6390,6393,6394,6395,6391,5956,5960,5957,5955,5962,5958,5961,5963,5959,3896,3892,3891,3898,3893,3894,3897,3899,3895,3800,3796,3797,3795,3802,3798,3801,3803,6559,3806,7346,7760,3954,7104,5966,7009,5758,3821,6081,7938,3901,6941,6050,7474,3799,6932,6936,6931,6934,6933,6937,6938,6935,6939,5752,5748,5747,5753,5750,5749,5754,5751,5873,6780,6398,4991,7694,7809,3551,6861,5535,7215,6719,7057,7584,5102,6942,3933,4064,5757,3902,7708,5598,6575,6082,3580,6751,5948,7372,6030,7468,3822,7010,5868,7325,7378,7052,5566,7937,6862,6957,5839,6620,4017,7261,7473,7439,3327,6064,7616,7058,7393,6896,3711,5613,5874,6958,7073,4012,5919,7341,5755,3812,3816,3811,3813,3818,3814,3817,3815,3819,7272,7268,7269,7267,7274,7270,7273,7271,7275,6852,6856,6851,6853,6854,6857,6858,6855,6859,5588,5592,5587,5590,5593,5589,5594,5595,5591,7316,7320,7315,7318,7321,7317,7322,7319,7323,6948,6952,6947,6949,6950,6953,6954,6951,6955,6024,6020,6022,6019,6026,6025,6021,6023,6027,6516,6520,6518,6515,6517,6521,6522,6519,6523,3924,3928,3925,3930,3926,3929,3923,3931,7824,6767,3069,7776,3983,6815,7342,7506,5597,3934,5996,4049,6607,5821,5087,7279,3455,6525,6029,6641,2045,7730,7074,5935,7105,4018,7326,3927,3060,3064,3059,3061,3062,3065,3066,3063,3067,5608,5604,5606,5603,5610,5609,5605,5607,5611,5816,5812,5811,5814,5817,5813,5818,5815,5819,6980,6984,6979,6981,6982,6985,6986,6983,6987,7336,7332,7331,7333,7338,7334,7337,7335,3070,6636,5980,7394,3950,5822,6844,6044,5614,5116,7522,3807,7500,6989,6001,6526,7729,7569,7373,4044,6642,5853,7024,6589,7536,4050,7292,7840,7724,6831,3997,5567,5103,4065,7564,6096,7756,3582,7469,7278,7505,6990,5967,7339,3940,3944,3939,3945,3942,3941,3946,3943,3947,6580,6584,6579,6581,6582,6586,6585,6583,6587,7444,7448,7446,7443,7449,7445,7450,7447,7451,3992,3988,3987,3989,3993,3990,3994,3991,3995,7364,7368,7363,7365,7370,7366,7369,7367,3836,6876,7408,6590,7106,7570,4013,7521,7454,3949,6781,4014,3823,7695,5854,7374,6002,7952,7585,5869,7231,5949,6972,6897,7470,3998,6943,6399,7053,7453,4066,6863,5599,3775,6621,7761,3964,3903,5981,6782,6892,6112,7088,7872,5950,7371,5944,5940,5939,5946,5941,5942,5945,5947,5943,5848,5844,5845,5843,5850,5846,5849,5851,5847,6772,6776,6771,6773,6774,6777,6778,6775,6779,3572,3576,3573,3578,3571,3577,3574,3575,3579,7464,7460,7461,7462,7465,7466,7459,7463,5628,6898,5870,7327,7709,7762,6622,7404,6527,7356,7054,6065,6959,7120,5375,3935,7777,3071,5759,7968,7294,7586,6637,7501,6060,7820,6845,7710,5117,7467,6612,6616,6611,6613,6614,6617,6618,6615,6619,4004,4008,4003,4006,4009,4005,4010,4007,4011,7044,7048,7043,7045,7046,7049,7050,7047,7051,5860,5864,5859,5861,5866,5862,5865,5863,5867,6836,6840,6835,6837,6838,6841,6842,6839,6843,7492,7496,7491,7494,7497,7493,7498,7499,7495,6628,6632,6627,6629,6633,6630,6634,6631,6635,7700,7704,7699,7702,7705,7701,7706,7703,4046,6031,7617,7004,5982,6097,7792,5503,4028,7343,7565,3951,6066,5118,7826,3837,7632,5998,7502,7388,7725,7025,6638,5855,4045,6846,7020,4080,6991,8000,7136,7841,6591,3965,6092,7580,6877,6098,7484,7375,6045,7778,6113,7618,3567,7026,5630,7409,7263,7068,7954,6878,3999,6973,5884,7707,5972,5976,5973,5978,5974,5977,5971,5979,5975,5108,5112,5107,5109,5110,5113,5114,5111,5115,4040,4036,4037,4041,4035,4042,4038,4039,4043,3832,3828,3829,3830,3833,3827,3834,3835,3831,7284,7288,7285,7286,7290,7283,7289,7287,7291,5988,5992,5987,5993,5990,5989,5994,5991,5995,7716,7720,7715,7717,7722,7718,7721,7723,7719,6868,6872,6867,6869,6870,6873,6874,6871,6875,6040,6036,6035,6037,6041,6038,6042,6039,6043,6964,6968,6963,6965,6966,6969,6970,6967,6971,7556,7560,7555,7557,7562,7558,7561,7559,7563,6884,6888,6883,6885,6886,6889,6890,6887,6891,7752,7748,7747,7749,7753,7754,7750,7751,7357,7755,5620,5624,5621,5626,5619,5625,5622,5623,6061,5997,7758,7874,6062,5871,7471,7948,6893,7089,7600,7825,3838,5627,7348,7352,7347,7349,7354,7350,7353,7355,7410,7532,7084,7358,6046,6974,7953,4060,7055,7726,6114,6783,5823,7842,4015,6012,7516,7389,6623,5951,7566,7090,7821,6894,7537,6652,7757,7005,8001,4029,7970,7648,7006,8064,3966,5983,7293,7503,5119,4081,7740,4047,7856,7121,7116,7455,6094,7873,4076,7021,7351,6052,6056,6051,6054,6057,6053,6058,6055,6059,3960,3956,3955,3961,3958,3957,3962,3959,3963,6996,7000,6995,6997,6998,7001,7002,6999,7003,7384,7380,7379,7381,7386,7385,7382,7383,7387,7812,7816,7814,7811,7817,7818,7813,7819,7815,4024,4020,4019,4022,4025,4021,4026,4023,3581,6639,7406,6076,7788,7485,7969,6847,5999,7711,7122,4030,5885,7390,7602,4082,7069,7538,7022,6879,4027,6088,6084,6085,6089,6083,6090,6086,6087,6091,7012,7016,7011,7013,7014,7017,7018,7015,7019,7480,7476,7477,7475,7481,7478,7482,7479,7483,5880,5876,5877,5878,5881,5875,5882,5883,5879,7060,7064,7059,7061,7066,7062,7065,7063,7067,7396,7400,7397,7395,7398,7401,7402,7403,6093,7822,6128,7517,7399,7508,7512,7509,7510,7513,7507,7514,7515,7137,6013,7596,7138,7888,4061,7070,6908,7085,5615,7772,7511,7940,7944,7945,7942,7939,7941,7946,7943,7949,7601,8065,7727,6047,7628,6975,7486,4078,7405,7984,7794,7904,7634,7759,4062,6895,7086,8002,5886,7567,7836,6108,7742,7518,6653,7950,8066,7793,3583,6063,7117,7633,7852,4077,7036,7582,7534,8012,7295,7650,6077,7741,7007,7858,7947,7076,7080,7075,7077,7078,7081,7082,7079,7083,4052,4056,4053,4051,4058,4054,4057,4059,4055,6644,6648,6643,6646,6645,6649,6650,6647,6651,6008,6004,6003,6009,6006,6005,6010,6007,6011,7732,7736,7731,7734,7733,7737,7738,7735,7152,6014,7420,6654,6129,6095,7533,8016,7118,7597,6124,3839,7857,7359,5629,7773,7664,7023,7649,7071,6078,7890,7487,7823,6130,7964,7905,7884,8032,6909,7100,3967,7581,7774,6109,7789,7391,8080,7889,7087,7598,7985,7739,7108,7112,7107,7109,7110,7113,7114,7111,7115,7524,7528,7523,7525,7530,7526,7529,7531,7527,4068,4072,4067,4069,4074,4073,4070,4071,4075,7572,7576,7574,7571,7577,7578,7573,7575,7579,6072,6068,6067,6070,6073,6069,6074,6071,6075,7764,7768,7765,7770,7766,7763,7769,7771,7767,6900,6904,6899,6901,6902,6905,6906,6903,6907,7592,7588,7590,7589,7593,7587,7594,7595,7591,7780,7784,7779,7782,7781,7786,7785,7787,7783,7828,7832,7830,7829,7833,7827,7834,7835,7831,6100,6104,6101,6099,6106,6102,6105,6107,6103,7620,7624,7619,7622,7625,7621,7626,7623,7627,7028,7032,7027,7029,7030,7033,7034,7031,7035,7416,7412,7413,7414,7411,7417,7418,7419,7422,6910,6126,7853,4092,7790,6655,6110,7629,7548,7837,8096,7132,7951,7535,7612,5631,7980,8017,7415,7848,7844,7843,7849,7846,7845,7850,7851,6125,7838,7037,7119,7038,4079,7906,7986,7519,7847,6116,6120,6115,6117,6122,6121,6118,6119,6123,7092,7096,7091,7093,7094,7097,7098,7095,7153,8018,7099,7960,7956,7955,7958,7961,7962,7957,7959,7630,8033,7148,7965,7743,7920,7549,7154,8128,7599,5887,7101,4031,7854,7102,8082,7804,7644,7963,7876,7880,7877,7875,7882,7878,7881,7883,7879,7540,7544,7541,7539,7546,7545,7542,7543,7547,7976,7972,7971,7973,7974,7977,7978,7975,7885,7660,8076,7982,7421,7791,4094,6015,7886,8097,7981,7775,7613,6911,8048,7868,7133,7550,4095,7966,7979,4084,4088,4083,4085,4086,4089,4090,4087,4091,7124,7128,7123,7125,7126,7129,7130,7127,7131,7140,7144,7139,7141,7142,7145,7146,7143,6140,8034,7147,7604,7608,7603,7606,7609,7605,7610,7607,7611,8004,8008,8005,8003,8010,8006,8009,8011,8007,7800,7796,7795,7801,7798,7797,7802,7666,7839,7134,7149,8081,4063,7799,7631,8013,7665,7103,7407,7855,7900,6127,8014,7806,8129,8098,7921,7039,7583,7150,7805,7646,8130,6079,7996,8078,7916,7614,7887,8112,7661,7922,7967,6142,7803,7636,7640,7635,7638,7641,7637,7642,7643,7639,8072,8068,8070,8067,8074,8073,8069,8071,8075,6132,6136,6131,6133,6134,6137,6138,6135,6139,7656,7652,7654,7651,7658,7657,7653,7655,7659,7864,7860,7859,7862,7865,7861,7866,7863,7867,7992,7988,7987,7994,7989,7990,7993,7645,8044,7869,7135,8077,4093,7983,8028,6143,7870,8092,7662,7164,8049,7995,7901,6111,7615,7151,8144,7991,7896,7892,7893,7891,7898,7894,7897,7899,8015,7902,8050,7917,7997,7895,7908,7912,7907,7909,7914,7910,7913,7911,7915,8020,8024,8021,8026,8022,8025,8019,8027,7647,8029,8160,7998,7676,7918,8113,7423,7807,8108,7165,8079,8030,8145,7551,6141,8114,8023,7156,7160,7155,7157,7158,7161,7162,7159,7163,8036,8040,8035,8041,8038,8037,8042,8039,8043,8088,8084,8083,8085,8089,8086,8090,8087,7166,8046,8091,7668,7672,7669,7674,7667,7673,7670,7903,7671,8140,8146,8093,8161,7678,7932,8109,8045,8110,7919,7675,8100,8104,8099,8102,8105,8101,8106,8103,8094,8162,7871,8060,7999,8031,7167,8107,8136,8132,8133,8137,8131,8138,8134,8135,8139,7928,7924,7925,7926,7929,7923,7930,7931,8142,7927,8056,8052,8051,8057,8054,8053,8058,8124,8047,7933,8141,8176,8061,7663,8095,8055,7934,8156,8111,8059,8120,8116,8115,8118,8121,8117,8122,8119,8125,8062,8177,8143,8172,7677,8126,8178,8123,8148,8152,8149,8147,8154,8150,8153,8155,8157,8151,8164,8168,8163,8165,8170,8169,8166,8167,8174,8158,7679,8171,8180,8184,8173,8179,8181,7935,8182,8185,8063,8186,8183,8188,8187,8175,8127,8190,8191,8159,8189]。
Q1=[0,1,2,16,32,64,17,18,128,12,33,65,256,34,129,66,512,130,13,48,14,257,258,513,80,514,96,144,28,49,272,160,1026,288,528,192,544,44,81,50,15,320,384,76,82,97,145,29,98,140,30,146,2048,161,576,45,640,1025,46,273,162,193,77,768,268,274,112,1024,78,289,194,60,290,529,524,141,1040,176,2049,142,530,321,31,1056,545,322,2050,304,4096,92,47,385,546,208,386,1088,577,113,79,269,108,578,224,270,1041,641,1036,560,114,156,1152,2064,61,1042,525,642,526,177,1057,769,2080,172,336,62,4097,143,178,93,1058,592,770,4098,1280,209,284,94,204,400,608,2112,1089,352,210,305,300,109,1090,225,306,157,2065,656,110,1038,1153,226,416,271,158,337,2066,672,332,540,1072,2176,173,1037,784,4112,338,1536,704,1154,174,2060,2081,448,353,2113,561,63,4128,1281,527,556,285,124,205,2304,562,286,354,2082,401,1104,396,1282,593,240,206,95,800,402,4160,301,417,1120,832,588,1537,2177,2114,896,594,418,2560,302,111,1052,1168,4113,188,449,1073,609,159,2178,541,610,657,333,4114,2061,1184,2096,368,652,4224,450,542,1538,334,2062,175,658,2305,220,1105,1068,4108,673,4129,1296,4161,287,125,557,1216,316,241,2306,1074,397,2561,207,2128,4352,674,558,785,1100,432,1039,236,1312,624,4130,780,1122,705,126,242,398,303,189,1169,1054,706,589,2562,1344,786,348,2144,464,4225,801,4162,1069,1164,590,4608,1121,1552,2192,1106,2076,572,1186,802,2097,688,653,1070,4226,369,2320,190,364,1568,654,2208,335,480,4109,221,3074,370,1408,4144,2336,543,1298,412,2576,2240,1185,317,2592,4110,222,2092,4353,237,559,1170,1292,833,834,1053,2129,1217,604,2098,433,720,816,1101,2063,2368,897,1136,1297,4354,1600,318,4609,898,781,1314,428,4176,736,2432,2124,625,238,2130,399,2145,591,434,349,1102,620,1553,1313,127,191,782,2193,626,2077,1218,465,2146,4610,1346,350,1084,668,1548,4192,1165,460,1200,2188,1664,573,2078,1116,2194,365,4240,4124,689,466,481,574,2209,413,2624,366,2093,4145,1055,1570,655,2688,4368,3073,1166,684,1409,4256,429,252,605,1232,848,690,2094,5122,482,2321,4384,1132,4624,2210,1569,4288,414,223,4640,2241,1554,1328,1137,4140,796,2125,1601,1248,721,2816,716,1086,2316,864,2322,4177,4146,606,912,1103,4111,722,4416,1424,2160,1293,817,1792,319,621,1180,812,3072,1345,430,1138,2126,2337,2242,239,622,1410,4480,380,4172,1201,4178,818,1294,461,496,4193,669,2108,1584,351,2338,2577,1360,2572,737,462,2189,3088,1666,1549,4241,2224,1196,4125,738,2190,1308,4194,2578,1602,670,783,2369,1085,849,2079,928,4236,367,3104,2593,1376,1233,2370,4126,685,844,4242,1118,253,686,2352,1133,6144,850,4257,4672,444,1167,4141,2140,415,2095,1202,4736,2433,5121,2594,1616,960,865,2256,2434,1794,797,4142,4369,1330,3136,636,254,1550,4258,1665,717,2625,1071,575,913,1440,798,4289,2161,2127,2317,2156,4173,1564,431,2626,607,2272,1228,4864,1324,4364,866,4370,2318,1181,1234,3089,908,1793,718,813,2689,476,3084,1117,1329,1295,4208,1472,914,1249,752,2608,5120,2162,2204,814,4174,929,4385,4290,3200,1197,1680,623,1632,671,1198,1362,2109,3090,463,2573,2690,1135,381,497,2574,2225,1586,930,4156,961,3105,1182,2817,4386,4625,492,1250,4620,4237,2220,5136,700,2384,1378,4272,2110,1356,845,6145,382,4238,2191,1585,4626,1425,2226,1229,4417,2141,4127,498,3106,880,445,1392,2640,1148,5152,1696,4641,1580,687,4418,1420,2818,1612,1325,6146,1134,1361,3328,846,2257,2332,4400,732,1264,446,962,2142,2252,1426,2448,1377,2656,1310,4188,637,3137,2400,4143,1551,1230,2258,4481,4642,2353,1808,1441,4304,2348,2157,1087,4482,828,753,1326,799,255,3138,5184,909,2273,1309,719,2354,4673,477,2205,1617,2704,2158,4209,638,4175,748,944,4365,1728,4204,3086,4674,4320,754,3201,1183,1565,1618,2274,4366,478,5137,1260,383,1212,4737,910,2464,2319,5132,815,2206,2385,976,2720,1633,2380,4656,4210,2588,1824,3120,4252,1150,1442,493,1357,5248,2221,1676,3085,701,1566,2832,1473,6160,2386,860,4157,3584,5138,2752,3202,1648,2222,4621,4738,1199,4622,4273,1421,5153,2496,2401,4865,2609,1682,1488,2111,6176,1358,4268,1244,1581,881,3329,2575,494,4432,2604,4158,702,2333,876,2172,4239,847,2253,1856,992,4274,1697,447,4189,5154,2610,1436,2334,733,4688,2402,1340,1231,1634,2449,3152,1474,4866,882,2444,1265,1119,3330,2641,5376,924,2288,1810,4305,734,4380,829,2254,1213,2143,4190,4300,2848,4496,2450,4704,6208,1614,5185,1730,4448,2349,2465,1327,4306,4401,1804,3168,749,2880,945,2636,1456,4396,1681,4205,3585,1266,1388,940,2944,1214,830,2642,2466,1809,911,2350,5186,1582,4321,2159,639,4402,3100,1698,4253,3216,6161,1372,4752,1245,479,4206,1422,946,1677,750,2236,5134,2497,1393,3121,508,1613,861,2657,1857,5249,2207,4322,2589,2658,2705,2381,4512,4367,1826,4254,1504,4433,6162,862,1920,4768,3232,1149,4428,1359,2416,2700,4636,1596,5168,1712,977,6272,2498,4269,2590,3586,5133,2382,972,1311,2223,1729,4880,2706,4434,877,5632,4800,5250,2268,4270,495,1262,3153,1644,3116,1341,6156,1825,703,2721,6177,4544,3344,1567,4449,6209,2335,978,4657,2173,2605,3264,4159,1246,2364,1458,925,2289,1394,5377,4623,878,4652,735,3122,4381,1678,2445,4220,4301,1373,2255,993,6400,2722,2606,4658,2833,3148,2480,1452,4382,3087,994,2284,1744,4450,3360,2672,6178,926,764,2828,4497,5200,941,3170,2753,1628,4492,2174,1805,2290,1457,5378,2446,1921,4689,1583,4336,1484,4302,2351,4191,831,4896,1342,4498,2237,3217,1261,4397,1840,3102,4513,1650,1760,2754,1490,2637,1615,751,3392,5216,2834,4928,942,2396,1858,4684,1423,5633,2512,6273,2849,6210,3117,1692,4992,3212,2638,4690,4514,6656,4398,3169,3600,3154,1598,1374,509,1806,4207,1922,5148,2620,1649,3234,5264,973,1489,1708,2850,4284,892,4545,5169,1438,4705,2736,2701,1390,4255,1868,3118,6274,2417,1151,1506,4637,2238,2412,1597,863,4706,3616,2702,4753,4429,1714,2383,2528,1008,6157,2269,2418,5280,1276,510,3456,6192,4464,4748,2591,3346,2460,4546,4638,5634,3233,4430,1389,2365,6158,1872,974,4271,1453,2270,4754,1713,1215,6401,2285,1629,1520,4316,2607,3218,3340,2881,5201,2882,5164,879,3101,4769,1505,3265,2652,5392,2481,2768,4383,927,2864,3149,4221,4653,5312,1746,2945,1343,1679,4412,3184,1820,4337,1761,3345,6402,3648,1740,5170,2366,1888,765,4493,6657,2946,2829,956,3362,2476,4303,6224,2784,1437,4770,4654,4881,5196,4528,5135,1630,2673,2286,4332,5408,4720,1645,2447,4876,2639,1247,5218,4801,2482,1936,4222,4338,2397,4494,3150,1745,943,2668,3601,4399,1454,3361,1841,2175,1278,2239,766,2830,4285,2674,1709,5265,3266,5150,2513,1646,4802,511,4685,6658,3394,5440,2398,1485,4882,3132,1404,2716,1693,4444,3596,6240,1952,3213,4560,2508,4897,988,3248,5165,1807,3712,5260,2621,4686,3164,5217,5648,2413,6288,5202,1391,6172,2737,1468,4668,5282,1836,2514,1873,2529,2622,1694,4898,893,2461,2414,975,6193,894,4784,4749,3103,3618,2703,5166,1762,4465,6416,1842,4286,1375,3214,4460,2732,3457,5664,4750,1009,6304,2477,1874,2300,2653,4431,4576,3280,2896,2738,4317,7170,1486,4466,2530,5504,1889,1004,6432,3180,1821,4639,5394,4508,1599,6672,1776,3617,6336,5281,2462,1405,4413,2271,6688,1010,3602,1984,1455,4318,3376,957,3185,6188,2844,4333,3649,4655,5266,3296,2769,5388,1710,4929,958,2764,3134,4930,5149,2912,6225,5313,1938,1660,4700,6194,2654,4529,1500,4816,2960,4912,5197,3151,6159,2770,1741,6464,3472,1516,4993,3341,5232,2865,1932,3840,2367,5393,2669,3228,2860,5696,3393,4414,2478,3186,1838,4994,1277,4877,1647,5410,4524,2287,4832,2670,1742,3458,6528,2428,6220,4721,4334,3249,6226,2866,1953,3342,2509,1837,4495,2544,6241,2717,1631,1469,4687,4530,767,1904,1724,4445,5198,989,3632,2399,1406,3408,4716,5649,2785,5409,2510,1822,4223,4287,3714,4878,3597,6289,4722,3244,6173,5314,1890,4561,2786,3356,6242,1522,5442,3650,4446,2718,1695,5180,2831,990,4764,3133,5644,2897,1005,1937,5261,4556,2976,5296,6284,2415,5760,3424,4669,3281,6174,2733,5212,2892,6290,4461,3166,2301,1487,4785,1869,2734,1521,4562,959,1263,3181,4577,4670,2898,6305,4509,6720,2492,1711,1756,4462,3215,6189,2463,5151,3250,5666,4751,6784,7169,3664,5262,3008,4780,1870,5505,2913,1662,4525,1985,4348,3842,4701,5328,2845,4944,4786,6190,4578,6417,1954,5228,3378,1777,2684,2302,895,3598,6306,3713,5665,2765,1439,4510,3119,2623,2961,4319,3488,1006,2846,6337,5650,5424,5233,1661,4892,6221,3612,1502,2479,5697,1986,5344,2655,4817,1852,3276,6912,1934,4812,5182,3372,6412,2914,1772,4960,6418,3229,3282,2956,1470,4702,3841,2766,2861,5008,1743,2524,5199,4818,3165,3377,5520,3343,6256,5389,1968,4913,3520,2962,5888,4415,4717,3297,2800,5276,4908,7168,5441,1517,4526,1778,5234,2862,6222,2977,6433,6338,1823,3245,4335,3728,2671,4718,3680,5506,2719,3246,3410,4476,1501,5297,1900,4914,2511,1725,5390,4557,991,3183,2429,4592,1933,4765,2545,3634,2978,6204,1839,3009,3230,5680,4447,6434,6673,5456,2540,1884,3298,6668,4833,4558,6285,1726,7184,2748,1948,5762,5645,1518,1020,3426,6320,5292,3404,2893,4834,1905,2430,6286,5404,3633,6674,5698,4766,3473,4879,3277,6465,5181,4945,6175,2546,1757,2928,2493,5024,3440,4463,3196,7200,3744,6689,5472,5329,3628,2735,6466,1471,4781,1007,4940,3468,2000,3660,3373,5214,4349,3182,3409,4782,2894,1871,6448,5229,2780,3312,2494,3010,4946,3474,4540,3425,5263,3358,6236,2685,4511,6191,3599,1758,5298,3278,6529,6690,5712,1906,5056,4961,3856,3489,6352,1773,3135,6530,5890,1853,2876,4893,2801,3374,2847,2303,5426,7232,2957,4732,4350,3357,2767,5646,5761,1503,4813,6721,5167,2525,4671,5009,3665,5536,4894,6257,1885,2686,6223,2796,2016,2992,6413,3776,6252,1854,5660,4527,6722,1532,4703,6368,5324,5420,2802,1774,4962,3231,3613,3666,6414,2526,5277,5330,7185,5004,3308,5889,2431,4814,4909,3260,6785,2958,4572,1969,7180,5213,2863,5425,5391,3024,1279,5568,5010,3681,5345,4848,6704,6258,1663,3872,6300,4910,3198,3490,2541,3405,5025,1964,7296,3724,5293,2749,3614,5776,4719,1021,5728,1935,4767,3521,5294,5458,2908,6205,1886,7186,2001,4559,3696,6669,6786,5231,1407,4477,4593,3247,6670,6321,5682,5026,3469,5057,7201,1970,5278,6913,1022,4588,3730,5346,3536,1902,3406,6316,4796,3292,3629,2929,2542,6480,5474,1759,6206,2750,5452,4941,2924,4478,6287,5681,2895,3904,5521,3040,6322,5325,3745,2495,6237,1996,4594,7202,4976,3484,4541,5488,2781,2002,6736,5244,5792,3388,3279,5676,4783,1949,3682,2017,5516,3522,6914,5708,2930,1534,5421,5230,3313,3167,5457,7424,2972,4942,3858,6353,2782,6428,2877,1788,3261,4828,5360,4542,5058,6238,6348,5522,1965,6544,5473,6752,5406,1901,4733,3662,7233,3778,6496,1966,1775,5647,5326,3375,6354,6449,3852,2797,2993,5904,5537,3504,6444,3729,6253,5183,3314,4924,4849,3436,2988,5422,3262,1950,2878,4895,3857,2959,4351,7234,3630,5005,6369,5405,2018,4815,2687,6450,1727,3746,4573,6301,5713,1916,3420,6800,3293,2527,6254,1855,3470,2994,4734,3725,4844,2798,5040,5824,7182,3441,2556,3661,2909,3905,4850,7297,5279,5661,5714,6370,4574,5356,4479,5308,5006,6560,6415,4911,3874,6302,3552,6481,5072,2910,3968,6816,1887,5729,3197,6476,3407,1023,6684,3644,5920,7216,3760,5246,3025,5538,4589,5453,6317,5772,7181,3020,4797,5662,3359,1998,3777,6928,5569,6482,2925,4956,7680,6848,7298,5744,6318,2543,3310,1980,3692,5295,3389,3873,2751,5517,1903,6592,3615,6497,3026,6705,5778,1789,5584,6207,3294,5454,3506,5340,2973,5677,4977,3442,7425,6671,2926,4590,6700,2783,1997,4798,6429,3726,4972,6268,2032,4943,6349,3421,5952,5088,5793,3041,4543,1917,6706,5532,3500,6430,4829,3042,3792,6498,5436,5327,2974,2812,5730,6545,7248,5570,2989,1519,4978,3676,6540,3853,3505,5361,5215,7426,3969,6737,3631,5020,6384,5906,4830,1951,4925,3532,6350,5309,6239,2879,6944,3390,6546,5710,5826,3309,6445,3888,6561,3698,3808,5423,3538,3663,2799,5900,7264,4845,6976,2990,5041,3906,6732,5552,5777,1790,3471,7681,5362,5484,5036,3740,7040,5310,4926,6738,6562,5905,2012,5007,6446,5678,3646,3422,2557,3854,6255,4735,3970,7196,3697,5794,1967,7312,3021,5468,5341,4575,3537,3756,5518,5042,5773,4846,6332,2940,6593,5489,7217,4604,5709,3486,4957,6753,5953,3438,6303,3916,3199,3554,6685,1981,3645,2911,6754,6801,6477,3762,5922,5600,3056,4958,6016,1918,7328,3324,5245,2558,5455,6512,6796,2033,5692,1999,5808,5073,6594,6686,7682,6478,5068,3437,5407,3920,3022,6319,3501,5825,2028,6802,3761,4973,3263,1533,3677,3568,6364,4591,5358,7249,5740,7212,5437,2927,5921,4799,6817,3553,7440,5663,6431,2975,5074,6269,6701,1982,7360,5342,3794,3391,3727,6460,5554,2034,5021,3868,6385,3809,5490,4974,4831,3788,7218,5774,3936,2813,6541,3004,5469,6351,5089,3485,6818,6702,6929,7244,6576,5548,7183,3678,5090,6380,5840,2013,7456,6768,3693,5022,4860,6924,5037,3295,7266,6849,5724,3984,6270,5901,6386,5553,6542,6017,5679,3793,2991,5580,6447,3502,3889,4927,3326,5438,2814,2030,6333,3757,7313,5357,5936,7198,3694,5746,5856,6850,5586,2559,6733,5711,2014,4847,7488,3533,6930,3452,5038,3741,6492,5954,4000,5519,6608,6945,3036,7213,3855,5788,7308,6734,7265,7696,7250,3439,5694,5470,4605,5902,3516,6018,6716,5745,1535,7330,3884,5069,3921,5585,5804,2029,3742,6946,2941,4988,5534,3023,2942,6832,6797,5486,5964,7214,3810,6513,5247,5602,3890,6334,3423,6508,5693,4959,7712,6798,3057,3922,5810,6479,6624,5104,6365,3534,6514,5372,4606,7552,3937,3052,3869,6687,7442,6556,3647,3824,7329,3453,5485,6461,5968,3058,5070,5549,4032,3503,6366,1791,5809,3005,5311,6381,5725,5616,6703,7314,7436,3758,6977,3006,6978,4975,7197,5601,7361,3986,3708,6748,6577,3548,6864,5023,6960,7245,3789,3564,5842,7041,5439,5775,7280,3980,5916,5857,7441,7744,5836,6462,5984,4861,3886,7042,3325,6925,5052,3695,7458,6572,1919,6880,5533,3790,5726,6769,6382,4001,5741,3885,6543,3679,3517,6735,5343,6578,6032,2815,3952,3772,6493,7246,3037,5841,5039,3454,6764,7697,5550,7457,3870,5937,6271,5374,6335,4862,6926,6770,5805,2044,7362,3938,6609,5742,4607,3570,7490,6494,5581,3743,7228,5500,3038,6812,5789,7692,3053,3985,6048,7309,6604,5084,7344,5903,7808,6717,7260,6509,5487,3535,6833,5564,3917,5932,3569,6610,3007,5969,3311,6625,6718,5790,4989,6557,3759,3804,6510,5071,4990,7199,2031,7714,6799,5858,5938,5471,7310,6828,3918,7553,5105,3710,6573,5970,4033,6396,6749,7376,6992,6834,5582,6626,5985,5100,4002,7276,5917,3825,5695,2943,5872,7713,3487,6558,5501,6367,3054,5106,7698,6080,5551,7472,5053,7281,3709,6940,3550,7745,4034,1983,7392,6865,3900,5806,5054,3982,6860,7230,3820,7008,6034,5756,3518,6750,5596,7056,3791,7247,6866,5837,7568,5612,7437,4016,6961,6028,7936,6463,6765,7324,6956,7489,3565,6574,3826,7282,5934,5373,3871,5743,2046,6383,6766,5838,7554,6524,3549,7345,3948,6962,6049,3773,7438,6605,5933,3039,6640,3981,6813,5727,5565,4863,3887,6000,5820,5085,7728,6495,5502,7504,3932,2047,6881,6606,5918,3774,3996,7810,7693,3566,3068,7340,5986,6882,3953,7452,5618,7746,6814,5791,6927,5086,7229,6993,5101,6033,3805,2015,7072,6511,7520,7377,3519,6829,3055,6988,4048,7262,6397,5583,5965,6830,5617,5055,3919,5359,7277,6994,6588,5807,5852,7311,6559,3806,7346,7760,3954,7104,5966,7009,5758,3821,6081,7938,3901,6941,6050,7474,5873,6780,6398,4991,7694,7809,3551,6861,5535,7215,6719,7057,7584,5102,6942,3933,4064,5757,3902,7708,5598,6575,6082,3580,6751,5948,7372,6030,7468,3822,7010,5868,7325,7378,7052,5566,7937,6862,6957,5839,6620,4017,7261,7473,7439,3327,6064,7616,7058,7393,6896,3711,5613,5874,6958,7073,4012,5919,7341,7824,6767,3069,7776,3983,6815,7342,7506,5597,3934,5996,4049,6607,5821,5087,7279,3455,6525,6029,6641,2045,7730,7074,5935,7105,4018,7326,3070,6636,5980,7394,3950,5822,6844,6044,5614,5116,7522,3807,7500,6989,6001,6526,7729,7569,7373,4044,6642,5853,7024,6589,7536,4050,7292,7840,7724,6831,3997,5567,5103,4065,7564,6096,7756,3582,7469,7278,7505,6990,5967,3836,6876,7408,6590,7106,7570,4013,7521,7454,3949,6781,4014,3823,7695,5854,7374,6002,7952,7585,5869,7231,5949,6972,6897,7470,3998,6943,6399,7053,7453,4066,6863,5599,3775,6621,7761,3964,3903,5981,6782,6892,6112,7088,7872,5950,5628,6898,5870,7327,7709,7762,6622,7404,6527,7356,7054,6065,6959,7120,5375,3935,7777,3071,5759,7968,7294,7586,6637,7501,6060,7820,6845,7710,5117,4046,6031,7617,7004,5982,6097,7792,5503,4028,7343,7565,3951,6066,5118,7826,3837,7632,5998,7502,7388,7725,7025,6638,5855,4045,6846,7020,4080,6991,8000,7136,7841,6591,3965,6092,7580,6877,6098,7484,7375,6045,7778,6113,7618,3567,7026,5630,7409,7263,7068,7954,6878,3999,6973,5884,7357,6061,5997,7758,7874,6062,5871,7471,7948,6893,7089,7600,7825,3838,7410,7532,7084,7358,6046,6974,7953,4060,7055,7726,6114,6783,5823,7842,4015,6012,7516,7389,6623,5951,7566,7090,7821,6894,7537,6652,7757,7005,8001,4029,7970,7648,7006,8064,3966,5983,7293,7503,5119,4081,7740,4047,7856,7121,7116,7455,6094,7873,4076,7021,3581,6639,7406,6076,7788,7485,7969,6847,5999,7711,7122,4030,5885,7390,7602,4082,7069,7538,7022,6879,6093,7822,6128,7517,7137,6013,7596,7138,7888,4061,7070,6908,7085,5615,7772,7949,7601,8065,7727,6047,7628,6975,7486,4078,7405,7984,7794,7904,7634,7759,4062,6895,7086,8002,5886,7567,7836,6108,7742,7518,6653,7950,8066,7793,3583,6063,7117,7633,7852,4077,7036,7582,7534,8012,7295,7650,6077,7741,7007,7858,7152,6014,7420,6654,6129,6095,7533,8016,7118,7597,6124,3839,7857,7359,5629,7773,7664,7023,7649,7071,6078,7890,7487,7823,6130,7964,7905,7884,8032,6909,7100,3967,7581,7774,6109,7789,7391,8080,7889,7087,7598,7985,7422,6910,6126,7853,4092,7790,6655,6110,7629,7548,7837,8096,7132,7951,7535,7612,5631,7980,8017,6125,7838,7037,7119,7038,4079,7906,7986,7519,7153,8018,7630,8033,7148,7965,7743,7920,7549,7154,8128,7599,5887,7101,4031,7854,7102,8082,7804,7644,7885,7660,8076,7982,7421,7791,4094,6015,7886,8097,7981,7775,7613,6911,8048,7868,7133,7550,4095,7966,6140,8034,7666,7839,7134,7149,8081,4063,7631,8013,7665,7103,7407,7855,7900,6127,8014,7806,8129,8098,7921,7039,7583,7150,7805,7646,8130,6079,7996,8078,7916,7614,7887,8112,7661,7922,7967,6142,7645,8044,7869,7135,8077,4093,7983,8028,6143,7870,8092,7662,7164,8049,7901,6111,7615,7151,8144,8015,7902,8050,7917,7997,7647,8029,8160,7998,7676,7918,8113,7423,7807,8108,7165,8079,8030,8145,7551,6141,8114,7166,8046,7903,8140,8146,8093,8161,7678,7932,8109,8045,8110,7919,8094,8162,7871,8060,7999,8031,7167,8142,8124,8047,7933,8141,8176,8061,7663,8095,7934,8156,8111,8125,8062,8177,8143,8172,7677,8126,8178,8157,8174,8158,7679,8173,7935,8063,8188,8175,8127,8190,8191,8159,8189]。
Q2=[4,8,3,5,9,6,10,7,11,20,24,19,21,26,25,22,23,27,36,40,35,37,38,41,42,39,43,68,72,67,69,74,70,73,71,75,132,136,131,133,134,137,138,135,139,260,264,259,261,262,265,266,263,267,516,520,515,517,518,521,522,519,523,52,56,51,53,54,57,58,55,59,84,88,83,85,86,89,90,87,91,100,104,99,101,102,105,106,103,107,148,152,147,149,150,153,154,151,155,164,168,163,165,166,169,170,167,171,276,280,275,277,281,278,282,279,283,196,200,195,197,198,201,202,199,203,1028,1032,1030,1033,1034,1029,1027,1035,1031,292,296,291,293,294,297,298,295,299,532,536,531,533,534,537,538,535,539,2052,2056,2051,2053,2057,2054,2058,2055,2059,324,328,323,325,326,329,330,327,331,548,552,547,549,550,553,554,551,555,116,120,115,117,118,121,122,119,123,388,392,387,389,390,393,394,391,395,580,584,579,581,582,585,586,583,587,1044,1048,1043,1046,1049,1045,1050,1051,1047,180,184,179,181,182,185,186,183,187,644,648,643,645,646,649,650,647,651,4100,4104,4099,4101,4105,4102,4106,4103,4107,212,216,211,213,214,217,218,215,219,1060,1064,1059,1061,1066,1062,1065,1063,1067,308,312,307,309,310,313,314,311,315,228,232,227,229,230,233,234,231,235,772,776,771,773,774,777,778,775,779,1092,1096,1091,1093,1098,1094,1097,1095,1099,340,344,339,341,342,345,346,343,347,2068,2072,2067,2069,2074,2073,2070,2071,2075,1156,1160,1155,1157,1162,1158,1161,1159,1163,356,360,355,357,358,361,362,359,363,564,568,563,565,569,566,570,567,571,2084,2088,2083,2085,2086,2089,2090,2087,2091,404,408,403,405,406,409,410,407,411,596,600,595,597,598,601,602,599,603,1284,1288,1283,1286,1289,1285,1290,1287,1291,2116,2120,2115,2117,2122,2118,2121,2119,2123,420,424,419,421,422,425,426,423,427,612,616,611,613,614,617,618,615,619,1076,1080,1075,1077,1082,1081,1078,1083,1079,660,664,659,661,662,665,666,663,667,452,456,451,453,454,457,458,455,459,4116,4120,4115,4117,4122,4121,4118,4119,4123,2180,2184,2179,2181,2182,2185,2186,2183,2187,1540,1544,1539,1541,1546,1542,1545,1543,1547,676,680,675,678,677,681,682,679,683,1112,1108,1110,1107,1113,1109,1114,1111,1115,4132,4136,4131,4133,4134,4137,4138,4135,4139,244,248,243,245,246,249,250,251,247,2308,2312,2307,2309,2310,2313,2314,2311,2315,788,792,787,790,789,793,794,791,795,1128,1124,1125,1123,1130,1126,1129,1127,1131,708,712,707,709,710,713,714,711,715,4164,4168,4163,4165,4170,4166,4169,4167,4171,1172,1176,1171,1174,1177,1173,1178,1175,1179,804,808,803,805,806,809,810,807,811,372,376,374,371,373,377,378,375,379,2564,2568,2563,2565,2566,2569,2570,2567,2571,2100,2104,2099,2101,2102,2105,2106,2103,2107,836,840,835,837,838,841,842,839,843,4228,4232,4227,4229,4230,4233,4234,4231,4235,1192,1188,1187,1189,1194,1190,1193,1191,1195,2132,2136,2131,2133,2134,2137,2138,2135,2139,436,440,435,437,438,442,441,439,443,1300,1304,1302,1299,1305,1301,1306,1303,1307,1220,1224,1219,1221,1226,1222,1225,1223,1227,628,632,627,629,630,633,634,631,635,4356,4360,4355,4357,4358,4361,4362,4359,4363,2148,2152,2147,2149,2150,2153,2154,2151,2155,468,472,467,469,470,473,474,471,475,900,904,899,901,902,905,906,903,907,1320,1316,1317,1318,1321,1322,1315,1319,1323,2196,2200,2195,2197,2198,2201,2202,2199,2203,692,696,691,693,694,697,698,695,699,4612,4616,4611,4613,4614,4617,4618,4615,4619,1348,1352,1347,1350,1353,1349,1354,1355,1351,484,488,483,485,489,486,490,487,491,2212,2216,2211,2213,2214,2217,2218,2215,2219,4148,4152,4147,4149,4150,4153,4154,4151,4155,1556,1560,1555,1558,1561,1557,1562,1559,1563,1140,1144,1141,1142,1146,1139,1145,1143,1147,1572,1576,1571,1573,1578,1574,1577,1579,1575,2324,2328,2323,2325,2329,2326,2330,2327,2331,3076,3080,3078,3081,3082,3077,3075,3083,3079,724,728,723,725,726,729,730,727,731,4180,4184,4179,4181,4182,4185,4186,4183,4187,2244,2248,2243,2245,2246,2249,2250,2247,2251,820,824,819,821,822,825,826,823,827,2340,2344,2339,2341,2342,2345,2346,2343,2347,1412,1416,1411,1413,1418,1414,1417,1415,1419,740,744,739,741,742,745,746,743,747,4196,4200,4195,4197,4198,4201,4202,4199,4203,1608,1604,1603,1605,1609,1610,1606,1607,1611,1204,1208,1203,1205,1210,1206,1209,1211,1207,4244,4248,4243,4245,4246,4249,4250,4247,4251,2580,2584,2579,2581,2582,2585,2586,2583,2587,852,856,851,853,854,857,858,855,859,2372,2376,2371,2373,2374,2377,2378,2375,2379,1240,1236,1235,1237,1242,1241,1238,1239,1243,4260,4264,4259,4261,4262,4265,4266,4263,4267,1668,1672,1670,1667,1673,1674,1669,1675,1671,2596,2600,2595,2597,2598,2601,2602,2599,2603,868,872,867,869,870,873,874,871,875,1336,1332,1333,1331,1337,1334,1338,1335,1339,2164,2168,2163,2165,2166,2169,2170,2167,2171,916,920,915,917,922,918,921,919,923,4372,4376,4371,4373,4377,4374,4378,4375,4379,5124,5128,5126,5129,5130,5125,5123,5131,5127,2436,2440,2435,2437,2438,2441,2442,2439,2443,1252,1256,1253,1251,1254,1257,1258,1259,1255,4292,4296,4291,4293,4294,4297,4298,4295,4299,2628,2632,2627,2629,2630,2633,2634,2631,2635,4388,4392,4387,4389,4390,4393,4394,4391,4395,1364,1368,1365,1366,1369,1363,1370,1371,1367,932,936,931,933,934,937,938,935,939,3092,3096,3091,3094,3097,3093,3098,3099,3095,2228,2232,2227,2229,2230,2233,2234,2231,2235,1796,1800,1801,1798,1795,1797,1802,1799,1803,500,504,499,502,501,505,506,503,507,4628,4632,4627,4629,4630,4633,4634,4631,4635,2692,2696,2691,2693,2694,2697,2698,2695,2699,6148,6152,6147,6149,6153,6150,6154,6151,6155,4420,4424,4419,4421,4422,4425,4426,4423,4427,964,968,963,965,966,969,970,967,971,1380,1384,1379,1381,1386,1382,1385,1387,1383,1588,1592,1587,1590,1589,1593,1594,1591,1595,2260,2264,2259,2261,2262,2265,2266,2263,2267,3108,3112,3107,3109,3114,3110,3113,3111,3115,1428,1432,1430,1427,1433,1434,1429,1431,1435,2356,2360,2355,2357,2358,2361,2362,2359,2363,4644,4648,4643,4645,4646,4649,4650,4647,4651,1620,1624,1621,1626,1622,1619,1625,1627,1623,2820,2824,2819,2821,2822,2825,2826,2823,2827,4212,4216,4211,4213,4214,4217,4218,4215,4219,2276,2280,2275,2277,2278,2281,2282,2279,2283,756,760,755,757,758,761,762,759,763,3140,3144,3139,3141,3146,3142,3145,3143,3147,1448,1444,1446,1445,1449,1443,1450,1451,1447,4484,4488,4483,4485,4486,4489,4490,4487,4491,2388,2392,2387,2389,2390,2393,2394,2391,2395,4676,4680,4675,4677,4678,4681,4682,4679,4683,1636,1640,1635,1638,1637,1642,1641,1643,1639,1684,1688,1686,1685,1689,1683,1690,1691,1687,5140,5144,5139,5142,5145,5141,5146,5147,5143,4276,4280,4275,4277,4278,4281,4282,4279,4283,1476,1480,1475,1478,1481,1477,1482,1479,1483,3204,3208,3203,3205,3210,3206,3209,3207,3211,2404,2408,2403,2405,2406,2409,2410,2407,2411,2612,2616,2611,2613,2617,2614,2618,2615,2619,884,888,883,885,886,889,890,887,891,1272,1268,1269,1270,1267,1273,1274,1275,1271,4740,4744,4739,4741,4742,4745,4746,4743,4747,2452,2456,2451,2453,2454,2457,2458,2455,2459,1704,1700,1699,1705,1702,1701,1706,1707,1703,5156,5160,5155,5157,5162,5158,5161,5159,5163,4308,4312,4307,4309,4310,4313,4314,4311,4315,2644,2648,2643,2645,2646,2649,2650,2647,2651,948,952,947,949,950,953,954,951,955,3332,3336,3331,3334,3337,3333,3338,3335,3339,4404,4408,4403,4405,4406,4409,4410,4407,4411,2468,2472,2467,2469,2470,2473,2474,2471,2475,1816,1812,1811,1814,1817,1818,1813,1815,1819,4868,4872,4867,4869,4870,4873,4874,4871,4875,4324,4328,4323,4325,4326,4329,4330,4327,4331,1732,1736,1733,1731,1738,1734,1737,1739,1735,5188,5192,5187,5189,5194,5190,5193,5191,5195,2660,2664,2659,2661,2662,2665,2666,2663,2667,1396,1400,1397,1395,1402,1401,1398,1399,1403,1832,1828,1827,1829,1830,1833,1834,1831,1835,3124,3128,3123,3125,3130,3129,3126,3131,3127,4436,4440,4435,4437,4438,4441,4442,4439,4443,2708,2712,2707,2709,2710,2713,2714,2711,2715,980,984,979,981,982,985,986,983,987,2500,2504,2499,2501,2502,2505,2506,2503,2507,6164,6168,6163,6165,6170,6169,6166,6167,6171,5252,5256,5251,5253,5258,5254,5257,5255,5259,3588,3592,3587,3589,3594,3590,3593,3591,3595,4452,4456,4451,4453,4454,4457,4458,4455,4459,4660,4664,4659,4661,4665,4662,4666,4663,4667,2724,2728,2723,2726,2725,2729,2730,2727,2731,3160,3156,3158,3155,3161,3157,3162,3159,3163,996,1000,995,997,998,1001,1002,999,1003,6180,6184,6179,6181,6182,6185,6186,6183,6187,1460,1464,1459,1462,1465,1461,1466,1463,1467,2292,2296,2291,2293,2294,2297,2298,2299,2295,1860,1864,1861,1859,1866,1862,1865,1867,1863,4500,4504,4499,4501,4502,4505,4506,4503,4507,2836,2840,2835,2838,2837,2841,2842,2839,2843,4692,4696,4691,4693,4694,4697,4698,4695,4699,1656,1652,1651,1657,1654,1653,1658,1655,1659,3176,3172,3173,3171,3178,3174,3177,3175,3179,2756,2760,2755,2757,2758,2761,2762,2759,2763,5380,5384,5379,5382,5385,5381,5386,5383,5387,6212,6216,6211,6213,6218,6214,6217,6215,6219,1492,1496,1491,1494,1497,1493,1498,1499,1495,4516,4520,4515,4517,4518,4521,4522,4519,4523,3220,3224,3219,3222,3225,3221,3226,3223,3227,2852,2856,2851,2853,2854,2857,2858,2855,2859,1928,1924,1926,1923,1930,1929,1925,1927,1931,2420,2424,2422,2419,2421,2425,2426,2423,2427,4708,4712,4707,4709,4710,4713,4714,4711,4715,5172,5176,5171,5173,5178,5177,5174,5179,5175,1512,1508,1510,1507,1514,1513,1509,1511,1515,1720,1716,1715,1718,1721,1717,1722,1719,1723,4756,4760,4755,4757,4758,4761,4762,4759,4763,4548,4552,4547,4549,4550,4553,4554,4551,4555,2884,2888,2883,2885,2886,2889,2890,2887,2891,6276,6280,6275,6277,6278,6281,6282,6279,6283,3240,3236,3235,3237,3242,3238,3241,3239,3243,5636,5640,5635,5637,5642,5638,5641,5639,5643,2484,2488,2483,2485,2486,2490,2489,2487,2491,3348,3352,3350,3347,3353,3349,3354,3351,3355,5208,5204,5206,5203,5209,5205,5210,5207,5211,4772,4776,4771,4774,4773,4777,4778,4775,4779,4340,4344,4339,4341,4342,4345,4346,4347,4343,3268,3272,3267,3269,3274,3270,3273,3271,3275,1752,1748,1749,1747,1754,1750,1753,1755,1751,1848,1844,1843,1850,1845,1846,1849,1851,1847,2676,2680,2675,2677,2678,2681,2682,2679,2683,6404,6408,6403,6405,6406,6409,6410,6407,6411,4884,4888,4883,4886,4885,4889,4890,4887,4891,2516,2520,2515,2517,2518,2521,2522,2519,2523,3368,3364,3365,3366,3369,3370,3363,3367,3371,2948,2952,2947,2949,2950,2953,2954,2951,2955,1764,1768,1763,1765,1770,1766,1769,1767,1771,5224,5220,5221,5219,5226,5222,5225,5223,5227,4804,4808,4803,4805,4806,4809,4810,4807,4811,5268,5272,5267,5270,5273,5269,5274,5271,5275,4900,4904,4899,4901,4902,4905,4906,4903,4907,4468,4472,4470,4467,4469,4473,4474,4471,4475,2740,2744,2739,2741,2742,2745,2746,2743,2747,6660,6664,6659,6661,6662,6665,6666,6663,6667,3396,3400,3395,3398,3401,3397,3402,3403,3399,2532,2536,2531,2533,2537,2534,2538,2535,2539,1012,1016,1011,1013,1014,1017,1018,1015,1019,1876,1880,1877,1882,1878,1881,1875,1883,1879,3604,3608,3603,3606,3609,3605,3610,3607,3611,6196,6200,6195,6197,6198,6201,6202,6199,6203,4932,4936,4931,4933,4934,4937,4938,4935,4939,3188,3192,3189,3190,3194,3187,3193,3191,3195,5288,5284,5283,5285,5290,5286,5289,5287,5291,1892,1896,1891,1897,1894,1893,1898,1895,1899,3620,3624,3619,3621,3626,3622,3625,3627,3623,2772,2776,2771,2773,2774,2777,2778,2775,2779,6228,6232,6227,6229,6230,6233,6234,6231,6235,4532,4536,4531,4533,4534,4538,4537,4535,4539,5396,5400,5398,5395,5401,5397,5402,5399,5403,1944,1940,1939,1941,1945,1942,1946,1943,1947,2868,2872,2867,2869,2870,2873,2874,2871,2875,5316,5320,5315,5317,5322,5318,5321,5319,5323,3460,3464,3459,3461,3466,3462,3465,3463,3467,4724,4728,4723,4725,4726,4729,4730,4727,4731,2788,2792,2787,2789,2790,2793,2794,2791,2795,1524,1528,1525,1530,1523,1529,1526,1527,1531,3656,3652,3651,3653,3657,3658,3654,3655,3659,6244,6248,6243,6245,6246,6249,6250,6247,6251,4564,4568,4563,4565,4566,4569,4570,4567,4571,5416,5412,5413,5414,5417,5418,5411,5415,5419,3252,3256,3251,3253,3258,3254,3257,3259,3255,4996,5000,4995,4997,4998,5001,5002,4999,5003,1956,1960,1955,1958,1961,1957,1962,1959,1963,6292,6296,6291,6293,6294,6297,6298,6295,6299,2900,2904,2899,2901,2902,2905,2906,2903,2907,4788,4792,4787,4789,4790,4793,4794,4791,4795,5444,5448,5443,5446,5449,5445,5450,5451,5447,3288,3284,3283,3285,3290,3289,3286,3287,3291,4580,4584,4579,4581,4585,4582,4586,4583,4587,6308,6312,6307,6309,6310,6313,6314,6311,6315,5652,5656,5651,5654,5657,5653,5658,5655,5659,3716,3720,3718,3715,3721,3722,3717,3723,3719,1992,1988,1989,1993,1987,1994,1990,1991,1995,2916,2920,2915,2917,2918,2921,2922,2919,2923,3384,3380,3381,3379,3385,3382,3386,3383,3387,1784,1780,1781,1782,1785,1779,1786,1787,1783,5236,5240,5237,5238,5242,5235,5241,5239,5243,7172,7176,7174,7177,7178,7173,7171,7179,7175,2964,2968,2963,2965,2970,2966,2969,2967,2971,5668,5672,5667,5669,5674,5670,5673,5675,5671,6420,6424,6419,6421,6425,6422,6426,6423,6427,4820,4824,4819,4821,4822,4825,4826,4823,4827,3300,3304,3301,3299,3302,3305,3306,3307,3303,6340,6344,6339,6341,6342,6345,6346,6343,6347,4916,4920,4915,4917,4918,4921,4922,4919,4923,3412,3416,3413,3414,3417,3411,3418,3419,3415,6436,6440,6435,6437,6438,6441,6442,6439,6443,2980,2984,2979,2981,2982,2985,2986,2983,2987,5508,5512,5507,5509,5514,5510,5513,5511,5515,3844,3848,3849,3846,3843,3845,3850,3847,3851,2548,2552,2547,2550,2549,2553,2554,2551,2555,4836,4840,4835,4837,4838,4841,4842,4839,4843,5704,5700,5699,5701,5705,5706,5702,5703,5707,5300,5304,5299,5301,5306,5302,5305,5307,5303,6676,6680,6675,6677,6678,6681,6682,6679,6683,1912,1908,1907,1913,1910,1909,1914,1911,1915,4948,4952,4947,4949,4950,4953,4954,4951,4955,6468,6472,6467,6469,6470,6473,6474,6471,6475,3636,3640,3635,3638,3637,3641,3642,3639,3643,3012,3016,3011,3013,3014,3017,3018,3015,3019,3428,3432,3427,3429,3434,3430,3433,3435,3431,5336,5332,5331,5333,5338,5337,5334,5335,5339,3476,3480,3478,3475,3481,3482,3477,3479,3483,5764,5768,5766,5763,5769,5770,5765,5771,5767,6692,6696,6691,6693,6694,6697,6698,6695,6699,1976,1972,1971,1974,1977,1973,1978,1975,1979,4964,4968,4963,4965,4966,4969,4970,4967,4971,3668,3672,3669,3674,3670,3667,3673,3675,3671,5432,5428,5429,5427,5433,5430,5434,5431,5435,6260,6264,6259,6261,6262,6265,6266,6263,6267,2804,2808,2803,2805,2806,2809,2810,2807,2811,5012,5016,5011,5013,5018,5014,5017,5015,5019,3496,3492,3494,3493,3497,3491,3498,3499,3495,6532,6536,6531,6533,6534,6537,6538,6535,6539,5348,5352,5349,5347,5350,5353,5354,5355,5351,6724,6728,6723,6725,6726,6729,6730,6727,6731,3684,3688,3683,3686,3685,3690,3689,3691,3687,5460,5464,5461,5462,5465,5459,5466,5467,5463,3732,3736,3734,3733,3737,3731,3738,3739,3735,7188,7192,7187,7190,7193,7189,7194,7195,7191,5028,5032,5027,5029,5030,5033,5034,5031,5035,5892,5896,5897,5894,5891,5893,5898,5895,5899,2004,2008,2005,2003,2010,2006,2009,2011,2007,6324,6328,6323,6325,6326,6329,6330,6327,6331,4596,4600,4595,4598,4597,4601,4602,4599,4603,3524,3528,3523,3526,3529,3525,3530,3527,3531,2932,2936,2931,2933,2934,2937,2938,2935,2939,3320,3316,3317,3318,3315,3321,3322,3323,3319,6788,6792,6787,6789,6790,6793,6794,6791,6795,5684,5688,5683,5686,5685,5689,5690,5687,5691,5060,5064,5059,5061,5062,5065,5066,5063,5067,5476,5480,5475,5477,5482,5478,5481,5483,5479,7204,7208,7203,7205,7210,7206,7209,7207,7211,2020,2024,2019,2021,2026,2025,2022,2023,2027,3752,3748,3747,3753,3750,3749,3754,3755,3751,6356,6360,6355,6357,6358,6361,6362,6359,6363,5524,5528,5526,5523,5529,5530,5525,5527,5531,2996,3000,2995,2997,2998,3001,3002,2999,3003,6452,6456,6451,6453,6454,6457,6458,6455,6459,5716,5720,5717,5722,5718,5715,5721,5723,5719,3864,3860,3859,3862,3865,3866,3861,3863,3867,6916,6920,6915,6917,6918,6921,6922,6919,6923,6372,6376,6371,6373,6374,6377,6378,6375,6379,4852,4856,4851,4853,4854,4857,4858,4855,4859,3780,3784,3781,3779,3786,3782,3785,3787,3783,7236,7240,7235,7237,7242,7238,7241,7239,7243,3444,3448,3445,3443,3450,3449,3446,3447,3451,5544,5540,5542,5541,5545,5539,5546,5547,5543,3880,3876,3875,3877,3878,3881,3882,3879,3883,6484,6488,6483,6485,6486,6489,6490,6487,6491,3028,3032,3027,3029,3030,3033,3034,3031,3035,5732,5736,5731,5734,5733,5738,5737,5739,5735,5780,5784,5782,5781,5785,5779,5786,5787,5783,5572,5576,5571,5574,5577,5573,5578,5575,5579,7300,7304,7299,7301,7306,7302,7305,7303,7307,6500,6504,6499,6501,6502,6505,6506,6503,6507,6708,6712,6707,6709,6713,6710,6714,6711,6715,4980,4984,4979,4981,4982,4985,4986,4983,4987,5368,5364,5365,5366,5363,5369,5370,5371,5367,3044,3048,3043,3045,3046,3049,3050,3047,3051,3508,3512,3507,3510,3513,3509,3514,3511,3515,3908,3912,3909,3907,3914,3910,3913,3915,3911,6548,6552,6547,6549,6550,6553,6554,6551,6555,5800,5796,5795,5801,5798,5797,5802,5803,5799,6740,6744,6739,6741,6742,6745,6746,6743,6747,3704,3700,3699,3705,3702,3701,3706,3703,3707,7428,7432,7427,7430,7433,7429,7434,7431,7435,5044,5048,5043,5045,5046,5049,5050,5047,5051,6564,6568,6563,6565,6566,6569,6570,6567,6571,3540,3544,3539,3542,3545,3541,3546,3547,3543,5912,5908,5907,5910,5913,5914,5909,5911,5915,3976,3972,3974,3971,3978,3977,3973,3975,3979,5828,5832,5829,5827,5834,5830,5833,5835,5831,6756,6760,6755,6757,6758,6761,6762,6759,6763,5492,5496,5493,5491,5498,5497,5494,5495,5499,2036,2040,2035,2037,2038,2041,2042,2039,2043,5928,5924,5923,5925,5926,5929,5930,5927,5931,7220,7224,7219,7221,7226,7225,7222,7227,7223,3560,3556,3558,3555,3562,3561,3557,3559,3563,3768,3764,3763,3766,3769,3765,3770,3767,3771,6804,6808,6803,6805,6806,6809,6810,6807,6811,6596,6600,6595,6597,6598,6601,6602,6599,6603,5076,5080,5075,5077,5078,5081,5082,5079,5083,7684,7688,7683,7685,7690,7686,7689,7687,7691,7256,7252,7254,7251,7257,7253,7258,7255,7259,6820,6824,6819,6822,6821,6825,6826,6823,6827,5092,5096,5091,5093,5094,5097,5098,5095,5099,5556,5560,5555,5558,5561,5557,5562,5559,5563,6388,6392,6387,6389,6390,6393,6394,6395,6391,5956,5960,5957,5955,5962,5958,5961,5963,5959,3896,3892,3891,3898,3893,3894,3897,3899,3895,3800,3796,3797,3795,3802,3798,3801,3803,3799,6932,6936,6931,6934,6933,6937,6938,6935,6939,5752,5748,5747,5753,5750,5749,5754,5751,5755,3812,3816,3811,3813,3818,3814,3817,3815,3819,7272,7268,7269,7267,7274,7270,7273,7271,7275,6852,6856,6851,6853,6854,6857,6858,6855,6859,5588,5592,5587,5590,5593,5589,5594,5595,5591,7316,7320,7315,7318,7321,7317,7322,7319,7323,6948,6952,6947,6949,6950,6953,6954,6951,6955,6024,6020,6022,6019,6026,6025,6021,6023,6027,6516,6520,6518,6515,6517,6521,6522,6519,6523,3924,3928,3925,3930,3926,3929,3923,3931,3927,3060,3064,3059,3061,3062,3065,3066,3063,3067,5608,5604,5606,5603,5610,5609,5605,5607,5611,5816,5812,5811,5814,5817,5813,5818,5815,5819,6980,6984,6979,6981,6982,6985,6986,6983,6987,7336,7332,7331,7333,7338,7334,7337,7335,7339,3940,3944,3939,3945,3942,3941,3946,3943,3947,6580,6584,6579,6581,6582,6586,6585,6583,6587,7444,7448,7446,7443,7449,7445,7450,7447,7451,3992,3988,3987,3989,3993,3990,3994,3991,3995,7364,7368,7363,7365,7370,7366,7369,7367,7371,5944,5940,5939,5946,5941,5942,5945,5947,5943,5848,5844,5845,5843,5850,5846,5849,5851,5847,6772,6776,6771,6773,6774,6777,6778,6775,6779,3572,3576,3573,3578,3571,3577,3574,3575,3579,7464,7460,7461,7462,7465,7466,7459,7463,7467,6612,6616,6611,6613,6614,6617,6618,6615,6619,4004,4008,4003,4006,4009,4005,4010,4007,4011,7044,7048,7043,7045,7046,7049,7050,7047,7051,5860,5864,5859,5861,5866,5862,5865,5863,5867,6836,6840,6835,6837,6838,6841,6842,6839,6843,7492,7496,7491,7494,7497,7493,7498,7499,7495,6628,6632,6627,6629,6633,6630,6634,6631,6635,7700,7704,7699,7702,7705,7701,7706,7703,7707,5972,5976,5973,5978,5974,5977,5971,5979,5975,5108,5112,5107,5109,5110,5113,5114,5111,5115,4040,4036,4037,4041,4035,4042,4038,4039,4043,3832,3828,3829,3830,3833,3827,3834,3835,3831,7284,7288,7285,7286,7290,7283,7289,7287,7291,5988,5992,5987,5993,5990,5989,5994,5991,5995,7716,7720,7715,7717,7722,7718,7721,7723,7719,6868,6872,6867,6869,6870,6873,6874,6871,6875,6040,6036,6035,6037,6041,6038,6042,6039,6043,6964,6968,6963,6965,6966,6969,6970,6967,6971,7556,7560,7555,7557,7562,7558,7561,7559,7563,6884,6888,6883,6885,6886,6889,6890,6887,6891,7752,7748,7747,7749,7753,7754,7750,7751,7755,5620,5624,5621,5626,5619,5625,5622,5623,5627,7348,7352,7347,7349,7354,7350,7353,7355,7351,6052,6056,6051,6054,6057,6053,6058,6055,6059,3960,3956,3955,3961,3958,3957,3962,3959,3963,6996,7000,6995,6997,6998,7001,7002,6999,7003,7384,7380,7379,7381,7386,7385,7382,7383,7387,7812,7816,7814,7811,7817,7818,7813,7819,7815,4024,4020,4019,4022,4025,4021,4026,4023,4027,6088,6084,6085,6089,6083,6090,6086,6087,6091,7012,7016,7011,7013,7014,7017,7018,7015,7019,7480,7476,7477,7475,7481,7478,7482,7479,7483,5880,5876,5877,5878,5881,5875,5882,5883,5879,7060,7064,7059,7061,7066,7062,7065,7063,7067,7396,7400,7397,7395,7398,7401,7402,7403,7399,7508,7512,7509,7510,7513,7507,7514,7515,7511,7940,7944,7945,7942,7939,7941,7946,7943,7947,7076,7080,7075,7077,7078,7081,7082,7079,7083,4052,4056,4053,4051,4058,4054,4057,4059,4055,6644,6648,6643,6646,6645,6649,6650,6647,6651,6008,6004,6003,6009,6006,6005,6010,6007,6011,7732,7736,7731,7734,7733,7737,7738,7735,7739,7108,7112,7107,7109,7110,7113,7114,7111,7115,7524,7528,7523,7525,7530,7526,7529,7531,7527,4068,4072,4067,4069,4074,4073,4070,4071,4075,7572,7576,7574,7571,7577,7578,7573,7575,7579,6072,6068,6067,6070,6073,6069,6074,6071,6075,7764,7768,7765,7770,7766,7763,7769,7771,7767,6900,6904,6899,6901,6902,6905,6906,6903,6907,7592,7588,7590,7589,7593,7587,7594,7595,7591,7780,7784,7779,7782,7781,7786,7785,7787,7783,7828,7832,7830,7829,7833,7827,7834,7835,7831,6100,6104,6101,6099,6106,6102,6105,6107,6103,7620,7624,7619,7622,7625,7621,7626,7623,7627,7028,7032,7027,7029,7030,7033,7034,7031,7035,7416,7412,7413,7414,7411,7417,7418,7419,7415,7848,7844,7843,7849,7846,7845,7850,7851,7847,6116,6120,6115,6117,6122,6121,6118,6119,6123,7092,7096,7091,7093,7094,7097,7098,7095,7099,7960,7956,7955,7958,7961,7962,7957,7959,7963,7876,7880,7877,7875,7882,7878,7881,7883,7879,7540,7544,7541,7539,7546,7545,7542,7543,7547,7976,7972,7971,7973,7974,7977,7978,7975,7979,4084,4088,4083,4085,4086,4089,4090,4087,4091,7124,7128,7123,7125,7126,7129,7130,7127,7131,7140,7144,7139,7141,7142,7145,7146,7143,7147,7604,7608,7603,7606,7609,7605,7610,7607,7611,8004,8008,8005,8003,8010,8006,8009,8011,8007,7800,7796,7795,7801,7798,7797,7802,7799,7803,7636,7640,7635,7638,7641,7637,7642,7643,7639,8072,8068,8070,8067,8074,8073,8069,8071,8075,6132,6136,6131,6133,6134,6137,6138,6135,6139,7656,7652,7654,7651,7658,7657,7653,7655,7659,7864,7860,7859,7862,7865,7861,7866,7863,7867,7992,7988,7987,7994,7989,7990,7993,7995,7991,7896,7892,7893,7891,7898,7894,7897,7899,7895,7908,7912,7907,7909,7914,7910,7913,7911,7915,8020,8024,8021,8026,8022,8025,8019,8027,8023,7156,7160,7155,7157,7158,7161,7162,7159,7163,8036,8040,8035,8041,8038,8037,8042,8039,8043,8088,8084,8083,8085,8089,8086,8090,8087,8091,7668,7672,7669,7674,7667,7673,7670,7671,7675,8100,8104,8099,8102,8105,8101,8106,8103,8107,8136,8132,8133,8137,8131,8138,8134,8135,8139,7928,7924,7925,7926,7929,7923,7930,7931,7927,8056,8052,8051,8057,8054,8053,8058,8055,8059,8120,8116,8115,8118,8121,8117,8122,8119,8123,8148,8152,8149,8147,8154,8150,8153,8155,8151,8164,8168,8163,8165,8170,8169,8166,8167,8171,8180,8184,8179,8181,8182,8185,8186,8183,8187]。
图11为本申请提供的一种编码方法实施例的流程图,本实施例的执行主体可以是基站或终端等发送设备,本实施例中以I和F根据N、K、B、LB*B和HB*B通过码率分配方法确定为例进行说明,如图11所示,本实施例的方法可以包括:
S401、获取待编码信息和母码长度N,待编码信息包括K个信息比特。
S402、根据N、K、B、LB*B和HB*B通过码率分配方法确定I和F。
具体地,一个N长的Polar码可以由2个N/2的外码(也称外码子码)和一级内码极化编码组成,2个外码子码中一个外码子码的码率小于另一个外码子码的码率,即2个外码子码包括较低码率外码和较高码率外码,较低码率外码的码率为R-,较高码率外码的码率为R+。其中N/2长的外码子码可以继续分解成N/4长的外码子码。以此类推,直到分解成最外层的外码子码,即码长为1的外码子码,码长为1的外码子码的码率只可能是0或者是1,确定出码长为1的外码子码的码率,码率若是0则对应外码子码为冻结比特,码率若是1则对应外码子码为信息比特,I和F也就相应确定。
S402可以包括:
S4021、根据目标码率R和码率分配条件进行第n+1级至第n级的两个外码子码的码率分配。
具体来说,极化码的码长N=2n,n=log2(N),n+1为编/译码的级数,在极化码的篱笆图中,从左到右分别为第1级、第2级至第n+1级,码率分配条件为2*Rx=Rx-+Rx+,其中,Rx为当前级的外码子码的码率,Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,Rx=R,即Rx为第n+1级的一个外码子码的码率,第n级包括两个外码子码。
S4021、根据第s级的外码子码的码率和码率分配条件,进行第s级至第s-1级的外码子码的码率分配,s大于或等于2且小于或等于n,即2≤s≤n。
具体来说,从极化码的篱笆图来看,是从右向左逐级进行外码子码的码率分配。
S4022、当s=log2(B)+1,即在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx、Rx-和Rx+满足码率分配条件的同时,还满足第一条件,第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
其中,B为外码子码的码长,可以理解的是,LB为低码率的门限,HB为高码率的门限,LB与HB之间的码率为中间码率,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,第log2(B)级的外码子码的码率包括Rx和Rx-,0≤Rx-≤Rx+≤LB时,即Rx-大于或等于0且小于或等于LB,Rx+大于或等于0且小于或等于LB,Rx-小于或等于Rx+,其中,在码率为0时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为低码率,HB≤Rx-≤Rx+≤1时,即Rx-大于或等于HB且小于或等于1,Rx+大于或等于HB且小于或等于1,Rx-小于或等于Rx+,其中,在码率为1时,R-可以等于R+,可以使得第log2(B)级的外码子码的码率都为高码率,0≤Rx-≤LB<HB≤Rx+≤1,即Rx-大于或等于0且小于或等于LB,Rx+大于或等于HB且小于或等于1,LB小于HB,可以使得第log2(B)级的外码子码的码率包括高码率和低码率,没有中间码率,其中的B为外码子码的码长,因此,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码(即低码率外码子码)和第二类型外码子码(即高码率外码子码)组成,即没有中间码率的外码子码。
S4023、在进行第log2(B)级至第log2(B)-1级的外码子码的码率分配时,以及在进行log2(B)-1级之后的外码子码的码率分配时,均根据码率分配条件逐级分配,直到确定出码长为1的外码子码的码率。
具体地,码长为1的外码子码的码率只可能是0或者是1,确定出码长为1的外码子码的码率,码率若是0则对应外码子码为冻结比特,码率若是1则对应外码子码为信息比特,I和F也就相应确定。
下面以N=8,K=4,R=4/8=0.5为例,对S4021-S4023的码率分配过程进行举例说明。
图12为N=8的极化码的篱笆图示意图,N=8,K=4,R=4/8=0.5,n=log2(N)=3,编/译码的级数为n+1=4,一共4级,从左到右分别为第1级、第2级、第3级和第4级,首先,根据目标码率R=0.5和码率分配条件进行第4级至第3级的两个外码子码的码率分配,根据码率分配条件2*Rx=Rx-+Rx+,Rx=R=0.5,第3级的两个外码子码的码率可以分配为接着分别根据和进行第3级至第2级的外码子码的码率分配,第2级有4个外码子码,对应的两个外码子码的码率可以分配为Rx-=0,对应的两个外码子码的码率可以分配为Rx+=1,接着分别根据0、和1进行第2级至第1级的外码子码的码率分配,第1级的外码子码的码长为1,码长为1的外码子码的码率是0或者是1,确定出码长为1的外码子码的码率,码率若是0则对应外码子码为冻结比特,码率若是1则对应外码子码为信息比特,I和F也就相应确定。图12是以N=8示出了逐级码率分配的过程,是以仅满足码率分配条件为例进行说明。在码长N较长时,在进行逐级码率分配时,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx、Rx-和Rx+满足码率分配条件的同时,还需满足上述第一条件,使得所有的外码子码的码率中没有中间码率。
S403、根据I和F进行极化编码。
具体地,确定了I和F后,分别确定各个子信道上的比特的值,例如依照I放置信息比特,依照F放置冻结比特,对确定的所有比特进行极化编码,得到编码后比特序列。
本实施例提供的编码方法,通过获取包括K个信息比特的待编码信息和母码长度N后,根据N、K、B、LB*B和HB*B通过码率分配方法确定I和F,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,Rx、Rx-和Rx+满足码率分配条件的同时,还满足第一条件,从而,按照该方式确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码中没有中间码率的外码子码,因此在译码端译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。
图13为本申请提供的一种译码方法实施例的流程图,本实施例的执行主体可以是基站或终端等接收设备,如图13所示,本实施例的方法可以包括:
S501、获取待译码信息、待译码信息的长度M、母码长度N和信息比特数K。
其中,待译码信息即发送设备极化编码后的信息,即编码后比特序列,获取到待译码信息后,可以获取到待译码信息的长度M,母码长度(也即待编码信息的长度) 是上取整函数。K的值可以是根据目标码率R和M确定,K=M*R,K和M可以为输入值。
S502、根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成。
其中,第一类型外码子码的码率小于或等于第一阈值LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,其中,LB大于0,HB小于或等于1,K、B、N和X为正整数。
其中,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,具体的确定方式与编码端的该过程类似,详细可参照S102的具体实施过程,此处不再赘述。
S503、根据外码子码的码率对待译码信息进行极化译码,其中,对码率小于或等于LB的外码子码进行并行译码,对码率大于或等于HB的外码子码进行并行译码。
具体来说,S502中确定的I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由高码率的外码子码和低码率的外码子码组成,或者,X个外码子码由高码率的外码子码、低码率的外码子码和一个中间码率的外码子码组成,由于没有中间码率的外码子码或者只有一个中间码率的外码子码,因此在译码时对码率小于或等于LB的外码子码可以进行并行译码,对码率大于或等于HB的外码子码可以进行并行译码,降低译码时延,提高译码吞吐率。
具体地,可以并行译码的外码子码有:
Rate-0子码:外码子码中全部为冻结比特;
Rate-1子码:外码子码中全部为信息比特;
REP子码:外码子码中只有一个信息比特,其余全部为冻结比特;
SPC子码:外码子码中只有一个冻结比特,其余全部为信息比特。
本实施例中,通过S502中确定I的方式,可以将Rate-0子码、Rate-1子码、REP子码和SPC子码的数量的比例提高,从而可以使用快速或简化的SC/SCL译码算法,能够使得SC和SCL译码的时延更低,吞吐更高,功耗更低。
本实施例提供的译码方法,通过获取待译码信息、待译码信息的长度M、母码长度N和信息比特数K,根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,最后根据外码子码的码率对待译码信息进行极化译码,其中,对码率小于或等于LB的外码子码进行并行译码,对码率大于或等于HB的外码子码进行并行译码。由于I中的子信道序号对应的信息比特分布在X个外码子码中,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,其中的第一类型外码子码的码率小于或等于LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,LB和HB划分低码率外码子码、中间码率外码子码和高码率外码子码的门限,因此,X个外码子码由高码率的外码子码和低码率的外码子码组成,或者,X个外码子码由高码率的外码子码、低码率的外码子码和一个中间码率的外码子码组成,由于没有中间码率的外码子码或者只有一个中间码率的外码子码,因此在译码时可以对高码率外码子码和低码率外码子码并行译码,降低译码时延,提高译码吞吐率。
为了实现上述本申请实施例提供的方法中的各功能,接收设备、发送设备均可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。接收设备可以是终端设备也可以是网络设备,同样的,发送设备可以是终端设备也可以是网络设备。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
基于同一技术构思,本申请实施例还提供了以下通信装置(包括编码装置、译码装置),可以包括执行上述方法实施例中发送端或者接收端的方法/操作/步骤/动作所一一对应的模块或单元,该单元可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。
图14为本申请提供的一种编码装置实施例的结构示意图,如图14所示,本实施例的装置可以包括:获取模块11、确定模块12和编码模块13,其中,
获取模块11用于获取待编码信息和母码长度N,所述待编码信息包括K个信息比特;
确定模块12用于根据所述K和所述N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,所述I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,所述X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,所述X个外码子码由所述第一类型外码子码、所述第二类型外码子码和一个第三类型外码子码组成,所述第一类型外码子码的码率小于或等于第一阈值LB,所述第二类型外码子码的码率大于或等于第二阈值HB,所述第三类型外码子码的码率大于所述LB且小于所述HB,其中,所述LB大于0且小于所述HB,所述HB小于或等于1,所述K、所述B、所述N和所述X为正整数;
编码模块13用于根据所述I和所述F进行极化编码。
可选的,如何根据K和N确定I,本实施例中有如下三种可实施的方式:
方式一、所述I根据所述K、第一可靠度序列Q1和第二可靠度序列Q2确定;
所述Q1中的子信道序号根据子信道可靠度按照第一顺序排列,所述第一顺序为从大到小或从小到大;
所述Q2中的子信道序号根据外码子码的可靠度按照所述第一顺序排列,其中,属于一个外码子码中的子信道序号在所述Q2中连续且可靠度按照所述第一顺序排列。
可选的,所述Q1和所述Q2根据Q、所述B、所述LB和所述HB确定,所述Q为与所述Nmax对应的各个子信道的可靠度序列,或者,所述Q1和所述Q2为预配置的。
可选的,所述LB和所述HB为预定义的,或者,所述B、所述LB和所述HB是通过指示信息指示的。
可选的,所述I中的子信道序号为所述Q1中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号和所述Q2中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号和所述Q2中的至少一组子信道序号,所述一组子信道序号包括的子信道序号个数为BM,所述BM为一个外码子码中属于中间码率的子信道的数量。
进一步地,确定模块12用于:在根据所述K、所述Q1和所述Q2确定所述I时,依次比较所述Q1中可靠度最大的一个子信道的可靠度和所述Q2中可靠度最大的一个子信道的可靠度,将所述Q1和所述Q2中当前可靠度最大的一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K;或者,
依次比较所述Q1中可靠度最大的一个子信道的可靠度W1和所述Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将所述Q1中当前可靠度最大的一个子信道序号确定为所述I中的元素,否则将所述Q2中当前可靠度最大的BM个子信道序号确定为所述I中的元素;在已确定的所述I中的子信道序号的数量K’满足K-K’小于所述BM时,将所述Q1中可靠度最大的至少一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K。
方式二、I根据所述K和Q3确定,所述Q3根据所述N、所述Q1和所述Q2确定,或者,所述Q3为预配置的。
可选的,所述Q3由所述Q1和所述Q2中小于或等于所述N的子信道序号或者小于所述N的子信道序号构成,所述Q1和所述Q2中的子信道序号在所述Q3中按照可靠度从大到小或从小到大的顺序排列。
可选的,所述Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,所述I根据所述K、所述Q1、Q21、Q22、……和Q2p确定。
可选的,I中的子信道序号为所述Q1中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号与所述Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号与所述Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,所述一组子信道序号包括的子信道序号个数为Bi,所述Bi=BM/P,所述BM为一个外码子码中属于中间码率的子信道的数量。
进一步地,确定模块12用于:在根据所述K、所述Q1、Q21、Q22、……和Q2p确定所述I时,依次比较所述Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将所述Q1和所述Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K;或者,
依次比较所述Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的所述Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将所述Q1中当前可靠度最大的一个子信道序号确定为所述I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为所述I中的元素,在已确定的所述I中的子信道序号的数量K’满足K-K’小于所述Bi时,将所述Q1中可靠度最大的至少一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K。
可选的,所述I根据所述K和Q3确定,所述Q3根据所述N、所述Q1、所述Q21、所述Q22、……和所述Q2p确定,或者,所述Q3为预配置的。
可选的,Q3由所述Q1、所述Q21、所述Q22、……和所述Q2p中小于或等于所述N的子信道序号或者小于所述N的子信道序号构成,所述Q1、所述Q21、所述Q22、……和所述Q2p中的子信道序号在所述Q3中按照可靠度从大到小或从小到大的顺序排列。
可选的,所述I中的元素为所述Q3中可靠度最大的所述K个子信道序号。
可选的,所述外码子码的可靠度为所述外码子码中可靠度最低的或最高的子信道的可靠度;或者,
所述外码子码的可靠度为所述外码子码中第j个子信道的可靠度,1<j<m,m为所述外码子码包含的子信道序号的总数;或者,
所述外码子码的可靠度为所述外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
方式三、所述I和所述F根据所述N、所述K、所述B、LB*B和HB*B通过码率分配方法确定。
可选的,码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,所述所述码率分配条件为2*Rx=Rx-+Rx+,其中,所述Rx为当前级的外码子码的码率,所述Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,所述Rx=R,所述n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,所述Rx和所述Rx-满足所述码率分配条件的同时,还满足第一条件,所述第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
其中,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,可以为:
根据所述R和所述码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和所述码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
其中,进一步地,所述I和所述F根据已确定出的码长为1的外码子码的码率确定。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图15为本申请提供的一种译码装置实施例的结构示意图,如图15所示,本实施例的装置可以包括:获取模块21、确定模块22和译码模块23,其中,
获取模块21用于获取待译码信息、待译码信息的长度M、母码长度N和信息比特数K;
确定模块22用于根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码的码率小于或等于第一阈值LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,其中,LB大于0且小于HB,HB小于或等于1,K、B、N和X为正整数;
译码模块23用于根据外码子码的码率对待译码信息进行极化译码,其中,对码率小于或等于LB的外码子码进行并行译码,对码率大于或等于HB的外码子码进行并行译码。
可选的,如何根据K和N确定I,本实施例中有如下三种可实施的方式:
方式一、所述I根据所述K、第一可靠度序列Q1和第二可靠度序列Q2确定;
所述Q1中的子信道序号根据子信道可靠度按照第一顺序排列,所述第一顺序为从大到小或从小到大;
所述Q2中的子信道序号根据外码子码的可靠度按照所述第一顺序排列,其中,属于一个外码子码中的子信道序号在所述Q2中连续且可靠度按照所述第一顺序排列。
可选的,所述Q1和所述Q2根据Q、所述B、所述LB和所述HB确定,所述Q为与所述Nmax对应的各个子信道的可靠度序列,或者,所述Q1和所述Q2为预配置的。
可选的,所述LB和所述HB为预定义的,或者,所述B、所述LB和所述HB是通过指示信息指示的。
可选的,所述I中的子信道序号为所述Q1中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号和所述Q2中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号和所述Q2中的至少一组子信道序号,所述一组子信道序号包括的子信道序号个数为BM,所述BM为一个外码子码中属于中间码率的子信道的数量。
进一步地,确定模块12用于:在根据所述K、所述Q1和所述Q2确定所述I时,依次比较所述Q1中可靠度最大的一个子信道的可靠度和所述Q2中可靠度最大的一个子信道的可靠度,将所述Q1和所述Q2中当前可靠度最大的一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K;或者,
依次比较所述Q1中可靠度最大的一个子信道的可靠度W1和所述Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将所述Q1中当前可靠度最大的一个子信道序号确定为所述I中的元素,否则将所述Q2中当前可靠度最大的BM个子信道序号确定为所述I中的元素;在已确定的所述I中的子信道序号的数量K’满足K-K’小于所述BM时,将所述Q1中可靠度最大的至少一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K。
方式二、I根据所述K和Q3确定,所述Q3根据所述N、所述Q1和所述Q2确定,或者,所述Q3为预配置的。
可选的,所述Q3由所述Q1和所述Q2中小于或等于所述N的子信道序号或者小于所述N的子信道序号构成,所述Q1和所述Q2中的子信道序号在所述Q3中按照可靠度从大到小或从小到大的顺序排列。
可选的,所述Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,所述I根据所述K、所述Q1、Q21、Q22、……和Q2p确定。
可选的,I中的子信道序号为所述Q1中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号与所述Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号与所述Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,所述一组子信道序号包括的子信道序号个数为Bi,所述Bi=BM/P,所述BM为一个外码子码中属于中间码率的子信道的数量。
进一步地,确定模块12用于:在根据所述K、所述Q1、Q21、Q22、……和Q2p确定所述I时,依次比较所述Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将所述Q1和所述Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K;或者,
依次比较所述Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的所述Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将所述Q1中当前可靠度最大的一个子信道序号确定为所述I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为所述I中的元素,在已确定的所述I中的子信道序号的数量K’满足K-K’小于所述Bi时,将所述Q1中可靠度最大的至少一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K。
可选的,所述I根据所述K和Q3确定,所述Q3根据所述N、所述Q1、所述Q21、所述Q22、……和所述Q2p确定,或者,所述Q3为预配置的。
可选的,Q3由所述Q1、所述Q21、所述Q22、……和所述Q2p中小于或等于所述N的子信道序号或者小于所述N的子信道序号构成,所述Q1、所述Q21、所述Q22、……和所述Q2p中的子信道序号在所述Q3中按照可靠度从大到小或从小到大的顺序排列。
可选的,所述I中的元素为所述Q3中可靠度最大的所述K个子信道序号。
可选的,所述外码子码的可靠度为所述外码子码中可靠度最低的或最高的子信道的可靠度;或者,
所述外码子码的可靠度为所述外码子码中第j个子信道的可靠度,1<j<m,m为所述外码子码包含的子信道序号的总数;或者,
所述外码子码的可靠度为所述外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
方式三、所述I和所述F根据所述N、所述K、所述B、LB*B和HB*B通过码率分配方法确定。
可选的,码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,所述所述码率分配条件为2*Rx=Rx-+Rx+,其中,所述Rx为当前级的外码子码的码率,所述Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,所述Rx=R,所述n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,所述Rx和所述Rx-满足所述码率分配条件的同时,还满足第一条件,所述第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
其中,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,可以为:
根据所述R和所述码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和所述码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
其中,进一步地,所述I和所述F根据已确定出的码长为1的外码子码的码率确定。
本实施例的装置,可以用于执行图13所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图16为本申请提供的一种编码装置结构示意图,如图16所示,该编码装置包括:收发单元31和处理单元32,其中,
收发单元31用于获取待编码信息和母码长度N,所述待编码信息包括K个信息比特;
具体地,处理单元32用于实现图4所示的编码方法中的各个步骤和/或流程。具体可以参见前面方法实施例中的相关描述。
例如,处理单元32用于根据所述K和所述N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,所述I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,所述X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,所述X个外码子码由所述第一类型外码子码、所述第二类型外码子码和一个第三类型外码子码组成,所述第一类型外码子码的码率小于或等于第一阈值LB,所述第二类型外码子码的码率大于或等于第二阈值HB,所述第三类型外码子码的码率大于所述LB且小于所述HB,其中,所述LB大于0且小于所述HB,所述HB小于或等于1,所述K、所述B、所述N和所述X为正整数;
处理单元32还用于根据所述I和所述F进行极化编码。
可选的,收发单元31还用于发送编码后比特序列。
图17为本申请提供的一种译码装置结构示意图,如图17所示,该译码装置包括:收发单元41和处理单元42,其中,
收发单元41用于获取待译码信息、待译码信息的长度M、母码长度N和信息比特数K;
处理单元42用于实现图13所示的译码方法中的各个步骤和/或流程。具体可以参见前面方法实施例中的相关描述。
例如,处理单元42用于根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码的码率小于或等于第一阈值LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,其中,LB大于0且小于HB,HB小于或等于1,K、B、N和X为正整数。
处理单元42还用于根据外码子码的码率对待译码信息进行极化译码,其中,对码率小于或等于LB的外码子码进行并行译码,对码率大于或等于HB的外码子码进行并行译码。
可选的,收发单元41还用于发送译码后信息。
图18为本申请提供的一种编码装置结构示意图,该编码装置包括:
收发器301,用于获取待编码信息。
至少一个处理器302,用于调用并执行存储器中的程序指令,以实现图4所示的编码方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
可选的,该编码装置还包括存储器303,存储器303用于存储程序指令,该存储器还可以是flash(闪存)。
可选地,存储器303既可以是独立的,也可以跟处理器302集成在一起。
当存储器303是独立于处理器302之外的器件时,该编码装置还可以包括:
总线304,用于连接存储器303和处理器302。总线在图18中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图18中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
该编码装置可以用于执行上述方法实施例中发送设备对应的各个步骤和/或流程。该编码装置可以是终端或网络设备,也可以是终端或网络设备中的装置,或者是能够和终端或网络设备匹配使用的装置。其中,该编码装置可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
图19为本申请提供的一种译码装置结构示意图,该译码装置包括:
收发器401,用于获取待译码信息。
至少一个处理器402,用于调用并执行存储器中的程序指令,以实现图13所示的译码方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
可选的,该编码装置还包括存储器403,存储器403用于存储程序指令,该存储器还可以是flash(闪存)。
可选地,存储器403既可以是独立的,也可以跟处理器402集成在一起。
当存储器403是独立于处理器402之外的器件时,该译码装置还可以包括:
总线404,用于连接存储器403和处理器402。总线在图19中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
该译码装置可以用于执行上述方法实施例中接收设备对应的各个步骤和/或流程。该译码装置可以是终端或网络设备,也可以是终端或网络设备中的装置,或者是能够和终端或网络设备匹配使用的装置。其中,该译码装置可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
本申请中的处理器(例如图18中的处理器302或图19中的处理器402)可以是一个或多个中央处理器(Central Processing Unit,CPU),在处理器302或处理器402是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。处理器402可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请中的存储器(例如图18中的存储器303或图19中的存储器403)可以包括但不限于硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等非易失性存储器,随机存储记忆体(Random Access Memory,RAM)、可擦除可编程只读存储器(ErasableProgrammable ROM,EPROM)、只读存储器(Read-Only Memory,ROM)或便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM)等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
图20为本申请提供的一种通信装置结构示意图,参见图20,本申请实施例还提供了一种通信装置,可用于实现上述方法中发送设备或接收设备的功能,该通信装置可以是通信装置或者通信装置中的芯片。该通信装置包括:
至少一个输入输出接口510和逻辑电路520。输入输出接口510可以是输入输出电路。逻辑电路520可以是信号处理器、芯片,或其他可以实现本申请方法的集成电路。
其中,至少一个输入输出接口510用于信号或数据的输入或输出。举例来说,当该通信装置为发送端设备或者用于发送端设备时,输入输出接口510用于获取待编码信息,输入输出接口510还用于输出编码后比特序列。
举例来说,当该通信装置为接收端设备或者用于接收端设备时,输入输出接口510用于获取待译码信息,输入输出接口510还用于输出译码后信息。
其中,逻辑电路520用于执行本申请实施例提供的任意一种方法的部分或全部步骤。逻辑电路可以实现图16所示装置中的处理单元32、图17所示装置中的处理单元42、图18所示装置中的处理器302、以及图19所示装置中的处理器402所实现的功能。举例来说,当该通信装置为发送端设备或者用于发送端设备时,用于执行上述编码方法实施例中的各种步骤,例如逻辑电路520用于根据所述K和所述N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,所述I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,所述X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,所述X个外码子码由所述第一类型外码子码、所述第二类型外码子码和一个第三类型外码子码组成,所述第一类型外码子码的码率小于或等于第一阈值LB,所述第二类型外码子码的码率大于或等于第二阈值HB,所述第三类型外码子码的码率大于所述LB且小于所述HB,其中,所述LB大于0且小于所述HB,所述HB小于或等于1,所述K、所述B、所述N和所述X为正整数,根据所述I和所述F进行极化编码。
举例来说,当该通信装置为接收端设备或者用于接收端设备时,用于执行上述译码方法实施例中的各种步骤,例如逻辑电路520用于根据K和N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,X个外码子码由第一类型外码子码、第二类型外码子码和一个第三类型外码子码组成,第一类型外码子码的码率小于或等于第一阈值LB,第二类型外码子码的码率大于或等于第二阈值HB,第三类型外码子码的码率大于LB且小于HB,其中,LB大于0且小于HB,HB小于或等于1,K、B、N和X为正整数,根据外码子码的码率对待译码信息进行极化译码,其中,对码率小于或等于LB的外码子码进行并行译码,对码率大于或等于HB的外码子码进行并行译码。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有执行指令,当编码装置的至少一个处理器执行该执行指令时,编码装置执行上述的各种实施方式提供的编码方法。
本申请还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在计算机可读存储介质中。编码装置的至少一个处理器可以从计算机可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得编码装置实施上述的各种实施方式提供的编码方法。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有执行指令,当译码装置的至少一个处理器执行该执行指令时,译码装置执行上述的各种实施方式提供的译码方法。
本申请还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在计算机可读存储介质中。译码装置的至少一个处理器可以从计算机可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得译码装置实施上述的各种实施方式提供的译码方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (42)
1.一种编码方法,其特征在于,包括:
获取待编码信息和母码长度N,所述待编码信息包括K个信息比特;
根据所述K和所述N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,所述I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,所述X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,所述X个外码子码由所述第一类型外码子码、所述第二类型外码子码和一个第三类型外码子码组成,所述第一类型外码子码的码率小于或等于第一阈值LB,所述第二类型外码子码的码率大于或等于第二阈值HB,所述第三类型外码子码的码率大于所述LB且小于所述HB,其中,所述LB大于0且小于所述HB,所述HB小于或等于1,所述K、所述B、所述N和所述X为正整数;
根据所述I和所述F进行极化编码。
3.根据权利要求2所述的方法,其特征在于,
所述Q1和所述Q2根据Q、所述B、所述LB和所述HB确定,所述Q为与所述Nmax对应的各个子信道的可靠度序列;或者,
所述Q1和所述Q2为预配置的。
4.根据权利要求3所述的方法,其特征在于,
所述B、所述LB和所述HB为预定义的;或者,
所述B、所述LB和所述HB是通过指示信息指示的。
5.根据权利要求2-4任一项所述的方法,其特征在于,
所述I中的子信道序号为所述Q1中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号和所述Q2中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号和所述Q2中的至少一组子信道序号,所述一组子信道序号包括的子信道序号个数为BM,所述BM为一个外码子码中属于中间码率的子信道的数量。
6.根据权利要求5所述的方法,其特征在于,所述在根据所述K、所述Q1和所述Q2确定所述I时,
依次比较所述Q1中可靠度最大的一个子信道的可靠度和所述Q2中可靠度最大的一个子信道的可靠度,将所述Q1和所述Q2中当前可靠度最大的一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K;或者,
依次比较所述Q1中可靠度最大的一个子信道的可靠度W1和所述Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将所述Q1中当前可靠度最大的一个子信道序号确定为所述I中的元素,否则将所述Q2中当前可靠度最大的BM个子信道序号确定为所述I中的元素;在已确定的所述I中的子信道序号的数量K’满足K-K’小于所述BM时,将所述Q1中可靠度最大的至少一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K。
7.根据权利要求2所述的方法,其特征在于,所述I根据所述K和Q3确定,所述Q3根据所述N、所述Q1和所述Q2确定,或者,所述Q3为预配置的。
8.根据权利要求7所述的方法,其特征在于,
所述Q3由所述Q1和所述Q2中小于或等于所述N的子信道序号或者小于所述N的子信道序号构成,所述Q1和所述Q2中的子信道序号在所述Q3中按照可靠度从大到小或从小到大的顺序排列。
9.根据权利要求2所述的方法,其特征在于,所述Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,所述I根据所述K、所述Q1、Q21、Q22、……和Q2p确定。
10.根据权利要求9所述的方法,其特征在于,
所述I中的子信道序号为所述Q1中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号与所述Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号与所述Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,所述一组子信道序号包括的子信道序号个数为Bi,所述Bi=BM/P,所述BM为一个外码子码中属于中间码率的子信道的数量。
11.根据权利要求9或10所述的方法,其特征在于,所述在根据所述K、所述Q1、Q21、Q22、……和Q2p确定所述I时,
依次比较所述Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将所述Q1和所述Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K;或者,
依次比较所述Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的所述Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将所述Q1中当前可靠度最大的一个子信道序号确定为所述I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为所述I中的元素,在已确定的所述I中的子信道序号的数量K’满足K-K’小于所述Bi时,将所述Q1中可靠度最大的至少一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K。
12.根据权利要求9所述的方法,其特征在于,所述I根据所述K和Q3确定,所述Q3根据所述N、所述Q1、所述Q21、所述Q22、……和所述Q2p确定,或者,所述Q3为预配置的。
13.根据权利要求12所述的方法,其特征在于,
所述Q3由所述Q1、所述Q21、所述Q22、……和所述Q2p中小于或等于所述N的子信道序号或者小于所述N的子信道序号构成,所述Q1、所述Q21、所述Q22、……和所述Q2p中的子信道序号在所述Q3中按照可靠度从大到小或从小到大的顺序排列。
14.根据权利要求7或12所述的方法,其特征在于,所述I中的元素为所述Q3中可靠度最大的所述K个子信道序号。
15.根据权利要求2-14任一项所述的方法,其特征在于,
所述外码子码的可靠度为所述外码子码中可靠度最低的或最高的子信道的可靠度;或者,
所述外码子码的可靠度为所述外码子码中第j个子信道的可靠度,1<j<m,m为所述外码子码包含的子信道序号的总数;或者,
所述外码子码的可靠度为所述外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
16.根据权利要求1所述的方法,其特征在于,所述I和所述F根据所述N、所述K、所述B、LB*B和HB*B通过码率分配方法确定。
17.根据权利要求16所述的方法,其特征在于,所述码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,所述所述码率分配条件为2*Rx=Rx-+Rx+,其中,所述Rx为当前级的外码子码的码率,所述Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,所述Rx=R,所述n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,所述Rx和所述Rx-满足所述码率分配条件的同时,还满足第一条件,所述第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
18.根据权利要求17所述的方法,其特征在于,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,包括:
根据所述R和所述码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和所述码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
19.根据权利要求17或18所述的方法,其特征在于,所述I和所述F根据已确定出的码长为1的外码子码的码率确定。
20.一种编码装置,其特征在于,包括:
获取模块,用于获取待编码信息和母码长度N,所述待编码信息包括K个信息比特;
确定模块,用于根据所述K和所述N确定信息比特的子信道对应的集合I和冻结比特的子信道对应的集合F,所述I中的子信道序号对应的信息比特分布在X个外码子码中,每个外码子码的码长为B,所述X个外码子码由第一类型外码子码和第二类型外码子码组成,或者,所述X个外码子码由所述第一类型外码子码、所述第二类型外码子码和一个第三类型外码子码组成,所述第一类型外码子码的码率小于或等于第一阈值LB,所述第二类型外码子码的码率大于或等于第二阈值HB,所述第三类型外码子码的码率大于所述LB且小于所述HB,其中,所述LB大于0且小于所述HB,所述HB小于或等于1,所述K、所述B、所述N和所述X为正整数;
编码模块,用于根据所述I和所述F进行极化编码。
22.根据权利要求21所述的装置,其特征在于,
所述Q1和所述Q2根据Q、所述B、所述LB和所述HB确定,所述Q为与所述Nmax对应的各个子信道的可靠度序列;
或者,
所述Q1和所述Q2为预配置的。
23.根据权利要求22所述的装置,其特征在于,所述LB和所述HB为预定义的;
或者,
所述B、所述LB和所述HB是通过指示信息指示的。
24.根据权利要求21-23任一项所述的装置,其特征在于,
所述I中的子信道序号为所述Q1中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号和所述Q2中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号和所述Q2中的至少一组子信道序号,所述一组子信道序号包括的子信道序号个数为BM,所述BM为一个外码子码中属于中间码率的子信道的数量。
25.根据权利要求24所述的装置,其特征在于,
所述确定模块用于:在根据所述K、所述Q1和所述Q2确定所述I时,依次比较所述Q1中可靠度最大的一个子信道的可靠度和所述Q2中可靠度最大的一个子信道的可靠度,将所述Q1和所述Q2中当前可靠度最大的一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K;或者,
依次比较所述Q1中可靠度最大的一个子信道的可靠度W1和所述Q2中可靠度最大的BM个子信道的平均可靠度W2,W1大于W2时,将所述Q1中当前可靠度最大的一个子信道序号确定为所述I中的元素,否则将所述Q2中当前可靠度最大的BM个子信道序号确定为所述I中的元素;在已确定的所述I中的子信道序号的数量K’满足K-K’小于所述BM时,将所述Q1中可靠度最大的至少一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K。
26.根据权利要求21所述的装置,其特征在于,所述I根据所述K和Q3确定,所述Q3根据所述N、所述Q1和所述Q2确定,或者,所述Q3为预配置的。
27.根据权利要求26所述的装置,其特征在于,
所述Q3由所述Q1和所述Q2中小于或等于所述N的子信道序号或者小于所述N的子信道序号构成,所述Q1和所述Q2中的子信道序号在所述Q3中按照可靠度从大到小或从小到大的顺序排列。
28.根据权利要求21所述的装置,其特征在于,所述Q2包括P个子序列Q21、Q22、……和Q2p,P为正整数,所述I根据所述K、所述Q1、Q21、Q22、……和Q2p确定。
29.根据权利要求27所述的装置,其特征在于,
所述I中的子信道序号为所述Q1中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号与所述Q21、Q22、和Q2p中至少一个子序列中的至少一个子信道序号;或者,
所述I中的子信道序号为所述Q1中的至少一个子信道序号与所述Q21、Q22、和Q2p中至少一个子序列中的至少一组子信道序号,所述一组子信道序号包括的子信道序号个数为Bi,所述Bi=BM/P,所述BM为一个外码子码中属于中间码率的子信道的数量。
30.根据权利要求28或29所述的装置,其特征在于,
所述确定模块用于:在根据所述K、所述Q1、Q21、Q22、……和Q2p确定所述I时,依次比较所述Q1中可靠度最大的一个子信道的可靠度和Q2i(i=1,2,…P)中可靠度最大的一个子信道的可靠度,将所述Q1和所述Q2i(i=1,2,…P)中当前可靠度最大的一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K;或者,
依次比较所述Q1中可靠度最大的一个子信道的可靠度W1和Q2i(i=1,2,…P)中可靠度最大的所述Bi个子信道的平均可靠度W2i(i=1,2,…P),W1大于W2i中的最大值时,将所述Q1中当前可靠度最大的一个子信道序号确定为所述I中的元素,否则将W2i中的最大值对应的Q2i中当前可靠度最大的Bi个子信道序号确定为所述I中的元素,在已确定的所述I中的子信道序号的数量K’满足K-K’小于所述Bi时,将所述Q1中可靠度最大的至少一个子信道序号确定为所述I中的元素,直至所述I中的元素个数为所述K。
31.根据权利要求28所述的装置,其特征在于,所述I根据所述K和Q3确定,所述Q3根据所述N、所述Q1、所述Q21、所述Q22、……和所述Q2p确定,或者,所述Q3为预配置的。
32.根据权利要求31所述的装置,其特征在于,
所述Q3由所述Q1、所述Q21、所述Q22、……和所述Q2p中小于或等于所述N的子信道序号或者小于所述N的子信道序号构成,所述Q1、所述Q21、所述Q22、……和所述Q2p中的子信道序号在所述Q3中按照可靠度从大到小或从小到大的顺序排列。
33.根据权利要求26或31所述的装置,其特征在于,所述I中的元素为所述Q3中可靠度最大的所述K个子信道序号。
34.根据权利要求21-33任一项所述的装置,其特征在于,
所述外码子码的可靠度为所述外码子码中可靠度最低的或最高的子信道的可靠度;或者,
所述外码子码的可靠度为所述外码子码中第j个子信道的可靠度,1<j<m,m为所述外码子码包含的子信道序号的总数;或者,
所述外码子码的可靠度为所述外码子码中所有子信道的平均可靠度或所有子信道的可靠度之和。
35.根据权利要求20所述的装置,其特征在于,所述I和所述F根据所述N、所述K、所述B、LB*B和HB*B通过码率分配方法确定。
36.根据权利要求35所述的装置,其特征在于,所述码率分配方法具体为:
根据目标码率R和码率分配条件进行逐级外码子码的码率分配,直到确定出码长为1的外码子码的码率,所述所述码率分配条件为2*Rx=Rx-+Rx+,其中,所述Rx为当前级的外码子码的码率,所述Rx-为下一级的两个外码子码的码率中的低码率,Rx+为下一级的两个外码子码的码率中的高码率,在进行第n+1级至第n级的两个外码子码的码率分配时,所述Rx=R,所述n=log2(N);
其中,在进行第log2(B)+1级至第log2(B)级的外码子码的码率分配时,所述Rx和所述Rx-满足所述码率分配条件的同时,还满足第一条件,所述第一条件为下述中的任一种:
0≤Rx-≤Rx+≤LB;或者,
0≤Rx-≤LB<HB≤Rx+≤1;或者,
HB≤Rx-≤Rx+≤1。
37.根据权利要求36所述的装置,其特征在于,根据目标码率R和码率分配条件进行逐级外码子码的码率分配,包括:
根据所述R和所述码率分配条件进行第n+1级至第n级的两个外码子码的码率分配;
根据第s级的外码子码的码率和所述码率分配条件,进行第s级至第s-1级的外码子码的码率分配,直到确定出码长为1的外码子码的码率,s大于或等于2且小于或等于n。
38.根据权利要求36或37所述的装置,其特征在于,所述I和所述F根据已确定出的码长为1的外码子码的码率确定。
39.一种编码装置,其特征在于,包括:
处理器,用于执行存储器中存储的程序,当所述程序被执行时,使得所述装置执行权利要求1~19任一项所述的编码方法。
40.一种计算机可读存储介质,所述计算机可读存储介质中存储有可执行指令,当其在计算机上运行时,使得权利要求1-19任一项所述的编码方法被执行。
41.一种通信装置,其特征在于,包括输入输出接口和逻辑电路;
所述输入输出接口用于获取待编码信息;
所述逻辑电路用于执行权利要求1-19任一项所述的方法根据所述待编码信息进行极化编码。
42.根据权利要求41所述的装置,其特征在于,所述输入输出接口还用于输出编码后的比特序列。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010839880.7A CN114079533A (zh) | 2020-08-19 | 2020-08-19 | 编码方法及装置 |
EP21857521.5A EP4195515A4 (en) | 2020-08-19 | 2021-08-06 | CODING METHOD AND APPARATUS |
PCT/CN2021/111233 WO2022037426A1 (zh) | 2020-08-19 | 2021-08-06 | 编码方法及装置 |
US18/170,763 US20230208442A1 (en) | 2020-08-19 | 2023-02-17 | Encoding method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010839880.7A CN114079533A (zh) | 2020-08-19 | 2020-08-19 | 编码方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114079533A true CN114079533A (zh) | 2022-02-22 |
Family
ID=80281829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010839880.7A Pending CN114079533A (zh) | 2020-08-19 | 2020-08-19 | 编码方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230208442A1 (zh) |
EP (1) | EP4195515A4 (zh) |
CN (1) | CN114079533A (zh) |
WO (1) | WO2022037426A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108574494B (zh) * | 2017-03-13 | 2020-08-25 | 华为技术有限公司 | 编译码方法及装置 |
CN108574561B (zh) * | 2017-03-14 | 2020-11-17 | 华为技术有限公司 | 极化码编码的方法和装置 |
US10601450B2 (en) * | 2017-03-29 | 2020-03-24 | Qualcomm Incorporated | List management for parallel operations of polar codes |
CN107395324B (zh) * | 2017-07-10 | 2020-04-14 | 北京理工大学 | 一种基于qup方法的低译码复杂度速率匹配极化码传输方法 |
CN110890894A (zh) * | 2018-09-07 | 2020-03-17 | 华为技术有限公司 | 级联编码的方法和装置 |
-
2020
- 2020-08-19 CN CN202010839880.7A patent/CN114079533A/zh active Pending
-
2021
- 2021-08-06 EP EP21857521.5A patent/EP4195515A4/en active Pending
- 2021-08-06 WO PCT/CN2021/111233 patent/WO2022037426A1/zh unknown
-
2023
- 2023-02-17 US US18/170,763 patent/US20230208442A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4195515A4 (en) | 2024-01-24 |
US20230208442A1 (en) | 2023-06-29 |
EP4195515A1 (en) | 2023-06-14 |
WO2022037426A1 (zh) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11303298B2 (en) | Encoding and decoding method and terminal | |
US11689220B2 (en) | Method and device for interleaving data | |
CN106899379B (zh) | 用于处理极化码的方法和通信设备 | |
CN108289010B (zh) | 一种数据处理方法和装置 | |
US11211947B2 (en) | Polar code encoding method and apparatus, polar code decoding method and apparatus, and device | |
CN109547034B (zh) | 译码方法及设备、译码器 | |
CN108809486B (zh) | Polar码编译码方法及装置 | |
CN107342844A (zh) | 一种编码方法和装置 | |
WO2020147526A1 (zh) | 一种级联crc码的极化码编码方法及装置 | |
US20230208554A1 (en) | Encoding and Decoding Method and Apparatus | |
US11909417B2 (en) | Data processing method and device | |
CN109327280B (zh) | 分段编码方法及装置 | |
CN107733439B (zh) | 一种ldpc编码方法、编码装置及通信设备 | |
CN111447042B (zh) | 一种极化编译码方法及装置 | |
CN114079533A (zh) | 编码方法及装置 | |
CN108631931A (zh) | 一种构造极化码序列的方法及装置 | |
CN111490797B (zh) | 编码方法、装置及设备 | |
CN109474383B (zh) | 编码方法及装置 | |
CN109474379B (zh) | 编码方法及装置 | |
CN109474376B (zh) | 编码方法及装置 | |
CN109495208B (zh) | 编码方法及装置 | |
CN109474380B (zh) | 编码方法及装置 | |
CN109474378B (zh) | 编码方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |