使用grs码构建ldpc码的方法和装置的制作方法

文档序号:7538347阅读:12125来源:国知局
专利名称:使用grs码构建ldpc码的方法和装置的制作方法
技术领域
本发明涉及通信系统,更具体地,本发明涉及可用于通信系统中生成编码信号的编码的生成。
背景技术
数据通信系统已经持续发展了多年,近年来,采用重复纠错码的通信系统是研究者们关注的焦点。其中最受关注的是采用低密度奇偶校验(Low DensityParity Check,简称LDPC)码的通信系统。在同一信噪比情况下,重复编码的通信系统的误码率通常低于选择性编码。
该领域的一个持续和主要的发展方向是降低通信系统中必需的信噪比以达到特定的误码率。理想的目标是尝试研究通信信道中的山农限度(Shannon’slimit),山农限度可以看作是用在具有特定信噪比的信道中的数据传输率,通过该信道可实现无误码传输。换句话说,山农限度是给定调制和编码率的信道容量的理论限度。
LDPC码已被证实在某些情况下可以提供接近山农限度的非常好的解码性能。理论上,LDPC码被证实可以达到离山农限度0.004分贝的性能。长度为一百万的不规则LDPC码曾达到该性能,它证实了在通信系统中应用LDPC码是非常有希望的。
LDPC编码信号的使用可应用于许多新的领域。例如,IEEE P802.3an(10GBASE-T)课题组涉及到重要的LDPC编码信号的应用。此IEEE P802.3an(10GBASE-T)课题组由IEEE建立,用于开发和标准化根据IEEE 802.3CSMA/CD以太网协议通过双绞线传输数据的铜线10千兆位以太网标准。载波侦听多路访问/冲突检测(CSMA/CD)是以太网中载波传输访问的协议。IEEE802.3an(10GBASE-T)是通过4线双绞线传输数据的10Gbps以太网的一个新标准。更多的关于IEEE P802.3an(10GBASE-T)课题组的公共信息可以在下面的网站中找到“http://www.ieee802.org/3/an”该应用中提供的高数据率相当接近在最差的100米电缆上的可能的理论最大传输率。实现10Gbps传输需要接近的容量以达到纠错编码。用传统链接码产生的潜在约束,排除了其在该应用中的使用。
显然,需要有一些可选的编码类型和调制技术以提供接近的容量,达到纠错的需求,LDPC码便可以提供这样的性能。
现在没有可以遵循的最好的方法建立性能良好的LDPC码,在下面的参考资料[a]中,基于里德-所罗门(Reed-Solomon,简称RS)码的两个编码字建立了规则的LDPC码。
I.Djurdjevic,J.Xu,K.Abdel-Ghaffar and S.Lin,“A Class ofLow-Density Parity-Check Codes Constructed Based on Reed-Solomon CodesWith Two Information Symbols,”IEEE Communications Letter,vol.7,no.7,pp.317-319,July 2003.
然而,使用这种现有技术提出的LDPC码类型很窄,并且使用这种方法设计其他类型的LDPC码的灵活性很小。缺乏灵活性对于设计这种LDPC码和/或使用这种LDPC码实现的通信设备来说都是一个显著的挑战。很明显,在不同的信噪比情况下,用于各种通信系统以提供更好的纠错均值和误码率的更好类型的编码技术需求是持续的。

发明内容
本发明发提供一种设备和方法,并在以下结合附图和具体实施例对其进行详细说明。通过以下结合附图对本发明的详细描述,本发明的其它特征和优点显而易见。
根据本发明的一方面,提供一种使用通用里德-所罗门(GeneralizedReed-Solomon,简称GRS)码构建LDPC码的方法,所述方法包括选择一组地址,包括
多个元素,其中每个元素可以由升到对应指数次幂的伽罗瓦域(Galois field)中的一个素元生成,其中所述伽罗瓦域包括预定的有限个元素;第一度为1的多项式函数,用于将所述地址组的每个元素映射到对应的非零值;第二度为1的多项式函数,为所述第一度为1的多项式函数的非线性纯量倍数;从所述伽罗瓦域中选择多个非零元素;从多个可能的编码字向量值中识别GRS码的第一编码字向量,其中所述第一编码字向量可使用所述多个非零元素并依据所述第一度为1的多项式函数对所述地址组中的每个元素进行映射来生成;从所述多个可能的编码字向量值中识别所述GRS码的第二编码字向量,其中所述第二编码字向量可使用所述多个非零元素并依据所述第二度为1的多项式函数对所述地址组中的每个元素进行映射来生成;将所述第一编码字向量与第一多个比例因子中的每个比例因子相乘,从而生成多个调整后第一编码字向量;将所述第二编码字向量与第二多个比例因子中的每个比例因子相乘,从而生成多个调整后第二编码字向量;将所述每个调整后第一编码字向量与所述每个调整后第二编码字向量相加以生成多个陪集(coset);生成多个置换矩阵,其中每个所述置换矩阵包括多个行,每行包括有所述多个陪集中一个陪集的地址映射;将所述多个置换矩阵中的每个置换矩阵排列为子矩阵,从而生成对应所述LDPC码的LDPC奇偶校验矩阵。
优选地所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述多个陪集包括2s个陪集;所述多个置换矩阵中每个置换矩阵是2s×2s的置换矩阵。
优选地
所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;且ρ小于或等于2s。
优选地所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;所述LDPC奇偶校验矩阵的位节点的度为γ,且校验节点的度为ρ;所述LDPC奇偶校验矩阵的每列的权重为γ;所述LDPC奇偶校验矩阵的每行的权重为ρ;且ρ小于或等于2s。
优选地所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述LDPC奇偶校验矩阵为384×2048的矩阵;所述LDPC码为(2048,1723)规则LDPC码,其编码率接近0.8413;且所述LDPC码的最小码间据大于或等于8。
优选地所述伽罗瓦域中的预定的有限个元素包括2s个元素,其中s为整数;所述第一多个比例因子包括2s个比例因子;所述第二多个比例因子包括2s个比例因子。
优选地所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;所述地址组中的多个元素包括ρ个元素;所述多个非零元素包括ρ个元素。
优选地所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;当γ为整数时,所述LDPC码的最小码间距大于或等于γ+2;当γ为整数时,所述LDPC码的最小码间距大于或等于γ+1。
优选地所述第一多个比例因子是所述第二多个比例因子。
优选地所述LDPC码用于生成遵循IEEE P802.3an(10GBASE-T)课题组推荐标准的LDPC编码信号。
优选地对应所述LDPC码的LDPC奇偶校验矩阵为384×2048的LDPC奇偶校验矩阵Hb,如附录B所示。
根据本发明的一方面,提供一种利用GRS码构建LDPC码的方法,所述方法包括从多个可能的编码字向量值中识别GRS码的第一编码字向量;从多个可能的编码字向量值中识别所述GRS码的第二编码字向量;将所述第一编码字向量与第一多个比例因子中的每个比例因子相乘,从而生成多个调整后第一编码字向量;将所述第二编码字向量与第二多个比例因子中的每个比例因子相乘,从而生成多个调整后第二编码字向量;将所述每个调整后第一编码字向量与所述每个调整后第二编码字向量相加以生成多个陪集;生成多个置换矩阵,其中每个所述置换矩阵包括多个行,每行包括有所述多个陪集中一个陪集的地址映射;将所述多个置换矩阵中的每个置换矩阵排列为子矩阵,从而生成对应所述LDPC码的LDPC奇偶校验矩阵。
优选地,所述方法进一步包括选择一组地址,包括
多个元素,其中每个元素可以由升到对应指数次幂的伽罗瓦域中的一个素元生成,其中所述伽罗瓦域包括预定的有限个元素;第一度为1的多项式函数,用于将所述地址组的每个元素映射到对应的非零值;第二度为1的多项式函数,为所述第一度为1的多项式函数的非线性纯量倍数;从所述伽罗瓦域中选择多个非零元素;其中所述第一编码字向量可使用所述多个非零元素并依据所述第一度为1的多项式函数对所述地址组中的每个元素进行映射来生成;所述第二编码字向量可使用所述多个非零元素并依据所述第二度为1的多项式函数对所述地址组中的每个元素进行映射来生成。
优选地所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述多个陪集包括2s个陪集;所述多个置换矩阵中每个置换矩阵是2s×2s的置换矩阵;所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;所述LDPC奇偶校验矩阵的位节点的度为γ,且校验节点的度为ρ;所述LDPC奇偶校验矩阵的每列的权重为γ;所述LDPC奇偶校验矩阵的每行的权重为ρ;且ρ小于或等于2s。
优选地所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述LDPC奇偶校验矩阵为384×2048的矩阵;所述LDPC码为(2048,1723)规则LDPC码,其编码率接近0.8413;且所述LDPC码的最小码间据大于或等于8。
优选地所述伽罗瓦域中的预定的有限个元素包括2s个元素,其中s为整数;
所述第一多个比例因子包括2s个比例因子;所述第二多个比例因子包括2s个比例因子。
优选地所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;所述地址组中的多个元素包括ρ个元素;所述多个非零元素包括ρ个元素。
优选地所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;当γ为整数时,所述LDPC码的最小码间距大于或等于γ+2;当γ为整数时,所述LDPC码的最小码间距大于或等于γ+1。
优选地所述LDPC码用于生成遵循IEEE P802.3an(10GBASE-T)课题组推荐标准的LDPC编码信号。
优选地对应所述LDPC码的LDPC奇偶校验矩阵为384×2048的LDPC奇偶校验矩阵Hb,如附录B所示。
根据本发明的一方面,提供一种利用GRS码构建LDPC码的装置,所述装置包括编码字向量识别模块,用于从多个可能的编码字向量值中识别GRS码的第一编码字向量;从多个可能的编码字向量值中识别所述GRS码的第二编码字向量;陪集生成模块,用于将所述第一编码字向量与第一多个比例因子中的每个比例因子相乘,以生成多个调整后第一编码字向量;将所述第二编码字向量与第二多个比例因子中的每个比例因子相乘,以生成多个调整后第二编码字向量;将所述每个调整后第一编码字向量与所述每个调整后第二编码字向量相加以生成多个陪集;生成多个置换矩阵,其中每个所述置换矩阵包括多个行,每行包括有所述多个陪集中一个陪集的地址映射;将所述多个置换矩阵中的每个置换矩阵排列为子矩阵,从而生成对应所述LDPC码的LDPC奇偶校验矩阵。
优选地,所述装置进一步包括地址组选择模块,包括多个元素,其中每个元素可以由升到对应指数次幂的伽罗瓦域中的一个素元生成,其中所述伽罗瓦域包括预定的有限个元素;第一度为1的多项式函数,用于将所述地址组的每个元素映射到对应的非零值;第二度为1的多项式函数,为所述第一度为1的多项式函数的非线性纯量倍数;非零元素选择模块,用于从所述伽罗瓦域中选择多个非零元素;所述第一编码字向量可使用所述多个非零元素并依据所述第一度为1的多项式函数对所述地址组中的每个元素进行映射来生成;所述第二编码字向量可使用所述多个非零元素并依据所述第二度为1的多项式函数对所述地址组中的每个元素进行映射来生成。
优选地所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述多个陪集包括2s个陪集;所述多个置换矩阵中每个置换矩阵是2s×2s的置换矩阵;所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;所述LDPC奇偶校验矩阵的位节点的度为γ,且校验节点的度为ρ;所述LDPC奇偶校验矩阵的每列的权重为γ;
所述LDPC奇偶校验矩阵的每行的权重为ρ;且ρ小于或等于2s。
优选地所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述LDPC奇偶校验矩阵为384×2048的矩阵;所述LDPC码为(2048,1723)规则LDPC码,其编码率接近0.8413;且所述LDPC码的最小码间据大于或等于8。
优选地所述伽罗瓦域中的预定的有限个元素包括2s个元素,其中s为整数;所述第一多个比例因子包括2s个比例因子;所述第二多个比例因子包括2s个比例因子。
优选地所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;所述地址组中的多个元素包括ρ个元素;所述多个非零元素包括ρ个元素。
优选地所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;当γ为整数时,所述LDPC码的最小码间距大于或等于γ+2;当γ为整数时,所述LDPC码的最小码间距大于或等于γ+1。
优选地所述装置与LDPC编码器通信连接;所述LDPC编码器使用由所述装置构建的LDPC码对至少一个信息位进行编码,从而生成遵循IEEE P802.3an(10GBASE-T)课题组推荐标准的LDPC编码信号。
优选地对应所述LDPC码的LDPC奇偶校验矩阵为384×2048的LDPC奇偶校验矩阵Hb,如附录B所示。


下面将结合附图及实施例对本发明作进一步说明,附图中图1是根据本发明的建立的通信系统的一个实施例的示意图;图2是根据本发明的建立的通信系统的一个实施例的示意图;图3是LDPC码双向图的一个实施例的示意图;图4是根据本发明使用选择的特别是用于10GBASE-T的LDPC码生成的LDPC编码信号的发射处理方法的一个实施例的示意图;图5是根据本发明使用选择的特别是用于10GBASE-T的LDPC码生成的LDPC编码信号的接收处理方法的一个实施例的示意图;图6是根据本发明使用GRS码构建LDPC码的方法的一个实施例的示意图;图7是根据本发明使用GRS码构建LDPC码的装置的一个实施例的示意图;图8是根据本发明使用GRS码构建LDPC码的装置的另一个实施例的示意图。
具体实施例方式
数字通信系统的目标是将数字数据从一个地点或子系统无错误或以可接受的低错误率传输至另一个地点或子系统。如图1所示,数据可以在多种通信系统中以各种信道进行传输磁媒介、无线网络、光纤、铜线和其它媒介。
图1和图2所示分别为根据本发明建立的通信系统100和200的示意图。参看图1,通信系统100包括信道199,将位于通信信道199一端的通信设备110(包括具有编码器114的发射器112和具有解码器118的接收器116)与位于通信信道199另一端的通信设备120(包括具有编码器128的发射器126和具有解码器124的接收器122)连接。在某些实施例中,通信设备110和120均可能只包括一个发射器或一个接收器。实现通信信道199的媒介有几个不同的种类(例如,使用卫星天线132和134的卫星通信信道130、使用通信塔142和144和/或本地天线152和154的无线通信信道140、有线通信信道150和/或使用电光(E/O)接口162和光电(O/E)接口164的光纤通信信道160)。另外,可使用多于一种的媒介相结合形成通信信道199。
为了减少通信系统内出现的不想要的传输错误,经常会采用错误校正和信道编码方案。一般来说,这些错误校正和信道编码方案在发射机端使用编码器,在接收机端使用解码器。
参看图2所示的通信系统200,在通信信道299的发射端,信息位201被提供给发射机297,发射机297使用编码器和码元映射器220(该码元映射器可视为各自不同的功能块222和224)对信息位201进行编码,从而生成离散值调制符号序列203并提供给发射驱动器230,该发射驱动器230使用数模转换器232生成连续发射信号204,并使用发射滤波器234生成滤波后连续发射信号205,该滤波后连续发射信号205与通信信道299充分一致。在通信信道299的接收端,连续接收信号206被提供给模拟前端260,该模拟前端206包括接收滤波器262(生成滤波后连续接收信号207)和模数转换器264(生成离散接收信号208)。量度生成器270生成符号度量209,解码器208使用该符号量度209对所述离散值调制符号和编码于其中的信息位作出最佳估算(210)。
上述实施例中的解码器的可根据本发明来实现。另外,接下来的几个附图对用于支持根据本发明实现的设备、系统、功能与/或方法的其他和特定实施例进行描述(某些实施例将给出更详细的介绍)。根据本发明处理的一种特定类型的信号是LDPC编码信号。在对本发明进行更具体的介绍之前,先对LDPC码进行一般的介绍。
图3是LDPC码双向图300的一个实施例的示意图。在现有技术中,LDPC双向图有时也称为坦纳图(Tanner Graph)。LDPC码可以视为具有二进制奇偶校验矩阵的代码,这样的话,该矩阵中几乎所有的元素值为0(例如该二进制奇偶校验矩阵是稀疏矩阵)。例如,H=(hi,j)N×M可以被看作是块长度为N的LDPC码的奇偶校验矩阵。
在该奇偶校验矩阵中,第i列中1的数量可以表示为dv(i),第j行的1的数量可以表示为dc(j)。如果对于所有i,dv(i)=dv,以及对于所有的j,dc(j)=dc,那么该LDPC码被称为(dv,dc)规则LDPC码,否则该LDPC码称作不规则LDPC码。
LDPC码在下面的R.Gallager所著的参考资料[1]以及M.Luby等所著的参考资料[2]中已经给出介绍。
R.Gallager,Low-Density Parity-Check Codes,Cambridge,MAMIT Press,1963.(R.Gallager,低密度奇偶校验码,剑桥,MAMIT出版社,1963年)[2]M.Luby,M.Mitzenmacher,M.A.Shokrollahi,D.A.Spielman,and V.
Stemann,“Practical Loss-Resilient Codes”,Proc.29th Symp.on Theory ofComputing,1997,pp.150-159.(M.Luby,M.Mitzenmacher,M.A.Shokrollahi,D.A.Spielman,和V.Stemann,“实用弹性衰减代码”,1997年第29届计算理论研讨会会议论文集,第150-159页)规则LDPC码可以表示为双向图300,其奇偶校验矩阵的左侧节点代表编码位(或“变量节点”(或“位节点”)310以位解码的方法对LDPC编码信号进行解码)变量,右侧节点代表校验等式(或校验节点320)。由H定义的LDPC码的双向图300可以由N个变量节点(例如N个位节点)和M个校验节点定义。N个变量节点310中的每个变量节点具有dv(i)个边线(edge,标号330所示为其中的一个示例),将位节点vi312与一个或多个校验节点(M个校验节点内的)相连。图中所示的边线330将位节点vi312与校验节点cj322连接。边线dv的数量(如图中dv314所示)又称为变量节点i的度(degree)。近似地,M个校验节点320的每个校验节点有刚好dc(j)个边线(图中表示为dc324)将该节点与一个或多个变量节点(或位节点)310连接。该边线的数量dc又称为校验节点j的度。
在变量节点vi(或位节点bi)312和校验节点cj322之间的边线330可定义为e=(i,j)。但是,另一方面,对于给定的边线e=(i,j),该边线的节点也可以被表示为e=(v(e),c(e))(或者e=(b(e),c(e))。给定变量节点vi(或位节点bi),可以定义一组从节点vi(或位节点bi)发出的边线为Ev(i)={e|v(e)=i}(或者为Eb(i)={e|b(e)=i})。给定校验节点cj,可以定义一组从节点cj发出的边线为Ec(j)={e|c(e)=j}。因此,推导结果是|Ev(i)=dv|(或|Eb(i)|=db)和|Ec(j)|=dc。
通常来说,任何能由双向图表示的节点可以特征化为图形节点。还需要注意的是,不规则LDPC码也可以用双向图描述。然而,在不规则LDPC码中每一组节点的度可以根据某些分布进行选择。因此,对于一个不规则LDPC码的两个不同的节点vi1和vi2,|Ev(i1)|可能不等于|Ev(i2)|。此关系对于两个校验节点也成立。不规则LDPC码的概念最初由M.Luby等人在参考资料[2]中给出介绍。
总之,通过LDPC码的双向图,LDPC码的参数可由分布的度来定义,这一点在上述M.Luby等人的参考资料[2]以及以下参考资料[3]中已经给出描述[3]T.J.Richardson and R.L.Urbanke,“The capacity of low-density paritycheck code under message-passing decoding,’”IEEE Trans.Inform.Theory,Vol.47,pp.599-618,Feb.2001.
此分布可以被描述为设λi为从度为i的变量节点发出的边线的分数,设ρi为从度为i的校验节点发出的边线的分数,那么,度分布组(λ,ρ)可定义为如下λ(x)=Σi=2Myλixi-1]]>和ρ(x)=Σi=2Mcρixi-1,]]>其中Mv和Mc分别表示变量节点和校验节点的最大度。
尽管此处所示的多个实施例采用规则LDPC码,值得注意的是,本发明还同时适用规则LDPC码和不规则LDPC码。
如上述Djurdjevic等人的参考资料[a]所介绍的,基于RS码的两个编码字可构建类型比较窄的LDPC码。
相比之下,本申请提出的方法使用各种类型的RS码(包括具有大范围和数量的信息符号的RS码)构建大范围的LDPC码。在一个实施例中,根据本申请提出的方法可使用GRS码生成LDPC码。
本申请提出的使用GRS码生成LDPC码的新方法,为LDPC编码信号以及用于处理该LDPC编码信号的通信设备(包括发射端设备和接收端设备和/或收发机设备)的设计者提供了更多的灵活性。本发明提出的构建方法为生成的LDPC码的类型提供了更多的选择。
首先介绍构建该LDPC码的一个实施例。
理解本发明构建该LDPC码的方法先考虑伽罗瓦域GF(2s)以及任意数ρ,其中ρ≤2s。
第一步,随机选择一组地址L,其中L={αi0,...,αiρ-1}]]>具有ρ个元素和2个随机选择的度为1的多项式f0和f1,其中对于所有λ∈L,f(λ)≠0,且对于所有β∈GF(2s),f1(x)≠β·f0(x)。
第二步,从该伽罗瓦域GF(2s)中随机选择ρ个非零元素v0,v1,...vρ-1。
第三步,取2个编码字,如下所示c0=(v0f0(αi0),v1f0(αi1),...,vρ-1f0(αiρ-1))]]>c1=(v0f1(αi0),v1f1(αi1),...,vρ-1f1(αiρ-1))]]>作为32位有限精确实现的一个例子,这两个编码字向量可表示如下c0=(v0f0(αi0),v1f0(αi1),...,v31f0(αi31))]]>c1=(v0f1(αi0),v1f1(αi1),...,v31f1(αi31))]]>如下述参考资料[4]所述,由这两个编码字c0和c1生成的二维码具有最小码间距dmin。
F.J.MacWilliams and N.J.A.Sloane,The Theory of Error-CorrectingCodes,North-Holland Mathematical Library,North-Holland,New York,1998。
第四步,由此存在2s个可能的陪集(c0)+β·c1,其中β属于伽罗瓦域,即β∈GF(2s)。
然后使用根据本发明提出的上述设计方法,利用Djurdjevic等人发表的参考文件中公布的设计,可以构建各种LDPC码。
根据本发明生成基于RS的LDPC码(例如,基于GRS的LDPC码)的方法的一个实施例如下陪集C(i)={c1,c2,...,c2s-1},]]>其中每个ck={ck,0,ck,1,...,ck,ρ}地址映射使用该伽罗瓦域,GF(2s)→{0,1}2sz(0)=(100...0),z(1)=(010...0),z(α)=(001...0),...
z(αi)=(000...010...0),其中1位于第i+2位。
一个2s×2s的置换矩阵如下
Pi,k=z(ck,0)z(ck,1)···z(ck,2s-1)]]>该LDPC码可以使用如下的LDPC矩阵生成 此矩阵的某些属性如下1.每列的权重为γ2.每行的权重为ρ3.任意2行不具有多于一个的相同元素同样,使用该方法构建的LDPC码的位节点的度为γ,使用该方法构建的LDPC码的校验节点的度为ρ。
该LDPC码的最小码间距dmin如下 例根LDPC码(Root LDPC Code,见附录A)以下提供一个利用该方法生成的LDPC码的例子。
使用利用GRS码生成LDPC码的该方法,至少可以构建64×32×64=131,072种不同的LDPC码。因此,它具有足够的随机性。
选择的伽罗瓦域可表示如下GF(26)第一步,随机选择的一个度为1的多项式f0可以表示为0103(八进制),或者可选择使用多项式f0(x)=x6+x+1。此外,素元α可以表示为2(八进制),或简化为α=x。
第二步,从伽罗瓦域GF(2s)中随机选择ρ个非零元素v0,v1,...vρ-1。在该根LDPC码的例子中,非零元素的数量ρ选择为32。
第三步,取2个编码字,在32位有限精确实现中表示如下
c0=(v0f0(αi0),v1f0(αi1),...,v31f0(αi31))]]>c1=(v0f1(αi0),v1f1(αi1),...,v31f1(αi31))]]>从对应的2维RS码生成矩阵G中产生的这两个RS编码字可以表示为A24,7,62,30,32,39,1,2,50,2,26,34,44,39,14,19,38,20,18,38,62,18,50,32,42,35,27,45,0,31,21,1B24,34,53,34,1,46,31,48,55,38,61,12,47,21,62,56,31,22,17,14,32,41,27,52,4,51,38,40,28,41,0,-1其中数x,x>-1表示编码字中的αx,-1表示编码字中的0。显然,α1=α且α0=1。
例如,编码字A和B可以表示为如下A=α24,α7,α62,α30,α32,α39,α,α2,α50,α2,α26,α34,α44,α39,α14α19,α39,α20,α18,α38,α62,α18,α50,α32,α42,α35,α27,α45,1,α31,α21,α]]>B=α24,α34,α53,α34,α,α46,α31,α48,α55,α38,α61,α12,α47,α21,α62α56,α31,α22,α17,α14,α32,α41,α27,α52,α4,α51,α38,α40,α28,α41,1,0]]>因此,至少有64个可能的选择。
生成的2个GRS编码字可表示如下c0=α24,α7,α62,α30,α32,α39,α,α2,α50,α2,α26,α34,α44,α39,α14α19,α39,α20,α18,α38,α62,α18,α50,α32,α42,α35,α27,α45,1,α31,α21,α;]]>c1=α24,α34,α53,α34,α,α46,α31,α48,α55,α38,α61,α12,α47,α21,α62α56,α31,α22,α17,α14,α32,α41,α27,α52,α4,α51,α38,α40,α28,α41,1,0.]]>这2个GRS编码字还可以用编码字A和B表示如下c0=(A0,A1,...A16,α19×A17,A18,...,A31);c1=(B0,B1,...,B16,α19×B17,B18,...,B31)。
这2个GRS编码字的最终值可以前述的形式表示,其中每个GRS编码字的修改过的第17项用下划线强调如下c024,7,62,30,32,39,1,2,50,2,26,34,44,39,14,19,38,39,18,38,62,18,50,32,42,35,27,45,0,31,21,1c124,34,53,34,1,46,31,48,55,38,61,12,47,21,62,56,31,41,17,14,32,41,27,52,4,51,38,40,28,41,0,-1第四步,由此可得到26个可能的陪集(c0)+β·c1,其中β属于伽罗瓦域,即β∈GF(26)。
一维码可以表示为C0=<c0>,其它5个陪集可以表示为如下Ci=C0+α(i-1)×c1,i=1,2,3,4,5。
合适的置换矩阵(26×26或64×64的形式)及随后真正的LDPC奇偶校验矩阵H,可以根据上述的方法建立。
继续上述的“根LDPC码”的例子,与该构建的编码GRS-H相关的LDPC奇偶校验矩阵如附录A所示。因该奇偶校验矩阵比较大,所以在附录A提供。
例“根LDPC码”的行和/或列的置换(如附录B所示)同样值得注意的是,上述的LDPC奇偶校验矩阵以及附录A中提供的LDPC奇偶校验矩阵可经过行和/或列的置换,从而生成各种不同的LDPC奇偶校验矩阵,均包括在本发明的范围和精神实质内。
对“根LDPC码”执行各种不同的行和/或列的置换可以生成不同的LDPC奇偶校验矩阵H,总共有(2048!)×(384!)个(其中“!”表示“阶乘”)。
本发明提供一种选择并特别用于通信系统(例如,包括其内实现的通信设备)的LDPC码,所述通信系统的设计和实现遵循IEEE P802.3an(10GBASE-T)课题组推荐的标准。
“根LDPC码”的一个可能生成的置换如附录B所示。该LDPC奇偶校验矩阵Hb,对应根据IEEE 802.3an(10GBASE-T)标准的LDPC码;该矩阵也发表于“IEEE Draft P802.3an/D2.1”中。
特别依照10GBASE-T选择使用的LDPC码的某些属性如下GF(2s)=GF(26),其中γ=6且ρ=32。
该奇偶校验矩阵如下H(6),为384×2048的矩阵。
在(2048,1723)规则LDPC码中的结果的编码率为0.8413,其最小码间距dmin至少为8(即,γ=6,且dmin≥γ+2→dmin≥8)。
图4是根据本发明使用选择的特别是用于10GBASE-T的LDPC码生成的LDPC编码信号的发射处理方法400的一个实施例的示意图。图4所示为在通信信道的发射机端执行的方法。所述方法涉及使用选择的特别是上述实施例中用于10GBASE-T的LDPC码生成LDPC编码信号的方法。这类LDPC编码信号包括上述实施例中所述的基于GRS的LDPC编码信号(例如,使用GRS码生成的LDPC编码信号)。此LDPC编码信号也可以看作是遵循IEEE P802.3an(10GBASE-T)课题组的推荐标准的LDPC编码信号。所述方法涉及LDPC编码信号的生成,还涉及将该LDPC编码信号与将要发射对应的连续时间发射信号的通信信道相一致所需的其他操作。
首先,如步骤405所示,所述方法接收信息位。这些信息位对应期望从信道的一端传送到另一端的真实信息。在信道的另一端,将对这些原始信息位进行最佳估算。接下来,在步骤410中,对该信息位进行LDPC编码,从而生成由n位符号组成的LDPC编码字。该编码操作可以使用选择的特别是用于10GBASE-T的LDPC码来执行;或者,可以采用利用GRS码构建的任意LDPC码而不脱离本发明的范围和精神实质。在某些情况下,所述方法在使用LDPC码对LDPC编码字的各位进行编码之后,对其进行交错,如步骤415所示。
然后,如步骤420所示,符号映射所述n位符号为至少一个调制(包括至少一个星座图和至少一个对应的映射)。在某些实施例中,该n位符号被映射为多个不同的调制类型,从而生成具有可变调制和/或编码率的信号,这些信号的调制与/或编码率可基于帧频繁变化,或基于符号频繁变化。将该n位符号映射为至少一个调制从而生成一个离散值调制符号序列,包括多对I、Q值(或更高维数的星座图)。值得注意的是,n为整数。此处,该离散值调制符号序列可视为LDPC编码调制信号(在此完全是数字信号形式)。
然后所述方法在步骤430中,将一调制率下表示为多对IQ值(或更高阶的群集值)的离散值调制符号序列中的每个符号写入一个装置内,从而生成连续时间信号。例如,可以用数模转换器来执行。
之后,该连续时间信号(一般位于基带频率)从数模转换器或其他等效装置中输出后,步骤440中,对该连续时间信号(例如,连续时间基带信号)执行任何必要的上变频转换、滤波和/或增益调整,从而生成滤波后连续时间发射信号。可能有些例子中不执行上变频转换、滤波和/或增益调整,由数模转换器或其它等效装置输出的连续时间信号的形式已经与其将发射的通信信道(或媒介)相一致。执行完任何将该信号与通信信道(或媒介)相一致的适当处理后,如步骤450所示,在该通信信道内将该信号发射。
下图所示同样是在通信信道的接收机端执行的方法。所述方法涉及各种实施例,以对接收的连续时间信号(其信息位已使用上述实施例中介绍的选择的特别用于10GBASE-T的LDPC码进行了编码)进行处理,以对编码于其中的信息位尽力做出最好的估算。在某些实施例中,该接收的连续时间信号可以看作是已在发射机端发射入通信信道的根据信道调整后的连续时间发射信号。一般来说,信道调整对发射并通过其传送(或存储于其内)的连续时间发射信号进行调整(通常为非期望地)。如下的2幅图中每一幅图介绍了一种可选的方法,对接收的连续时间信号执行接收处理(例如,在通信信道的接收机端),最终对编码于其中的信息位作出最好的估算。
图5是根据本发明使用选择的特别是用于10GBASE-T的LDPC码生成的LDPC编码信号的接收处理方法500的一个实施例的示意图。首先,在步骤510中,所述方法接收连续时间信号。在某些实施例中,该接收的连续时间信号中的信息位可能已使用上述实施例中选择的特别是用于10GBASE-T的LDPC码进行了编码。或者,该接收的连续时间信号中的信息位可能已使用根据本发明利用GRS码构建的任意LDPC码进行了编码。此外,此类LDPC编码信号包括前述实施例中介绍的基于GRS的LDPC编码信号。该连续时间信号的接收和处理还包括对第一连续时间信号进行必要的下变频转换,以生成第二连续时间信号,如步骤512所示。任何需要执行的频率转换可以将载波频率转换至基带频率。此频率转换也可以通过中频来执行。无论在哪个实施例中,当执行此方法时,接收的连续时间信号的频率一般都降低至基带连续时间信号。
所述方法如步骤520中,对所述第一(或第二)连续时间信号进行采样,以生成离散时间信号,并从中提取I、Q成分(同相成分、正交成分)。该采样过程可以使用模数转换器或等效装置来执行,以从执行了适当的下变频转换(并进行了滤波)后的接收的连续时间信号中生成离散时间信号。该离散时间信号的每个采样中I、Q成分也该步骤中进行提取。然后所述方法在步骤530中,对该I、Q成分进行解调并执行符号映射,从而生成离散值调制符号序列。
接下来如步骤540所示,对边消息执行预定次数的迭代更新。此步骤可视为依据上述各实施例执行LDPC解码。此LDPC解码通常包括位节点处理以更新与位节点相关的边消息(如步骤542所示),还包括校验引擎处理以更新与校验节点相关的边消息(如步骤544所示)。
执行完预定次数解码迭代的最后一次解码时,所述方法如步骤550所示,基于对应最近更新的与位节点相关的边消息的软信息作出硬决策。所述方法最后在步骤560中,输出从所述接收的连续时间信号提取出的编码字(包括信息位)的最佳估计值。
图6所示为根据本发明使用GRS码构建LDPC码的方法600的一个实施例的示意图。
首先,方法600如步骤610所示,选择一组地址。该地址组包括多个元素,其中每个元素可使用其内每个素元升为对应指数次幂的伽罗瓦域(GF(2s))内的素元(例如,α)来生成。例如,该地址组可以表示为L={αi0,...,αiρ-1}.]]>伽罗瓦域可以看作是具有预定的有限个元素的域。在数字通信领域中,伽罗瓦域的应用是非常广泛的,其为有限空间,在该有限空间内生成各种编码、编码信号和/或其各个成分。该地址组还包括两个单独的度为1的多项式函数(例如,第一度为1的多项式函数和第二度为1的多项式函数)。所述第一度为1的多项式函数用于将所述地址组的多个元素中的每个元素映射至对应的非零至,而所述第二度为1的多项式函数是所述第一度为1的多项式函数的非线性纯量倍数。也就是说,对于该地址组中的所有纯量值(例如,β),所述第二度为1的多项式函数均不可能被调整为其它值。
然后,如步骤620所示,从该伽罗瓦域中选择多个非零元素。这些非零元素可以用于生成依据GRS编码识别的每个编码字。如步骤630所示,从多个可能的编码字向量值中识别GRS码的第一编码字向量。该第一编码字向量可使用所述多个非零元素并通过依据所述第一度为1的多项式函数(例如,f0)对该地址组(例如,L={αi0,...,αiρ-1}]]>)中的每个元素进行映射来生成。然后,如步骤640所示,所述方法600继续,从多个可能的编码字向量值中识别GRS码的第二编码字向量。该第二编码字向量同样可使用所述多个非零元素并通过依据所述第二度为1的多项式函数对该地址组中的每个元素进行映射来生成。
如步骤650所示,所述方法600然后将所述第一编码字向量与第一多个比例因子中的每个比例因子相乘,以生成多个调整后第一编码字向量。同样,如步骤660所示,所述方法600将所述第二编码字向量与第二多个比例因子中的每个比例因子相乘,以生成多个调整后第二编码字向量。
如步骤650和660所示的这些处理过程,可以看作是使每个第一编码字向量和第二编码字向量(例如,c0和c1)跨越(sapnning)该伽罗瓦域。例如,对于2s个不同的β值,第一编码字向量c0需要经过对伽罗瓦域的一维跨越(例如,(c0)=[β·c0,β为GF(2s)中任何元素])。此外,对于伽罗瓦域中的β,总共有2s个可能的值。值得注意的是,调整后编码字向量组(c0),可以看作是由所述第一编码字向量c0归纳得到的一维编码。
同样地,对于β的2s个不同的值,第二编码向量c1需要经过对伽罗瓦域的一维跨越(例如,(c1)=[β·c1,β为GF(2s)中任何元素])。此外,第二组(c1)也可以看作是由第二编码向量c1归纳得到的一维编码。
如步骤670所示,所述方法600继续,将所述多个调整后第一编码字向量中的每一个与所述多个调整后第二编码字向量中的每一个相加,以生成多个陪集。换句话说,一旦所述一组调整后第一编码字向量(c0)确定后,使用比例因子β的各种值来生成所述每个陪集。由此可以有2s个可能的陪集(c0)+β·c1,这些陪集可以表示为如下陪集C(i)={c1,c2,...,c2s-1},]]>这样每个ck={ck,0,ck,1,...,ck,ρ}如步骤680所示,所述方法600生成多个置换矩阵,每个置换矩阵包括多个的行,其中每行包括所述多个陪集中一个陪集的地址映射。
可以采用的一个可能的地址映射如下所示地址映射使用伽罗瓦域,GF(2s)→{0,1}2sz(0)=(100...0),z(1)=(010...0),z(α)=(001...0),...
z(αi)=(000...010...0),其中1在第i+2位2s×2s个置换矩阵中的每个置换矩阵的形式如下
Pi,k=z(ck,0)z(ck,1)···z(ck,2s-1)]]>这些置换矩阵中的每一个形成后,如步骤690所示,所述方法排列所述每个置换矩阵为子矩阵,从而生成对应LDPC码的LDPC奇偶校验矩阵。该LDPC码可以通过按如下形式构建的LDPC奇偶校验矩阵生成 该奇偶校验矩阵的某些属性提供如下1、每列的权重为γ2、每行的权重为ρ3、任意2行不具有多于一个的相同元素同样,利用该方法构建的LDPC码的位节点的度为γ,且利用该方法构建的LDPC码的校验节点的度为ρ。
该LDPC码的最小码间距dmin如下 利用GRS编码(而不是仅仅RS编码),可以较之现有技术中的技术生成更多不同的LDPC码。
值得注意的是,该LDPC奇偶校验矩阵H(γ),可用于构建生成矩阵G,此生成矩阵可由LDPC编码器用于对至少一个信息位进行编码,以生成至少一个编码位。
图7所示为根据本发明使用GRS码构建LDPC码的装置的一个实施例700的示意图。该实施例示出了如何建立装置710以使用GRS码(如方框712所示)建立LDPC码(如方框714所示)。
装置710生成LDPC码714后,将其提供给编码器722,由编码器722对信息位701进行编码从而生成编码信息位702。在某些实施例中,编码器722还输出未进行LDPC编码的未编码位703。
同样值得注意的是,还可以通信连接一个解码器以接受由装置710生成的LDPC码714而不脱离本发明的范围和精神实质。通信信道两端的设备可以采用同样的使用GRS码712构建的LDPC码714。
图8所示为根据本发明使用GRS码构建LDPC码的装置的另一个实施例800的示意图。该实施例示出了一些可以用于装置810中的功能块(和/或模块)。
装置810使用GRS码构建LDPC码。装置810包括用于选择地址组的地址组选择模块820以及用于从伽罗瓦域中选择多个非零元素的非零元素选择模块830。
装置810还包括编码字向量识别模块840,用于从多个可能的编码字向量值中识别GRS码的第一编码字向量。编码字向量识别模块840还用于从多个可能的编码字向量值中识别GRS码的第二编码字向量。
装置810还包括陪集生成模块850,用于将所述第一编码字向量与第一多个比例因子中的每个比例因子相乘以生成多个调整后第一编码字向量,以及将所述第二编码字向量与第二多个比例因子中的每个比例因子相乘以生成多个调整后第二编码字向量。陪集生成模块850还可通过将多个调整后第一编码字向量中的每一个与多个调整后第二编码字向量中的每一个相加,从而生成多个陪集。
装置810还包括LDPC奇偶校验矩阵生成模块860,用于生成多个置换矩阵,其中每个置换矩阵包括多个行,其中每行包括所述多个陪集中一个陪集的地址映射。LDPC奇偶校验矩阵生成模块860还可以用于将多个置换矩阵中的每个置换矩阵排列为子矩阵,从而生成对应LDPC码的LDPC奇偶校验矩阵。
该装置810还可与编码器722通信连接,该编码器722用于对信息位701进行编码以生成编码信息位702。此外,编码器722输出未经过LDPC编码的未编码位703。如上述实施例所述,还可以通信连接一个解码器以接收装置810生成的LDPC码714而不脱离本发明的范围和精神实质。通信信道两端的设备可以采用相同的使用GRS码构建的LDPC码。
同样值得注意的是,前述结合附图介绍的方法可应用于任何适用的系统和/或设备设计中(通信系统、通信发射机、通信接收机、通信收发机和/或其内描述的功能)而不脱离本发明的范围和精神实质。
此外,值得注意的是,此处描述的各种功能、系统和/或设备以及相关方法实施例全部都可以在对数域中实现,从而使乘法能够利用加法执行,以及除法能够利用减法执行。
根据以上结合附图对本发明进行了的详细描述,其它的各种修改和变更是显而易见的,而且这些修改和变更不脱离本发明的精神实质和范围。
相关申请的交叉引用本专利申请要求以下美国临时专利申请的优先权,并全文引用该申请作为本专利申请的一部分1.美国临时专利申请号为60/642,689,名称为“使用GRS码构建LDPC码(Construction of LDPC codes using generalized R-S code)”(代理案号为BP4008.2),申请日为2005年1月10日。
附录说明所提出的每个LDPC奇偶校验矩阵具有如下的格式在该奇偶校验矩阵的每行中,非零项位于提供非零值的列中。每个LDPC奇偶校验矩阵的384行,每行包括32个非零值元素(因此权重为32);每个所述非零值元素的值为1。每个所述LDPC奇偶校验矩阵为384×2048的矩阵。
附录A“根LDPC码”的奇偶校验矩阵384×2048的LDPC矩阵,GRS-HGRS-H=0,64,128,192,256,320,384,448,512,576,640,704,768,832,896,960,1024,1088,1152,1216,1280,1344,1408,1472,1536,1600,1664,1728,1792,1856,1920,1984,25,72,191,223,289,360,386,451,563,579,667,739,813,872,911,980,1063,1128,1171,1255,1343,1363,1459,1505,1579,1636,1692,1774,1793,1888,1942,1986,26,73,129,224,290,361,387,452,564,580,668,740,814,873,912,981,1064,1129,1172,1256,1281,1364,1460,1506,1580,1637,1693,1775,1794,1889,1943,1987,27,74,130,225,291,362,388,453,565,581,669,741,815,874,913,982,1065,1130,1173,1257,1282,1365,1461,1507,1581,1638,1694,1776,1795,1890,1944,1988,28,75,131,226,292,363,389,454,566,582,670,742,816,875,914,983,1066,1131,1174,1258,1283,1366,1462,1508,1582,1639,1695,1777,1796,1891,1945,1989,29,76,132,227,293,364,390,455,567,583,671,743,817,876,915,984,1067,1132,1175,1259,1284,1367,1463,1509,1583,1640,1696,1778,1797,1892,1946,1990,30,77,133,228,294,365,391,456,568,584,672,744,818,877,916,985,1068,1133,1176,1260,1285,1368,1464,1510,1584,1641,1697,1779,1798,1893,1947,1991,31,78,134,229,295,366,392,457,569,585,673,745,819,878,917,986,1069,1134,1177,1261,1286,1369,1465,1511,1585,1642,1698,1780,1799,1894,1948,1992,32,79,135,230,296,367,393,458,570,586,674,746,820,879,918,987,1070,1135,1178,1262,1287,1370,1466,1512,1586,1643,1699,1781,1800,1895,1949,1993,33,80,136,231,297,368,394,459,571,587,675,747,821,880,919,988,1071,1136,1179,1263,1288,1371,1467,1513,1587,1644,1700,1782,1801,1896,1950,1994,34,81,137,232,298,369,395,460,572,588,676,748,822,881,920,989,1072,1137,1180,1264,1289,1372,1468,1514,1588,1645,1701,1783,1802,1897,1951,1995,35,82,138,233,299,370,396,461,573,589,677,749,823,882,921,990,1073,1138,1181,1265,1290,1373,1469,1515,1589,1646,1702,1784,1803,1898,1952,1996,36,83,139,234,300,371,397,462,574,590,678,750,824,883,922,991,1074,1139,1182,1266,1291,1374,1470,1516,1590,1647,1703,1785,1804,1899,1953,1997,37,84,140,235,301,372,398,463,575,591,679,751,825,884,923,992,1075,1140,1183,1267,1292,1375,1471,1517,1591,1648,1704,1786,1805,1900,1954,1998,38,85,141,236,302,373,399,464,513,592,680,752,826,885,924,993,1076,1141,1184,1268,1293,1376,1409,1518,1592,1649,1705,1787,1806,1901,1955,1999,39,86,142,237,303,374,400,465,514,593,681,753,827,886,925,994,1077,1142,1185,1269,1294,1377,1410,1519,1593,1650,1706,1788,1807,1902,1956,2000,40,87,143,238,304,375,401,466,515,594,682,754,828,887,926,995,1078,1143,1186,1270,1295,1378,1411,1520,1594,1651,1707,1789,1808,1903,1957,2001,
41,88,144,239,305,376,402,467,516,595,683,755,829,888,927,996,1079,1144,1187,1271,1296,1379,1412,1521,1595,1652,1708,1790,1809,1904,1958,2002,42,89,145,240,306,377,403,468,517,596,684,756,830,889,928,997,1080,1145,1188,1272,1297,1380,1413,1522,1596,1653,1709,1791,1810,1905,1959,2003,43,90,146,241,307,378,404,469,518,597,685,757,831,890,929,998,1081,1146,1189,1273,1298,1381,1414,1523,1597,1654,1710,1729,1811,1906,1960,2004,44,91,147,242,308,379,405,470,519,598,686,758,759,891,930,999,1082,1147,1190,1274,1299,1382,1415,1524,1598,1655,1711,1730,1812,1907,1961,2005,45,92,148,243,309,380,406,471,520,599,687,759,770,892,931,1000,1083,1148,1191,1275,1300,1383,1416,1525,1599,1656,1712,1731,1813,1908,1962,2006,46,93,149,244,310,381,407,472,521,600,688,760,771,893,932,1001,1084,1149,1192,1276,1301,1384,1417,1526,1537,1657,1713,1732,1814,1909,1963,2007,47,94,150,245,311,382,408,473,522,601,689,761,772,894,933,1002,1085,1150,1193,1277,1302,1385,1418,1527,1538,1658,1714,1733,1815,1910,1964,2008,48,95,151,246,312,383,409,474,523,602,690,762,773,895,934,1003,1086,1151,1194,1278,1303,1386,1419,1528,1539,1659,1715,1734,1816,1911,1965,2009,49,96,152,247,313,321,410,475,524,603,691,763,774,833,935,1004,1087,1089,1195,1279,1304,1387,1420,1529,1540,1660,1716,1735,1817,1912,1966,2010,50,97,153,248,314,322,411,476,525,604,692,764,775,834,936,1005,1025,1090,1196,1217,1305,1388,1421,1530,1541,1661,1717,1736,1818,1913,1967,2011,51,98,154,249,315,323,412,477,526,605,693,765,776,835,937,1006,1026,1091,1197,1218,1306,1389,1422,1531,1542,1662,1718,1737,1819,1914,1968,2012,52,99,155,250,316,324,413,478,527,606,694,766,777,836,938,1007,1027,1092,1198,1219,1307,1390,1423,1532,1543,1663,1719,1738,1820,1915,1969,2013,53,100,156,251,317,325,414,479,528,607,695,767,778,837,939,1008,1028,1093,1199,1220,1308,1391,1424,1533,1544,1601,1720,1739,1821,1916,1970,2014,54,101,157,252,318,326,415,480,529,608,696,705,779,838,940,1009,1029,1094,1200,1221,1309,1392,1425,1534,1545,1602,1721,1740,1822,1917,1971,2015,55,102,158,253,319,327,416,481,530,609,697,706,780,839,941,1010,1030,1095,1201,1222,1310,1393,1426,1535,1546,1603,1722,1741,1823,1918,1972,2016,56,103,159,254,257,328,417,482,531,610,698,707,781,840,942,1011,1031,1096,1202,1223,1311,1394,1427,1473,1547,1604,1723,1742,1824,1919,1973,2017,57,104,160,255,258,329,418,483,532,611,699,708,782,841,943,1012,1032,1097,1203,1224,1312,1395,1428,1474,1548,1605,1724,1743,1825,1857,1974,2018,58,105,161,193,259,330,419,484,533,612,700,709,783,842,944,1013,1033,1098,1204,1225,1313,1396,1429,1475,1549,1606,1725,1744,1826,1858,1975,2019,59,106,162,194,260,331,420,485,534,613,701,710,784,843,945,1014,1034,1099,1205,1226,1314,1397,1430,1476,1550,1607,1726,1745,1827,1859,1976,2020,60,107,163,195,261,332,421,486,535,614,702,711,785,844,946,1015,1035,1100,1206,1227,1315,1398,1431,1477,1551,1608,1727,1746,1828,1860,1977,2021,61,108,164,196,262,333,422,487,536,615,703,712,786,845,947,1016,1036,1101,1207,1228,1316,1399,1432,1478,1552,1609,1665,1747,1829,1861,1978,2022,62,109,165,197,263,334,423,488,537,616,641,713,787,846,948,1017,1037,1102,1208,1229,1317,1400,1433,1479,1553,1610,1666,1748,1830,1862,1979,2023,63,110,166,198,264,335,424,489,538,617,642,714,788,847,949,1018,1038,1103,1209,1230,1318,1401,1434,1480,1554,1611,1667,1749,1831,1863,1980,2024,
1,111,167,199,265,336,425,490,539,618,643,715,789,848,950,1019,1039,1104,1210,1231,1319,1402,1435,1481,1555,1612,1668,1750,1832,1864,1981,2025,2,112,168,200,266,337,426,491,540,619,644,716,790,849,951,1020,1040,1105,1211,1232,1320,1403,1436,1482,1556,1613,1669,1751,1833,1865,1982,2026,3,113,169,201,267,338,427,492,541,620,645,717,791,850,952,1021,1041,1106,1212,1233,1321,1404,1437,1483,1557,1614,1670,1752,1834,1866,1983,2027,4,114,170,202,268,339,428,493,542,621,646,718,792,851,953,1022,1042,1107,1213,1234,1322,1405,1438,1484,1558,1615,1671,1753,1835,1867,1921,2028,5,115,171,203,269,340,429,494,543,622,647,719,793,852,954,1023,1043,1108,1214,1235,1323,1406,1439,1485,1559,1616,1672,1754,1836,1868,1922,2029,6,116,172,204,270,341,430,495,544,623,648,720,794,853,955,961,1044,1109,1215,1236,1324,1407,1440,1486,1560,1617,1673,1755,1837,1869,1923,2030,7,117,173,205,271,342,431,496,545,624,649,721,795,854,956,962,1045,1110,1153,1237,1325,1345,1441,1487,1561,1618,1674,1756,1838,1870,1924,2031,8,118,174,206,272,343,432,497,546,625,650,722,796,855,957,963,1046,1111,1154,1238,1326,1346,1442,1488,1562,1619,1675,1757,1839,1871,1925,2032,9,119,175,207,273,344,433,498,547,626,651,723,797,856,958,964,1047,1112,1155,1239,1327,1347,1443,1489,1563,1620,1676,1758,1840,1872,1926,2033,10,120,176,208,274,345,434,499,548,627,652,724,798,857,959,965,1048,1113,1156,1240,1328,1348,1444,1490,1564,1621,1677,1759,1841,1873,1927,2034,11,121,177,209,275,346,435,500,549,628,653,725,799,858,897,966,1049,1114,1157,1241,1329,1349,1445,1491,1565,1622,1678,1760,1842,1874,1928,2035,12,122,178,210,276,347,436,501,550,629,654,726,800,859,898,967,1050,1115,1158,1242,1330,1350,1446,1492,1566,1623,1679,1761,1843,1875,1929,2036,13,123,179,211,277,348,437,502,551,630,655,727,801,860,899,968,1051,1116,1159,1243,1331,1351,1447,1493,1567,1624,1680,1762,1844,1876,1930,2037,14,124,180,212,278,349,438,503,552,631,656,728,802,861,900,969,1052,1117,1160,1244,1332,1352,1448,1494,1568,1625,1681,1763,1845,1877,1931,2038,15,125,181,213,279,350,439,504,553,632,657,729,803,862,901,970,1053,1118,1161,1245,1333,1353,1449,1495,1569,1626,1682,1764,1846,1878,1932,2039,16,126,182,214,280,351,440,505,554,633,658,730,804,863,902,971,1054,1119,1162,1246,1334,1354,1450,1496,1570,1627,1683,1765,1847,1879,1933,2040,17,127,183,215,281,352,441,506,555,634,659,731,805,864,903,972,1055,1120,1163,1247,1335,1355,1451,1497,1571,1628,1684,1766,1848,1880,1934,2041,18,65,184,216,282,353,442,507,556,635,660,732,806,865,904,973,1056,1121,1164,1248,1336,1356,1452,1498,1572,1629,1685,1767,1849,1881,1935,2042,19,66,185,217,283,354,443,508,557,636,661,733,807,866,905,974,1057,1122,1165,1249,1337,1357,1453,1499,1573,1630,1686,1768,1850,1882,1936,2043,20,67,186,218,284,355,444,509,558,637,662,734,808,867,906,975,1058,1123,1166,1250,1338,1358,1454,1500,1574,1631,1687,1769,1851,1883,1937,2044,21,68,187,219,285,356,445,510,559,638,663,735,809,868,907,976,1059,1124,1167,1251,1339,1359,1455,1501,1575,1632,1688,1770,1852,1884,1938,2045,22,69,188,220,286,357,446,511,560,639,664,736,810,869,908,977,1060,1125,1168,1252,1340,1360,1456,1502,1576,1633,1689,1771,1853,1885,1939,2046,23,70,189,221,287,358,447,449,561,577,665,737,811,870,909,978,1061,1126,1169,1253,1341,1361,1457,1503,1577,1634,1690,1772,1854,1886,1940,2047,
24,71,190,222,288,359,385,450,562,578,666,738,812,871,910,979,1062,1127,1170,1254,1342,1362,1458,1504,1578,1635,1691,1773,1855,1887,1941,1985,25,99,182,227,258,367,416,497,568,615,702,717,816,854,959,1017,1056,1130,1170,1231,1313,1386,1436,1525,1541,1652,1703,1769,1821,1898,1921,1984,0,90,164,247,292,323,432,481,562,633,680,767,782,881,919,961,1082,1140,1176,1235,1296,1378,1451,1501,1590,1606,1717,1768,1834,1886,1963,1986,31,80,180,193,261,362,447,461,525,593,699,732,826,847,929,972,1041,1135,1182,1242,1284,1351,1440,1499,1584,1660,1691,1770,1812,1871,1971,1987,37,85,144,237,274,361,429,490,534,612,685,721,821,850,943,995,1038,1088,1202,1238,1316,1407,1447,1534,1596,1627,1676,1732,1802,1875,1936,1988,57,79,184,232,289,324,407,493,515,598,673,728,768,833,923,1014,1054,1136,1194,1249,1329,1362,1443,1492,1569,1611,1680,1754,1807,1917,1925,1989,49,91,154,192,271,333,397,476,573,586,642,724,822,841,952,1000,1081,1142,1169,1272,1281,1360,1454,1479,1562,1642,1722,1751,1801,1893,1932,1990,24,127,171,233,312,377,402,484,512,618,655,735,828,869,955,988,1058,1099,1171,1228,1326,1395,1414,1533,1580,1603,1698,1767,1813,1892,1928,1991,26,120,142,239,302,372,396,449,574,631,670,758,785,858,938,1020,1028,1091,1196,1277,1304,1353,1433,1500,1578,1640,1697,1731,1849,1918,1939,1992,51,75,152,196,307,320,408,501,517,583,652,714,777,865,946,970,1045,1129,1155,1265,1294,1403,1419,1484,1550,1625,1723,1771,1842,1864,1962,1993,10,73,166,251,301,373,444,508,537,628,693,763,815,861,911,985,1079,1131,1215,1234,1299,1394,1470,1515,1571,1629,1669,1741,1797,1908,1981,1994,7,108,146,226,313,379,437,504,529,606,683,751,817,872,900,967,1026,1093,1168,1247,1293,1361,1439,1476,1558,1608,1713,1758,1795,1903,1967,1995,23,66,175,228,286,336,392,452,567,596,688,720,779,895,907,1008,1040,1115,1195,1262,1305,1345,1452,1513,1549,1647,1708,1729,1830,1856,1955,1996,50,116,178,253,279,328,390,475,569,601,682,733,801,851,903,998,1083,1112,1172,1244,1341,1376,1467,1498,1579,1646,1664,1739,1851,1904,1924,1997,27,107,161,212,297,366,425,494,531,595,694,748,798,837,914,1003,1049,1128,1205,1222,1334,1400,1449,1502,1563,1609,1709,1753,1838,1910,1937,1998,60,74,169,209,295,368,446,480,553,607,667,730,814,888,937,997,1052,1092,1159,1275,1289,1374,1427,1481,1594,1618,1715,1733,1829,1867,1952,1999,14,121,134,225,267,330,433,468,550,580,660,708,778,857,956,1009,1035,1132,1193,1217,1287,1359,1417,1520,1555,1662,1672,1762,1796,1859,1934,2000,48,89,186,252,288,352,424,500,566,636,678,761,818,870,942,982,1043,1102,1203,1274,1322,1363,1422,1519,1592,1657,1727,1765,1843,1897,1975,2001,58,113,130,229,275,349,391,450,530,591,676,766,788,885,930,975,1071,1119,1154,1223,1343,1405,1416,1482,1577,1600,1702,1748,1811,1899,1965,2002,9,87,189,199,266,365,438,465,570,589,648,760,805,867,899,993,1060,1090,1197,1259,1330,1381,1428,1491,1581,1658,1704,1756,1835,1861,1970,2003,52,72,137,216,296,329,406,510,540,624,669,709,776,845,912,991,1067,1100,1163,1252,1321,1380,1464,1535,1560,1601,1666,1784,1809,1883,1964,2004,18,76,160,250,280,369,430,488,557,582,656,745,786,835,927,963,1063,1114,1166,1270,1288,1406,1457,1530,1599,1621,1688,1773,1794,1880,1976,2005,21,118,179,197,311,339,404,478,528,632,647,738,800,840,909,984,1074,1094,1212,1268,1335,1352,1412,1472,1598,1613,1685,1780,1798,1896,1949,2006,
4,94,165,211,272,356,389,483,538,623,677,756,780,834,950,971,1034,1123,1157,1240,1303,1396,1410,1531,1561,1651,1701,1776,1840,1860,1942,2007,12,93,153,254,309,327,393,477,552,590,661,754,809,846,940,962,1053,1126,1185,1261,1327,1391,1445,1474,1570,1653,1665,1787,1816,1900,1960,2008,40,119,185,220,294,337,435,489,532,637,692,726,812,882,945,992,1039,1109,1174,1248,1301,1344,1466,1494,1551,1615,1705,1747,1815,1870,1958,2009,29,65,135,223,298,351,411,462,561,605,653,747,795,875,939,976,1027,1117,1181,1239,1286,1392,1453,1486,1546,1637,1675,1766,1841,1887,1930,2010,36,109,150,206,277,331,410,455,564,629,690,734,803,893,951,1007,1059,1145,1177,1269,1290,1398,1444,1524,1536,1634,1692,1752,1850,1858,1951,2011,32,104,132,214,316,360,436,473,547,603,675,725,831,891,924,968,1072,1134,1188,1253,1332,1355,1411,1526,1547,1650,1726,1740,1831,1868,1938,2012,43,64,173,242,315,363,445,471,555,588,679,755,820,863,917,1005,1087,1141,1211,1221,1308,1347,1458,1488,1553,1614,1673,1772,1826,1882,1929,2013,3,105,163,231,278,346,426,506,520,592,658,739,827,884,935,990,1069,1137,1167,1245,1307,1385,1426,1510,1573,1654,1687,1785,1792,1862,1959,2014,22,111,168,238,287,354,421,464,572,634,697,707,823,871,933,994,1047,1148,1153,1219,1333,1387,1450,1507,1565,1624,1667,1737,1827,1891,1943,2015,8,68,162,234,268,382,384,451,516,610,696,731,771,862,905,973,1037,1108,1204,1267,1342,1349,1424,1523,1540,1641,1696,1782,1833,1894,1974,2016,59,123,174,245,263,371,422,505,575,609,659,705,794,892,926,1012,1042,1127,1173,1271,1323,1371,1409,1487,1542,1612,1699,1760,1853,1877,1935,2017,28,98,147,205,256,378,428,472,523,635,668,753,813,876,913,1011,1036,1113,1186,1250,1318,1368,1413,1527,1567,1622,1682,1750,1845,1885,1972,2018,41,100,140,224,264,374,385,456,546,581,649,757,799,844,904,974,1048,1101,1201,1226,1280,1384,1455,1497,1589,1636,1690,1755,1820,1913,1957,2019,56,125,158,210,270,322,440,487,565,625,644,736,787,868,934,983,1084,1133,1183,1225,1319,1348,1431,1514,1586,1616,1718,1749,1822,1902,1961,2020,38,84,156,198,290,345,415,511,551,620,640,712,819,842,918,964,1077,1146,1161,1251,1325,1388,1430,1485,1539,1645,1707,1761,1847,1909,1940,2021,16,81,191,230,282,364,417,485,539,576,645,711,769,890,949,1022,1032,1098,1214,1260,1282,1358,1456,1495,1566,1648,1714,1734,1806,1905,1979,2022,6,97,149,243,257,350,442,470,571,621,651,737,784,894,910,960,1030,1143,1156,1241,1337,1375,1465,1509,1543,1631,1710,1790,1803,1916,1978,2023,11,124,136,195,259,338,401,474,521,627,671,746,829,873,947,1023,1065,1121,1213,1236,1312,1346,1446,1489,1576,1639,1721,1745,1819,1876,1941,2024,5,101,190,240,284,370,398,453,536,584,663,727,807,849,932,966,1086,1111,1162,1216,1314,1356,1441,1518,1593,1604,1681,1743,1846,1895,1950,2025,17,71,157,218,306,383,414,492,518,639,701,722,797,848,936,986,1073,1116,1198,1237,1339,1370,1408,1521,1564,1656,1700,1778,1823,1881,1931,2026,53,88,141,208,303,335,441,491,559,614,703,704,802,874,915,978,1064,1110,1191,1243,1298,1350,1442,1504,1574,1663,1686,1736,1793,1869,1926,2027,46,122,172,213,319,380,418,454,549,616,665,723,796,883,954,1016,1031,1122,1209,1263,1295,1379,1448,1512,1588,1659,1674,1786,1810,1901,1920,2028,1,69,133,207,283,358,388,463,554,578,687,729,808,864,953,1018,1078,1095,1207,1255,1311,1382,1468,1477,1568,1607,1706,1777,1844,1914,1927,2029,
62,83,170,219,260,348,405,507,548,600,684,749,781,859,916,980,1046,1151,1179,1230,1338,1365,1460,1529,1597,1630,1719,1744,1854,1866,1933,2030,34,126,155,255,293,353,439,502,560,597,700,741,774,832,925,1002,1070,1106,1200,1232,1315,1373,1435,1473,1537,1649,1671,1791,1805,1911,1953,2031,55,92,159,248,310,347,386,448,533,613,664,716,792,860,906,999,1044,1104,1187,1257,1285,1401,1437,1532,1583,1635,1716,1759,1848,1889,1945,2032,42,95,138,203,281,359,400,503,526,577,641,718,790,866,901,1015,1029,1139,1178,1279,1302,1390,1462,1480,1591,1623,1694,1783,1814,1879,1983,2033,33,78,177,201,291,332,443,509,544,617,674,743,825,886,896,979,1033,1097,1208,1276,1336,1397,1421,1503,1556,1655,1684,1757,1817,1884,1922,2034,63,86,176,236,305,325,409,466,542,587,691,765,783,878,902,1019,1075,1147,1192,1229,1283,1393,1418,1522,1545,1605,1689,1742,1800,1878,1947,2035,47,114,139,194,285,343,412,458,514,604,662,762,770,853,908,989,1051,1138,1160,1256,1297,1404,1434,1508,1552,1620,1683,1746,1808,1890,1969,2036,15,103,148,244,314,341,395,496,535,638,672,715,824,855,928,1006,1050,1105,1184,1233,1340,1364,1461,1496,1548,1602,1695,1788,1836,1863,1966,2037,39,110,129,235,317,376,403,498,522,585,686,742,791,880,920,977,1076,1089,1158,1266,1306,1383,1438,1528,1559,1643,1668,1764,1825,1919,1982,2038,13,106,187,202,300,334,431,460,513,599,666,719,775,839,958,987,1085,1120,1206,1220,1309,1369,1471,1478,1582,1633,1724,1763,1832,1874,1946,2039,61,117,128,249,308,321,420,482,543,579,695,752,806,836,897,1001,1066,1144,1210,1254,1292,1357,1425,1493,1538,1638,1679,1789,1828,1872,1923,2040,2,77,188,217,273,375,427,479,527,608,698,706,830,852,922,981,1061,1118,1189,1264,1300,1389,1459,1475,1587,1632,1677,1735,1839,1907,1956,2041,44,96,131,241,262,342,423,495,558,611,681,740,804,879,944,1010,1024,1103,1165,1278,1328,1402,1469,1516,1575,1644,1712,1779,1799,1865,1973,2042,20,82,151,215,269,326,434,459,519,594,689,750,789,856,941,1013,1062,1107,1164,1258,1317,1354,1420,1506,1544,1617,1670,1774,1818,1915,1944,2043,19,70,143,200,265,357,394,499,556,602,654,764,793,889,957,996,1068,1149,1190,1224,1324,1399,1463,1511,1557,1610,1720,1728,1804,1906,1954,2044,45,102,181,204,276,381,413,469,541,630,643,744,772,843,921,1004,1025,1125,1199,1227,1320,1377,1429,1505,1572,1628,1711,1775,1855,1873,1968,2045,54,115,183,246,299,355,399,486,545,619,650,710,811,877,898,969,1080,1124,1180,1273,1331,1367,1432,1517,1554,1626,1678,1781,1824,1857,1948,2046,35,67,145,222,318,340,387,457,524,626,646,713,810,887,931,1021,1055,1150,1175,1218,1291,1372,1415,1490,1595,1661,1725,1738,1837,1888,1977,2047,30,112,167,221,304,344,419,467,563,622,657,759,773,838,948,965,1057,1096,1152,1246,1310,1366,1423,1483,1585,1619,1693,1730,1852,1912,1980,1985,26,100,183,228,259,368,417,498,569,616,703,718,817,855,897,1018,1057,1131,1171,1232,1314,1387,1437,1526,1542,1653,1704,1770,1822,1899,1922,1984,31,113,168,222,305,345,420,468,564,623,658,760,774,839,949,966,1058,1097,1152,1247,1311,1367,1424,1484,1586,1620,1694,1731,1853,1913,1981,1986,0,91,165,248,293,324,433,482,563,634,681,705,783,882,920,962,1083,1141,1177,1236,1297,1379,1452,1502,1591,1607,1718,1769,1835,1887,1964,1987,32,81,181,194,262,363,385,462,526,594,700,733,827,848,930,973,1042,1136,1183,1243,1285,1352,1441,1500,1585,1661,1692,1771,1813,1872,1972,1988,
38,86,145,238,275,362,430,491,535,613,686,722,822,851,944,996,1039,1088,1203,1239,1317,1345,1448,1535,1597,1628,1677,1733,1803,1876,1937,1989,58,80,185,233,290,325,408,494,516,599,674,729,768,834,924,1015,1055,1137,1195,1250,1330,1363,1444,1493,1570,1612,1681,1755,1808,1918,1926,1990,50,92,155,192,272,334,398,477,574,587,643,725,823,842,953,1001,1082,1143,1170,1273,1282,1361,1455,1480,1563,1643,1723,1752,1802,1894,1933,1991,25,65,172,234,313,378,403,485,512,619,656,736,829,870,956,989,1059,1100,1172,1229,1327,1396,1415,1534,1581,1604,1699,1768,1814,1893,1929,1992,27,121,143,240,303,373,397,450,575,632,671,759,786,859,939,1021,1029,1092,1197,1278,1305,1354,1434,1501,1579,1641,1698,1732,1850,1919,1940,1993,52,76,153,197,308,320,409,502,518,584,653,715,778,866,947,971,1046,1130,1156,1266,1295,1404,1420,1485,1551,1626,1724,1772,1843,1865,1963,1994,11,74,167,252,302,374,445,509,538,629,694,764,816,862,912,986,1080,1132,1153,1235,1300,1395,1471,1516,1572,1630,1670,1742,1798,1909,1982,1995,8,109,147,227,314,380,438,505,530,607,684,752,818,873,901,968,1027,1094,1169,1248,1294,1362,1440,1477,1559,1609,1714,1759,1796,1904,1968,1996,24,67,176,229,287,337,393,453,568,597,689,721,780,833,908,1009,1041,1116,1196,1263,1306,1346,1453,1514,1550,1648,1709,1730,1831,1856,1956,1997,51,117,179,254,280,329,391,476,570,602,683,734,802,852,904,999,1084,1113,1173,1245,1342,1377,1468,1499,1580,1647,1664,1740,1852,1905,1925,1998,28,108,162,213,298,367,426,495,532,596,695,749,799,838,915,1004,1050,1129,1206,1223,1335,1401,1450,1503,1564,1610,1710,1754,1839,1911,1938,1999,61,75,170,210,296,369,447,481,554,608,668,731,815,889,938,998,1053,1093,1160,1276,1290,1375,1428,1482,1595,1619,1716,1734,1830,1868,1953,2000,15,122,135,226,268,331,434,469,551,581,661,709,779,858,957,1010,1036,1133,1194,1218,1288,1360,1418,1521,1556,1663,1673,1763,1797,1860,1935,2001,49,90,187,253,289,353,425,501,567,637,679,762,819,871,943,983,1044,1103,1204,1275,1323,1364,1423,1520,1593,1658,1665,1766,1844,1898,1976,2002,59,114,131,230,276,350,392,451,531,592,677,767,789,886,931,976,1072,1120,1155,1224,1281,1406,1417,1483,1578,1600,1703,1749,1812,1900,1966,2003,10,88,190,200,267,366,439,466,571,590,649,761,806,868,900,994,1061,1091,1198,1260,1331,1382,1429,1492,1582,1659,1705,1757,1836,1862,1971,2004,53,73,138,217,297,330,407,511,541,625,670,710,777,846,913,992,1068,1101,1164,1253,1322,1381,1465,1473,1561,1602,1667,1785,1810,1884,1965,2005,19,77,161,251,281,370,431,489,558,583,657,746,787,836,928,964,1064,1115,1167,1271,1289,1407,1458,1531,1537,1622,1689,1774,1795,1881,1977,2006,22,119,180,198,312,340,405,479,529,633,648,739,801,841,910,985,1075,1095,1213,1269,1336,1353,1413,1472,1599,1614,1686,1781,1799,1897,1950,2007,5,95,166,212,273,357,390,484,539,624,678,757,781,835,951,972,1035,1124,1158,1241,1304,1397,1411,1532,1562,1652,1702,1777,1841,1861,1943,2008,13,94,154,255,310,328,394,478,553,591,662,755,810,847,941,963,1054,1127,1186,1262,1328,1392,1446,1475,1571,1654,1666,1788,1817,1901,1961,2009,41,120,186,221,295,338,436,490,533,638,693,727,813,883,946,993,1040,1110,1175,1249,1302,1344,1467,1495,1552,1616,1706,1748,1816,1871,1959,2010,30,66,136,224,299,352,412,463,562,606,654,748,796,876,940,977,1028,1118,1182,1240,1287,1393,1454,1487,1547,1638,1676,1767,1842,1888,1931,2011,
37,110,151,207,278,332,411,456,565,630,691,735,804,894,952,1008,1060,1146,1178,1270,1291,1399,1445,1525,1536,1635,1693,1753,1851,1859,1952,2012,33,105,133,215,317,361,437,474,548,604,676,726,769,892,925,969,1073,1135,1189,1254,1333,1356,1412,1527,1548,1651,1727,1741,1832,1869,1939,2013,44,64,174,243,316,364,446,472,556,589,680,756,821,864,918,1006,1025,1142,1212,1222,1309,1348,1459,1489,1554,1615,1674,1773,1827,1883,1930,2014,4,106,164,232,279,347,427,507,521,593,659,740,828,885,936,991,1070,1138,1168,1246,1308,1386,1427,1511,1574,1655,1688,1786,1792,1863,1960,2015,23,112,169,239,288,355,422,465,573,635,698,708,824,872,934,995,1048,1149,1154,1220,1334,1388,1451,1508,1566,1625,1668,1738,1828,1892,1944,2016,9,69,163,235,269,383,384,452,517,611,697,732,772,863,906,974,1038,1109,1205,1268,1343,1350,1425,1524,1541,1642,1697,1783,1834,1895,1975,2017,60,124,175,246,264,372,423,506,513,610,660,706,795,893,927,1013,1043,1128,1174,1272,1324,1372,1410,1488,1543,1613,1700,1761,1854,1878,1936,2018,29,99,148,206,256,379,429,473,524,636,669,754,814,877,914,1012,1037,1114,1187,1251,1319,1369,1414,1528,1568,1623,1683,1751,1846,1886,1973,2019,42,101,141,225,265,375,386,457,547,582,650,758,800,845,905,975,1049,1102,1202,1227,1280,1385,1456,1498,1590,1637,1691,1756,1821,1914,1958,2020,57,126,159,211,271,323,441,488,566,626,645,737,788,869,935,984,1085,1134,1184,1226,1320,1349,1432,1515,1587,1617,1719,1750,1823,1903,1962,2021,39,85,157,199,291,346,416,449,552,621,640,713,820,843,919,965,1078,1147,1162,1252,1326,1389,1431,1486,1540,1646,1708,1762,1848,1910,1941,2022,17,82,129,231,283,365,418,486,540,576,646,712,770,891,950,1023,1033,1099,1215,1261,1283,1359,1457,1496,1567,1649,1715,1735,1807,1906,1980,2023,7,98,150,244,258,351,443,471,572,622,652,738,785,895,911,960,1031,1144,1157,1242,1338,1376,1466,1510,1544,1632,1711,1791,1804,1917,1979,2024,12,125,137,196,260,339,402,475,522,628,672,747,830,874,948,961,1066,1122,1214,1237,1313,1347,1447,1490,1577,1640,1722,1746,1820,1877,1942,2025,6,102,191,241,285,371,399,454,537,585,664,728,808,850,933,967,1087,1112,1163,1216,1315,1357,1442,1519,1594,1605,1682,1744,1847,1896,1951,2026,18,72,158,219,307,321,415,493,519,577,702,723,798,849,937,987,1074,1117,1199,1238,1340,1371,1408,1522,1565,1657,1701,1779,1824,1882,1932,2027,54,89,142,209,304,336,442,492,560,615,641,704,803,875,916,979,1065,1111,1192,1244,1299,1351,1443,1505,1575,1601,1687,1737,1794,1870,1927,2028,47,123,173,214,257,381,419,455,550,617,666,724,797,884,955,1017,1032,1123,1210,1264,1296,1380,1449,1513,1589,1660,1675,1787,1811,1902,1920,2029,2,70,134,208,284,359,389,464,555,579,688,730,809,865,954,1019,1079,1096,1208,1256,1312,1383,1469,1478,1569,1608,1707,1778,1845,1915,1928,2030,63,84,171,220,261,349,406,508,549,601,685,750,782,860,917,981,1047,1089,1180,1231,1339,1366,1461,1530,1598,1631,1720,1745,1855,1867,1934,2031,35,127,156,193,294,354,440,503,561,598,701,742,775,832,926,1003,1071,1107,1201,1233,1316,1374,1436,1474,1538,1650,1672,1729,1806,1912,1954,2032,56,93,160,249,311,348,387,448,534,614,665,717,793,861,907,1000,1045,1105,1188,1258,1286,1402,1438,1533,1584,1636,1717,1760,1849,1890,1946,2033,43,96,139,204,282,360,401,504,527,578,642,719,791,867,902,1016,1030,1140,1179,1217,1303,1391,1463,1481,1592,1624,1695,1784,1815,1880,1921,2034,
34,79,178,202,292,333,444,510,545,618,675,744,826,887,896,980,1034,1098,1209,1277,1337,1398,1422,1504,1557,1656,1685,1758,1818,1885,1923,2035,1,87,177,237,306,326,410,467,543,588,692,766,784,879,903,1020,1076,1148,1193,1230,1284,1394,1419,1523,1546,1606,1690,1743,1801,1879,1948,2036,48,115,140,195,286,344,413,459,515,605,663,763,771,854,909,990,1052,1139,1161,1257,1298,1405,1435,1509,1553,1621,1684,1747,1809,1891,1970,2037,16,104,149,245,315,342,396,497,536,639,673,716,825,856,929,1007,1051,1106,1185,1234,1341,1365,1462,1497,1549,1603,1696,1789,1837,1864,1967,2038,40,111,130,236,318,377,404,499,523,586,687,743,792,881,921,978,1077,1090,1159,1267,1307,1384,1439,1529,1560,1644,1669,1765,1826,1857,1983,2039,14,107,188,203,301,335,432,461,514,600,667,720,776,840,959,988,1086,1121,1207,1221,1310,1370,1409,1479,1583,1634,1725,1764,1833,1875,1947,2040,62,118,128,250,309,322,421,483,544,580,696,753,807,837,898,1002,1067,1145,1211,1255,1293,1358,1426,1494,1539,1639,1680,1790,1829,1873,1924,2041,3,78,189,218,274,376,428,480,528,609,699,707,831,853,923,982,1062,1119,1190,1265,1301,1390,1460,1476,1588,1633,1678,1736,1840,1908,1957,2042,45,97,132,242,263,343,424,496,559,612,682,741,805,880,945,1011,1024,1104,1166,1279,1329,1403,1470,1517,1576,1645,1713,1780,1800,1866,1974,2043,21,83,152,216,270,327,435,460,520,595,690,751,790,857,942,1014,1063,1108,1165,1259,1318,1355,1421,1507,1545,1618,1671,1775,1819,1916,1945,2044,20,71,144,201,266,358,395,500,557,603,655,765,794,890,958,997,1069,1150,1191,1225,1325,1400,1464,1512,1558,1611,1721,1728,1805,1907,1955,2045,46,103,182,205,277,382,414,470,542,631,644,745,773,844,922,1005,1026,1126,1200,1228,1321,1378,1430,1506,1573,1629,1712,1776,1793,1874,1969,2046,55,116,184,247,300,356,400,487,546,620,651,711,812,878,899,970,1081,1125,1181,1274,1332,1368,1433,1518,1555,1627,1679,1782,1825,1858,1949,2047,36,68,146,223,319,341,388,458,525,627,647,714,811,888,932,1022,1056,1151,1176,1219,1292,1373,1416,1491,1596,1662,1726,1739,1838,1889,1978,1985,27,101,184,229,260,369,418,499,570,617,641,719,818,856,898,1019,1058,1132,1172,1233,1315,1388,1438,1527,1543,1654,1705,1771,1823,1900,1923,1984,37,69,147,224,257,342,389,459,526,628,648,715,812,889,933,1023,1057,1089,1177,1220,1293,1374,1417,1492,1597,1663,1727,1740,1839,1890,1979,1986,32,114,169,223,306,346,421,469,565,624,659,761,775,840,950,967,1059,1098,1152,1248,1312,1368,1425,1485,1587,1621,1695,1732,1854,1914,1982,1987,0,92,166,249,294,325,434,483,564,635,682,706,784,883,921,963,1084,1142,1178,1237,1298,1380,1453,1503,1592,1608,1719,1770,1836,1888,1965,1988,33,82,182,195,263,364,386,463,527,595,701,734,828,849,931,974,1043,1137,1184,1244,1286,1353,1442,1501,1586,1662,1693,1772,1814,1873,1973,1989,39,87,146,239,276,363,431,492,536,614,687,723,823,852,945,997,1040,1088,1204,1240,1318,1346,1449,1473,1598,1629,1678,1734,1804,1877,1938,1990,59,81,186,234,291,326,409,495,517,600,675,730,768,835,925,1016,1056,1138,1196,1251,1331,1364,1445,1494,1571,1613,1682,1756,1809,1919,1927,1991,51,93,156,192,273,335,399,478,575,588,644,726,824,843,954,1002,1083,1144,1171,1274,1283,1362,1456,1481,1564,1644,1724,1753,1803,1895,1934,1992,26,66,173,235,314,379,404,486,512,620,657,737,830,871,957,990,1060,1101,1173,1230,1328,1397,1416,1535,1582,1605,1700,1769,1815,1894,1930,1993,
28,122,144,241,304,374,398,451,513,633,672,760,787,860,940,1022,1030,1093,1198,1279,1306,1355,1435,1502,1580,1642,1699,1733,1851,1857,1941,1994,53,77,154,198,309,320,410,503,519,585,654,716,779,867,948,972,1047,1131,1157,1267,1296,1405,1421,1486,1552,1627,1725,1773,1844,1866,1964,1995,12,75,168,253,303,375,446,510,539,630,695,765,817,863,913,987,1081,1133,1154,1236,1301,1396,1409,1517,1573,1631,1671,1743,1799,1910,1983,1996,9,110,148,228,315,381,439,506,531,608,685,753,819,874,902,969,1028,1095,1170,1249,1295,1363,1441,1478,1560,1610,1715,1760,1797,1905,1969,1997,25,68,177,230,288,338,394,454,569,598,690,722,781,834,909,1010,1042,1117,1197,1264,1307,1347,1454,1515,1551,1649,1710,1731,1832,1856,1957,1998,52,118,180,255,281,330,392,477,571,603,684,735,803,853,905,1000,1085,1114,1174,1246,1343,1378,1469,1500,1581,1648,1664,1741,1853,1906,1926,1999,29,109,163,214,299,368,427,496,533,597,696,750,800,839,916,1005,1051,1130,1207,1224,1336,1402,1451,1504,1565,1611,1711,1755,1840,1912,1939,2000,62,76,171,211,297,370,385,482,555,609,669,732,816,890,939,999,1054,1094,1161,1277,1291,1376,1429,1483,1596,1620,1717,1735,1831,1869,1954,2001,16,123,136,227,269,332,435,470,552,582,662,710,780,859,958,1011,1037,1134,1195,1219,1289,1361,1419,1522,1557,1601,1674,1764,1798,1861,1936,2002,50,91,188,254,290,354,426,502,568,638,680,763,820,872,944,984,1045,1104,1205,1276,1324,1365,1424,1521,1594,1659,1666,1767,1845,1899,1977,2003,60,115,132,231,277,351,393,452,532,593,678,705,790,887,932,977,1073,1121,1156,1225,1282,1407,1418,1484,1579,1600,1704,1750,1813,1901,1967,2004,11,89,191,201,268,367,440,467,572,591,650,762,807,869,901,995,1062,1092,1199,1261,1332,1383,1430,1493,1583,1660,1706,1758,1837,1863,1972,2005,54,74,139,218,298,331,408,449,542,626,671,711,778,847,914,993,1069,1102,1165,1254,1323,1382,1466,1474,1562,1603,1668,1786,1811,1885,1966,2006,20,78,162,252,282,371,432,490,559,584,658,747,788,837,929,965,1065,1116,1168,1272,1290,1345,1459,1532,1538,1623,1690,1775,1796,1882,1978,2007,23,120,181,199,313,341,406,480,530,634,649,740,802,842,911,986,1076,1096,1214,1270,1337,1354,1414,1472,1537,1615,1687,1782,1800,1898,1951,2008,6,96,167,213,274,358,391,485,540,625,679,758,782,836,952,973,1036,1125,1159,1242,1305,1398,1412,1533,1563,1653,1703,1778,1842,1862,1944,2009,14,95,155,193,311,329,395,479,554,592,663,756,811,848,942,964,1055,1128,1187,1263,1329,1393,1447,1476,1572,1655,1667,1789,1818,1902,1962,2010,42,121,187,222,296,339,437,491,534,639,694,728,814,884,947,994,1041,1111,1176,1250,1303,1344,1468,1496,1553,1617,1707,1749,1817,1872,1960,2011,31,67,137,225,300,353,413,464,563,607,655,749,797,877,941,978,1029,1119,1183,1241,1288,1394,1455,1488,1548,1639,1677,1768,1843,1889,1932,2012,38,111,152,208,279,333,412,457,566,631,692,736,805,895,953,1009,1061,1147,1179,1271,1292,1400,1446,1526,1536,1636,1694,1754,1852,1860,1953,2013,34,106,134,216,318,362,438,475,549,605,677,727,770,893,926,970,1074,1136,1190,1255,1334,1357,1413,1528,1549,1652,1665,1742,1833,1870,1940,2014,45,64,175,244,317,365,447,473,557,590,681,757,822,865,919,1007,1026,1143,1213,1223,1310,1349,1460,1490,1555,1616,1675,1774,1828,1884,1931,2015,5,107,165,233,280,348,428,508,522,594,660,741,829,886,937,992,1071,1139,1169,1247,1309,1387,1428,1512,1575,1656,1689,1787,1792,1864,1961,2016,
24,113,170,240,289,356,423,466,574,636,699,709,825,873,935,996,1049,1150,1155,1221,1335,1389,1452,1509,1567,1626,1669,1739,1829,1893,1945,2017,10,70,164,236,270,321,384,453,518,612,698,733,773,864,907,975,1039,1110,1206,1269,1281,1351,1426,1525,1542,1643,1698,1784,1835,1896,1976,2018,61,125,176,247,265,373,424,507,514,611,661,707,796,894,928,1014,1044,1129,1175,1273,1325,1373,1411,1489,1544,1614,1701,1762,1855,1879,1937,2019,30,100,149,207,256,380,430,474,525,637,670,755,815,878,915,1013,1038,1115,1188,1252,1320,1370,1415,1529,1569,1624,1684,1752,1847,1887,1974,2020,43,102,142,226,266,376,387,458,548,583,651,759,801,846,906,976,1050,1103,1203,1228,1280,1386,1457,1499,1591,1638,1692,1757,1822,1915,1959,2021,58,127,160,212,272,324,442,489,567,627,646,738,789,870,936,985,1086,1135,1185,1227,1321,1350,1433,1516,1588,1618,1720,1751,1824,1904,1963,2022,40,86,158,200,292,347,417,450,553,622,640,714,821,844,920,966,1079,1148,1163,1253,1327,1390,1432,1487,1541,1647,1709,1763,1849,1911,1942,2023,18,83,130,232,284,366,419,487,541,576,647,713,771,892,951,961,1034,1100,1153,1262,1284,1360,1458,1497,1568,1650,1716,1736,1808,1907,1981,2024,8,99,151,245,259,352,444,472,573,623,653,739,786,833,912,960,1032,1145,1158,1243,1339,1377,1467,1511,1545,1633,1712,1729,1805,1918,1980,2025,13,126,138,197,261,340,403,476,523,629,673,748,831,875,949,962,1067,1123,1215,1238,1314,1348,1448,1491,1578,1641,1723,1747,1821,1878,1943,2026,7,103,129,242,286,372,400,455,538,586,665,729,809,851,934,968,1025,1113,1164,1216,1316,1358,1443,1520,1595,1606,1683,1745,1848,1897,1952,2027,19,73,159,220,308,322,416,494,520,578,703,724,799,850,938,988,1075,1118,1200,1239,1341,1372,1408,1523,1566,1658,1702,1780,1825,1883,1933,2028,55,90,143,210,305,337,443,493,561,616,642,704,804,876,917,980,1066,1112,1193,1245,1300,1352,1444,1506,1576,1602,1688,1738,1795,1871,1928,2029,48,124,174,215,258,382,420,456,551,618,667,725,798,885,956,1018,1033,1124,1211,1265,1297,1381,1450,1514,1590,1661,1676,1788,1812,1903,1920,2030,3,71,135,209,285,360,390,465,556,580,689,731,810,866,955,1020,1080,1097,1209,1257,1313,1384,1470,1479,1570,1609,1708,1779,1846,1916,1929,2031,1,85,172,221,262,350,407,509,550,602,686,751,783,861,918,982,1048,1090,1181,1232,1340,1367,1462,1531,1599,1632,1721,1746,1793,1868,1935,2032,36,65,157,194,295,355,441,504,562,599,702,743,776,832,927,1004,1072,1108,1202,1234,1317,1375,1437,1475,1539,1651,1673,1730,1807,1913,1955,2033,57,94,161,250,312,349,388,448,535,615,666,718,794,862,908,1001,1046,1106,1189,1259,1287,1403,1439,1534,1585,1637,1718,1761,1850,1891,1947,2034,44,97,140,205,283,361,402,505,528,579,643,720,792,868,903,1017,1031,1141,1180,1218,1304,1392,1464,1482,1593,1625,1696,1785,1816,1881,1922,2035,35,80,179,203,293,334,445,511,546,619,676,745,827,888,896,981,1035,1099,1210,1278,1338,1399,1423,1505,1558,1657,1686,1759,1819,1886,1924,2036,2,88,178,238,307,327,411,468,544,589,693,767,785,880,904,1021,1077,1149,1194,1231,1285,1395,1420,1524,1547,1607,1691,1744,1802,1880,1949,2037,49,116,141,196,287,345,414,460,516,606,664,764,772,855,910,991,1053,1140,1162,1258,1299,1406,1436,1510,1554,1622,1685,1748,1810,1892,1971,2038,17,105,150,246,316,343,397,498,537,577,674,717,826,857,930,1008,1052,1107,1186,1235,1342,1366,1463,1498,1550,1604,1697,1790,1838,1865,1968,2039,
41,112,131,237,319,378,405,500,524,587,688,744,793,882,922,979,1078,1091,1160,1268,1308,1385,1440,1530,1561,1645,1670,1766,1827,1858,1921,2040,15,108,189,204,302,336,433,462,515,601,668,721,777,841,897,989,1087,1122,1208,1222,1311,1371,1410,1480,1584,1635,1726,1765,1834,1876,1948,2041,63,119,128,251,310,323,422,484,545,581,697,754,808,838,899,1003,1068,1146,1212,1256,1294,1359,1427,1495,1540,1640,1681,1791,1830,1874,1925,2042,4,79,190,219,275,377,429,481,529,610,700,708,769,854,924,983,1063,1120,1191,1266,1302,1391,1461,1477,1589,1634,1679,1737,1841,1909,1958,2043,46,98,133,243,264,344,425,497,560,613,683,742,806,881,946,1012,1024,1105,1167,1217,1330,1404,1471,1518,1577,1646,1714,1781,1801,1867,1975,2044,22,84,153,217,271,328,436,461,521,596,691,752,791,858,943,1015,1064,1109,1166,1260,1319,1356,1422,1508,1546,1619,1672,1776,1820,1917,1946,2045,21,72,145,202,267,359,396,501,558,604,656,766,795,891,959,998,1070,1151,1192,1226,1326,1401,1465,1513,1559,1612,1722,1728,1806,1908,1956,2046,47,104,183,206,278,383,415,471,543,632,645,746,774,845,923,1006,1027,1127,1201,1229,1322,1379,1431,1507,1574,1630,1713,1777,1794,1875,1970,2047,56,117,185,248,301,357,401,488,547,621,652,712,813,879,900,971,1082,1126,1182,1275,1333,1369,1434,1519,1556,1628,1680,1783,1826,1859,1950,1985,28,102,185,230,261,370,419,500,571,618,642,720,819,857,899,1020,1059,1133,1173,1234,1316,1389,1439,1528,1544,1655,1706,1772,1824,1901,1924,1984,57,118,186,249,302,358,402,489,548,622,653,713,814,880,901,972,1083,1127,1183,1276,1334,1370,1435,1520,1557,1629,1681,1784,1827,1860,1951,1986,38,70,148,225,258,343,390,460,527,629,649,716,813,890,934,961,1058,1090,1178,1221,1294,1375,1418,1493,1598,1601,1665,1741,1840,1891,1980,1987,33,115,170,224,307,347,422,470,566,625,660,762,776,841,951,968,1060,1099,1152,1249,1313,1369,1426,1486,1588,1622,1696,1733,1855,1915,1983,1988,0,93,167,250,295,326,435,484,565,636,683,707,785,884,922,964,1085,1143,1179,1238,1299,1381,1454,1504,1593,1609,1720,1771,1837,1889,1966,1989,34,83,183,196,264,365,387,464,528,596,702,735,829,850,932,975,1044,1138,1185,1245,1287,1354,1443,1502,1587,1663,1694,1773,1815,1874,1974,1990,40,88,147,240,277,364,432,493,537,615,688,724,824,853,946,998,1041,1088,1205,1241,1319,1347,1450,1474,1599,1630,1679,1735,1805,1878,1939,1991,60,82,187,235,292,327,410,496,518,601,676,731,768,836,926,1017,1057,1139,1197,1252,1332,1365,1446,1495,1572,1614,1683,1757,1810,1857,1928,1992,52,94,157,192,274,336,400,479,513,589,645,727,825,844,955,1003,1084,1145,1172,1275,1284,1363,1457,1482,1565,1645,1725,1754,1804,1896,1935,1993,27,67,174,236,315,380,405,487,512,621,658,738,831,872,958,991,1061,1102,1174,1231,1329,1398,1417,1473,1583,1606,1701,1770,1816,1895,1931,1994,29,123,145,242,305,375,399,452,514,634,673,761,788,861,941,1023,1031,1094,1199,1217,1307,1356,1436,1503,1581,1643,1700,1734,1852,1858,1942,1995,54,78,155,199,310,320,411,504,520,586,655,717,780,868,949,973,1048,1132,1158,1268,1297,1406,1422,1487,1553,1628,1726,1774,1845,1867,1965,1996,13,76,169,254,304,376,447,511,540,631,696,766,818,864,914,988,1082,1134,1155,1237,1302,1397,1410,1518,1574,1632,1672,1744,1800,1911,1921,1997,10,111,149,229,316,382,440,507,532,609,686,754,820,875,903,970,1029,1096,1171,1250,1296,1364,1442,1479,1561,1611,1716,1761,1798,1906,1970,1998,
26,69,178,231,289,339,395,455,570,599,691,723,782,835,910,1011,1043,1118,1198,1265,1308,1348,1455,1516,1552,1650,1711,1732,1833,1856,1958,1999,53,119,181,193,282,331,393,478,572,604,685,736,804,854,906,1001,1086,1115,1175,1247,1281,1379,1470,1501,1582,1649,1664,1742,1854,1907,1927,2000,30,110,164,215,300,369,428,497,534,598,697,751,801,840,917,1006,1052,1131,1208,1225,1337,1403,1452,1505,1566,1612,1712,1756,1841,1913,1940,2001,63,77,172,212,298,371,386,483,556,610,670,733,817,891,940,1000,1055,1095,1162,1278,1292,1377,1430,1484,1597,1621,1718,1736,1832,1870,1955,2002,17,124,137,228,270,333,436,471,553,583,663,711,781,860,959,1012,1038,1135,1196,1220,1290,1362,1420,1523,1558,1602,1675,1765,1799,1862,1937,2003,51,92,189,255,291,355,427,503,569,639,681,764,821,873,945,985,1046,1105,1206,1277,1325,1366,1425,1522,1595,1660,1667,1768,1846,1900,1978,2004,61,116,133,232,278,352,394,453,533,594,679,706,791,888,933,978,1074,1122,1157,1226,1283,1345,1419,1485,1580,1600,1705,1751,1814,1902,1968,2005,12,90,129,202,269,368,441,468,573,592,651,763,808,870,902,996,1063,1093,1200,1262,1333,1384,1431,1494,1584,1661,1707,1759,1838,1864,1973,2006,55,75,140,219,299,332,409,450,543,627,672,712,779,848,915,994,1070,1103,1166,1255,1324,1383,1467,1475,1563,1604,1669,1787,1812,1886,1967,2007,21,79,163,253,283,372,433,491,560,585,659,748,789,838,930,966,1066,1117,1169,1273,1291,1346,1460,1533,1539,1624,1691,1776,1797,1883,1979,2008,24,121,182,200,314,342,407,481,531,635,650,741,803,843,912,987,1077,1097,1215,1271,1338,1355,1415,1472,1538,1616,1688,1783,1801,1899,1952,2009,7,97,168,214,275,359,392,486,541,626,680,759,783,837,953,974,1037,1126,1160,1243,1306,1399,1413,1534,1564,1654,1704,1779,1843,1863,1945,2010,15,96,156,194,312,330,396,480,555,593,664,757,812,849,943,965,1056,1129,1188,1264,1330,1394,1448,1477,1573,1656,1668,1790,1819,1903,1963,2011,43,122,188,223,297,340,438,492,535,577,695,729,815,885,948,995,1042,1112,1177,1251,1304,1344,1469,1497,1554,1618,1708,1750,1818,1873,1961,2012,32,68,138,226,301,354,414,465,564,608,656,750,798,878,942,979,1030,1120,1184,1242,1289,1395,1456,1489,1549,1640,1678,1769,1844,1890,1933,2013,39,112,153,209,280,334,413,458,567,632,693,737,806,833,954,1010,1062,1148,1180,1272,1293,1401,1447,1527,1536,1637,1695,1755,1853,1861,1954,2014,35,107,135,217,319,363,439,476,550,606,678,728,771,894,927,971,1075,1137,1191,1256,1335,1358,1414,1529,1550,1653,1666,1743,1834,1871,1941,2015,46,64,176,245,318,366,385,474,558,591,682,758,823,866,920,1008,1027,1144,1214,1224,1311,1350,1461,1491,1556,1617,1676,1775,1829,1885,1932,2016,6,108,166,234,281,349,429,509,523,595,661,742,830,887,938,993,1072,1140,1170,1248,1310,1388,1429,1513,1576,1657,1690,1788,1792,1865,1962,2017,25,114,171,241,290,357,424,467,575,637,700,710,826,874,936,997,1050,1151,1156,1222,1336,1390,1453,1510,1568,1627,1670,1740,1830,1894,1946,2018,11,71,165,237,271,322,384,454,519,613,699,734,774,865,908,976,1040,1111,1207,1270,1282,1352,1427,1526,1543,1644,1699,1785,1836,1897,1977,2019,62,126,177,248,266,374,425,508,515,612,662,708,797,895,929,1015,1045,1130,1176,1274,1326,1374,1412,1490,1545,1615,1702,1763,1793,1880,1938,2020,31,101,150,208,256,381,431,475,526,638,671,756,816,879,916,1014,1039,1116,1189,1253,1321,1371,1416,1530,1570,1625,1685,1753,1848,1888,1975,2021,
44,103,143,227,267,377,388,459,549,584,652,760,802,847,907,977,1051,1104,1204,1229,1280,1387,1458,1500,1592,1639,1693,1758,1823,1916,1960,2022,59,65,161,213,273,325,443,490,568,628,647,739,790,871,937,986,1087,1136,1186,1228,1322,1351,1434,1517,1589,1619,1721,1752,1825,1905,1964,2023,41,87,159,201,293,348,418,451,554,623,640,715,822,845,921,967,1080,1149,1164,1254,1328,1391,1433,1488,1542,1648,1710,1764,1850,1912,1943,2024,19,84,131,233,285,367,420,488,542,576,648,714,772,893,952,962,1035,1101,1154,1263,1285,1361,1459,1498,1569,1651,1717,1737,1809,1908,1982,2025,9,100,152,246,260,353,445,473,574,624,654,740,787,834,913,960,1033,1146,1159,1244,1340,1378,1468,1512,1546,1634,1713,1730,1806,1919,1981,2026,14,127,139,198,262,341,404,477,524,630,674,749,769,876,950,963,1068,1124,1153,1239,1315,1349,1449,1492,1579,1642,1724,1748,1822,1879,1944,2027,8,104,130,243,287,373,401,456,539,587,666,730,810,852,935,969,1026,1114,1165,1216,1317,1359,1444,1521,1596,1607,1684,1746,1849,1898,1953,2028,20,74,160,221,309,323,417,495,521,579,641,725,800,851,939,989,1076,1119,1201,1240,1342,1373,1408,1524,1567,1659,1703,1781,1826,1884,1934,2029,56,91,144,211,306,338,444,494,562,617,643,704,805,877,918,981,1067,1113,1194,1246,1301,1353,1445,1507,1577,1603,1689,1739,1796,1872,1929,2030,49,125,175,216,259,383,421,457,552,619,668,726,799,886,957,1019,1034,1125,1212,1266,1298,1382,1451,1515,1591,1662,1677,1789,1813,1904,1920,2031,4,72,136,210,286,361,391,466,557,581,690,732,811,867,956,1021,1081,1098,1210,1258,1314,1385,1471,1480,1571,1610,1709,1780,1847,1917,1930,2032,2,86,173,222,263,351,408,510,551,603,687,752,784,862,919,983,1049,1091,1182,1233,1341,1368,1463,1532,1537,1633,1722,1747,1794,1869,1936,2033,37,66,158,195,296,356,442,505,563,600,703,744,777,832,928,1005,1073,1109,1203,1235,1318,1376,1438,1476,1540,1652,1674,1731,1808,1914,1956,2034,58,95,162,251,313,350,389,448,536,616,667,719,795,863,909,1002,1047,1107,1190,1260,1288,1404,1440,1535,1586,1638,1719,1762,1851,1892,1948,2035,45,98,141,206,284,362,403,506,529,580,644,721,793,869,904,1018,1032,1142,1181,1219,1305,1393,1465,1483,1594,1626,1697,1786,1817,1882,1923,2036,36,81,180,204,294,335,446,449,547,620,677,746,828,889,896,982,1036,1100,1211,1279,1339,1400,1424,1506,1559,1658,1687,1760,1820,1887,1925,2037,3,89,179,239,308,328,412,469,545,590,694,705,786,881,905,1022,1078,1150,1195,1232,1286,1396,1421,1525,1548,1608,1692,1745,1803,1881,1950,2038,50,117,142,197,288,346,415,461,517,607,665,765,773,856,911,992,1054,1141,1163,1259,1300,1407,1437,1511,1555,1623,1686,1749,1811,1893,1972,2039,18,106,151,247,317,344,398,499,538,578,675,718,827,858,931,1009,1053,1108,1187,1236,1343,1367,1464,1499,1551,1605,1698,1791,1839,1866,1969,2040,42,113,132,238,257,379,406,501,525,588,689,745,794,883,923,980,1079,1092,1161,1269,1309,1386,1441,1531,1562,1646,1671,1767,1828,1859,1922,2041,16,109,190,205,303,337,434,463,516,602,669,722,778,842,898,990,1025,1123,1209,1223,1312,1372,1411,1481,1585,1636,1727,1766,1835,1877,1949,2042,1,120,128,252,311,324,423,485,546,582,698,755,809,839,900,1004,1069,1147,1213,1257,1295,1360,1428,1496,1541,1641,1682,1729,1831,1875,1926,2043,5,80,191,220,276,378,430,482,530,611,701,709,770,855,925,984,1064,1121,1192,1267,1303,1392,1462,1478,1590,1635,1680,1738,1842,1910,1959,2044,
47,99,134,244,265,345,426,498,561,614,684,743,807,882,947,1013,1024,1106,1168,1218,1331,1405,1409,1519,1578,1647,1715,1782,1802,1868,1976,2045,23,85,154,218,272,329,437,462,522,597,692,753,792,859,944,1016,1065,1110,1167,1261,1320,1357,1423,1509,1547,1620,1673,1777,1821,1918,1947,2046,22,73,146,203,268,360,397,502,559,605,657,767,796,892,897,999,1071,1089,1193,1227,1327,1402,1466,1514,1560,1613,1723,1728,1807,1909,1957,2047,48,105,184,207,279,321,416,472,544,633,646,747,775,846,924,1007,1028,1128,1202,1230,1323,1380,1432,1508,1575,1631,1714,1778,1795,1876,1971,1985,29,103,186,231,262,371,420,501,572,619,643,721,820,858,900,1021,1060,1134,1174,1235,1317,1390,1440,1529,1545,1656,1707,1773,1825,1902,1925,1984,49,106,185,208,280,322,417,473,545,634,647,748,776,847,925,1008,1029,1129,1203,1231,1324,1381,1433,1509,1576,1632,1715,1779,1796,1877,1972,1986,58,119,187,250,303,359,403,490,549,623,654,714,815,881,902,973,1084,1128,1184,1277,1335,1371,1436,1521,1558,1630,1682,1785,1828,1861,1952,1987,39,71,149,226,259,344,391,461,528,630,650,717,814,891,935,962,1059,1091,1179,1222,1295,1376,1419,1494,1599,1602,1666,1742,1841,1892,1981,1988,34,116,171,225,308,348,423,471,567,626,661,763,777,842,952,969,1061,1100,1152,1250,1314,1370,1427,1487,1589,1623,1697,1734,1793,1916,1921,1989,0,94,168,251,296,327,436,485,566,637,684,708,786,885,923,965,1086,1144,1180,1239,1300,1382,1455,1505,1594,1610,1721,1772,1838,1890,1967,1990,35,84,184,197,265,366,388,465,529,597,703,736,830,851,933,976,1045,1139,1186,1246,1288,1355,1444,1503,1588,1601,1695,1774,1816,1875,1975,1991,41,89,148,241,278,365,433,494,538,616,689,725,825,854,947,999,1042,1088,1206,1242,1320,1348,1451,1475,1537,1631,1680,1736,1806,1879,1940,1992,61,83,188,236,293,328,411,497,519,602,677,732,768,837,927,1018,1058,1140,1198,1253,1333,1366,1447,1496,1573,1615,1684,1758,1811,1858,1929,1993,53,95,158,192,275,337,401,480,514,590,646,728,826,845,956,1004,1085,1146,1173,1276,1285,1364,1458,1483,1566,1646,1726,1755,1805,1897,1936,1994,28,68,175,237,316,381,406,488,512,622,659,739,769,873,959,992,1062,1103,1175,1232,1330,1399,1418,1474,1584,1607,1702,1771,1817,1896,1932,1995,30,124,146,243,306,376,400,453,515,635,674,762,789,862,942,961,1032,1095,1200,1218,1308,1357,1437,1504,1582,1644,1701,1735,1853,1859,1943,1996,55,79,156,200,311,320,412,505,521,587,656,718,781,869,950,974,1049,1133,1159,1269,1298,1407,1423,1488,1554,1629,1727,1775,1846,1868,1966,1997,14,77,170,255,305,377,385,449,541,632,697,767,819,865,915,989,1083,1135,1156,1238,1303,1398,1411,1519,1575,1633,1673,1745,1801,1912,1922,1998,11,112,150,230,317,383,441,508,533,610,687,755,821,876,904,971,1030,1097,1172,1251,1297,1365,1443,1480,1562,1612,1717,1762,1799,1907,1971,1999,27,70,179,232,290,340,396,456,571,600,692,724,783,836,911,1012,1044,1119,1199,1266,1309,1349,1456,1517,1553,1651,1712,1733,1834,1856,1959,2000,54,120,182,194,283,332,394,479,573,605,686,737,805,855,907,1002,1087,1116,1176,1248,1282,1380,1471,1502,1583,1650,1664,1743,1855,1908,1928,2001,31,111,165,216,301,370,429,498,535,599,698,752,802,841,918,1007,1053,1132,1209,1226,1338,1404,1453,1506,1567,1613,1713,1757,1842,1914,1941,2002,1,78,173,213,299,372,387,484,557,611,671,734,818,892,941,1001,1056,1096,1163,1279,1293,1378,1431,1485,1598,1622,1719,1737,1833,1871,1956,2003,
18,125,138,229,271,334,437,472,554,584,664,712,782,861,897,1013,1039,1136,1197,1221,1291,1363,1421,1524,1559,1603,1676,1766,1800,1863,1938,2004,52,93,190,193,292,356,428,504,570,577,682,765,822,874,946,986,1047,1106,1207,1278,1326,1367,1426,1523,1596,1661,1668,1769,1847,1901,1979,2005,62,117,134,233,279,353,395,454,534,595,680,707,792,889,934,979,1075,1123,1158,1227,1284,1346,1420,1486,1581,1600,1706,1752,1815,1903,1969,2006,13,91,130,203,270,369,442,469,574,593,652,764,809,871,903,997,1064,1094,1201,1263,1334,1385,1432,1495,1585,1662,1708,1760,1839,1865,1974,2007,56,76,141,220,300,333,410,451,544,628,673,713,780,849,916,995,1071,1104,1167,1256,1325,1384,1468,1476,1564,1605,1670,1788,1813,1887,1968,2008,22,80,164,254,284,373,434,492,561,586,660,749,790,839,931,967,1067,1118,1170,1274,1292,1347,1461,1534,1540,1625,1692,1777,1798,1884,1980,2009,25,122,183,201,315,343,408,482,532,636,651,742,804,844,913,988,1078,1098,1153,1272,1339,1356,1416,1472,1539,1617,1689,1784,1802,1900,1953,2010,8,98,169,215,276,360,393,487,542,627,681,760,784,838,954,975,1038,1127,1161,1244,1307,1400,1414,1535,1565,1655,1705,1780,1844,1864,1946,2011,16,97,157,195,313,331,397,481,556,594,665,758,813,850,944,966,1057,1130,1189,1265,1331,1395,1449,1478,1574,1657,1669,1791,1820,1904,1964,2012,44,123,189,224,298,341,439,493,536,578,696,730,816,886,949,996,1043,1113,1178,1252,1305,1344,1470,1498,1555,1619,1709,1751,1819,1874,1962,2013,33,69,139,227,302,355,415,466,565,609,657,751,799,879,943,980,1031,1121,1185,1243,1290,1396,1457,1490,1550,1641,1679,1770,1845,1891,1934,2014,40,113,154,210,281,335,414,459,568,633,694,738,807,834,955,1011,1063,1149,1181,1273,1294,1402,1448,1528,1536,1638,1696,1756,1854,1862,1955,2015,36,108,136,218,257,364,440,477,551,607,679,729,772,895,928,972,1076,1138,1192,1257,1336,1359,1415,1530,1551,1654,1667,1744,1835,1872,1942,2016,47,64,177,246,319,367,386,475,559,592,683,759,824,867,921,1009,1028,1145,1215,1225,1312,1351,1462,1492,1557,1618,1677,1776,1830,1886,1933,2017,7,109,167,235,282,350,430,510,524,596,662,743,831,888,939,994,1073,1141,1171,1249,1311,1389,1430,1514,1577,1658,1691,1789,1792,1866,1963,2018,26,115,172,242,291,358,425,468,513,638,701,711,827,875,937,998,1051,1089,1157,1223,1337,1391,1454,1511,1569,1628,1671,1741,1831,1895,1947,2019,12,72,166,238,272,323,384,455,520,614,700,735,775,866,909,977,1041,1112,1208,1271,1283,1353,1428,1527,1544,1645,1700,1786,1837,1898,1978,2020,63,127,178,249,267,375,426,509,516,613,663,709,798,833,930,1016,1046,1131,1177,1275,1327,1375,1413,1491,1546,1616,1703,1764,1794,1881,1939,2021,32,102,151,209,256,382,432,476,527,639,672,757,817,880,917,1015,1040,1117,1190,1254,1322,1372,1417,1531,1571,1626,1686,1754,1849,1889,1976,2022,45,104,144,228,268,378,389,460,550,585,653,761,803,848,908,978,1052,1105,1205,1230,1280,1388,1459,1501,1593,1640,1694,1759,1824,1917,1961,2023,60,66,162,214,274,326,444,491,569,629,648,740,791,872,938,987,1025,1137,1187,1229,1323,1352,1435,1518,1590,1620,1722,1753,1826,1906,1965,2024,42,88,160,202,294,349,419,452,555,624,640,716,823,846,922,968,1081,1150,1165,1255,1329,1392,1434,1489,1543,1649,1711,1765,1851,1913,1944,2025,20,85,132,234,286,368,421,489,543,576,649,715,773,894,953,963,1036,1102,1155,1264,1286,1362,1460,1499,1570,1652,1718,1738,1810,1909,1983,2026,
10,101,153,247,261,354,446,474,575,625,655,741,788,835,914,960,1034,1147,1160,1245,1341,1379,1469,1513,1547,1635,1714,1731,1807,1857,1982,2027,15,65,140,199,263,342,405,478,525,631,675,750,770,877,951,964,1069,1125,1154,1240,1316,1350,1450,1493,1580,1643,1725,1749,1823,1880,1945,2028,9,105,131,244,288,374,402,457,540,588,667,731,811,853,936,970,1027,1115,1166,1216,1318,1360,1445,1522,1597,1608,1685,1747,1850,1899,1954,2029,21,75,161,222,310,324,418,496,522,580,642,726,801,852,940,990,1077,1120,1202,1241,1343,1374,1408,1525,1568,1660,1704,1782,1827,1885,1935,2030,57,92,145,212,307,339,445,495,563,618,644,704,806,878,919,982,1068,1114,1195,1247,1302,1354,1446,1508,1578,1604,1690,1740,1797,1873,1930,2031,50,126,176,217,260,321,422,458,553,620,669,727,800,887,958,1020,1035,1126,1213,1267,1299,1383,1452,1516,1592,1663,1678,1790,1814,1905,1920,2032,5,73,137,211,287,362,392,467,558,582,691,733,812,868,957,1022,1082,1099,1211,1259,1315,1386,1409,1481,1572,1611,1710,1781,1848,1918,1931,2033,3,87,174,223,264,352,409,511,552,604,688,753,785,863,920,984,1050,1092,1183,1234,1342,1369,1464,1533,1538,1634,1723,1748,1795,1870,1937,2034,38,67,159,196,297,357,443,506,564,601,641,745,778,832,929,1006,1074,1110,1204,1236,1319,1377,1439,1477,1541,1653,1675,1732,1809,1915,1957,2035,59,96,163,252,314,351,390,448,537,617,668,720,796,864,910,1003,1048,1108,1191,1261,1289,1405,1441,1473,1587,1639,1720,1763,1852,1893,1949,2036,46,99,142,207,285,363,404,507,530,581,645,722,794,870,905,1019,1033,1143,1182,1220,1306,1394,1466,1484,1595,1627,1698,1787,1818,1883,1924,2037,37,82,181,205,295,336,447,450,548,621,678,747,829,890,896,983,1037,1101,1212,1217,1340,1401,1425,1507,1560,1659,1688,1761,1821,1888,1926,2038,4,90,180,240,309,329,413,470,546,591,695,706,787,882,906,1023,1079,1151,1196,1233,1287,1397,1422,1526,1549,1609,1693,1746,1804,1882,1951,2039,51,118,143,198,289,347,416,462,518,608,666,766,774,857,912,993,1055,1142,1164,1260,1301,1345,1438,1512,1556,1624,1687,1750,1812,1894,1973,2040,19,107,152,248,318,345,399,500,539,579,676,719,828,859,932,1010,1054,1109,1188,1237,1281,1368,1465,1500,1552,1606,1699,1729,1840,1867,1970,2041,43,114,133,239,258,380,407,502,526,589,690,746,795,884,924,981,1080,1093,1162,1270,1310,1387,1442,1532,1563,1647,1672,1768,1829,1860,1923,2042,17,110,191,206,304,338,435,464,517,603,670,723,779,843,899,991,1026,1124,1210,1224,1313,1373,1412,1482,1586,1637,1665,1767,1836,1878,1950,2043,2,121,128,253,312,325,424,486,547,583,699,756,810,840,901,1005,1070,1148,1214,1258,1296,1361,1429,1497,1542,1642,1683,1730,1832,1876,1927,2044,6,81,129,221,277,379,431,483,531,612,702,710,771,856,926,985,1065,1122,1193,1268,1304,1393,1463,1479,1591,1636,1681,1739,1843,1911,1960,2045,48,100,135,245,266,346,427,499,562,615,685,744,808,883,948,1014,1024,1107,1169,1219,1332,1406,1410,1520,1579,1648,1716,1783,1803,1869,1977,2046,24,86,155,219,273,330,438,463,523,598,693,754,793,860,945,1017,1066,1111,1168,1262,1321,1358,1424,1510,1548,1621,1674,1778,1822,1919,1948,2047,23,74,147,204,269,361,398,503,560,606,658,705,797,893,898,1000,1072,1090,1194,1228,1328,1403,1467,1515,1561,1614,1724,1728,1808,1910,1958,1985。
附录B“根LDPC码”的行和/或列置换384×2048的LDPC矩阵,Hb该LDPC奇偶校验矩阵为对“根LDPC码”执行行和/或列的置换而生成的结果,所述“根LDPC码”对应的LDPC奇偶校验矩阵在附录A中给出。换句话说,该奇偶校验矩阵是从附录A中的LDPC奇偶校验矩阵中生成的。该LDPC奇偶校验矩阵H,对应根据IEEE 802.3an(10GBASE-T)标准实现的LDPC码;该矩阵也公布于“IEEE Draft P802.3an/D2.1”中。
Hb=53,110,170,224,279,332,447,505,616,668,1496,1497,1498,1499,1500,1501,1502,1503,1505,1509,1514,1519,1525,1532,1536,1552,1575,1607,1648,1687,1718,1724,51,139,223,241,307,356,408,476,515,600,617,689,762,797,854,927,990,1023,1059,1077,1138,1200,1292,1442,1488,1522,1535,1550,1585,1681,1994,1996,50,92,138,222,240,306,355,407,475,599,688,761,853,989,1003,1022,1076,1137,1199,1291,1441,1521,1534,1549,1584,1707,1808,1837,1904,1948,2003,2007,91,137,221,239,305,474,514,598,687,760,796,852,926,988,1021,1075,1136,1290,1440,1520,1533,1548,1647,1680,1801,1824,1833,1845,1850,1919,1940,1942,49,90,220,238,304,354,406,473,513,597,667,686,759,795,851,887,925,987,1074,1135,1198,1289,1583,1646,1679,1747,1892,1901,1907,1944,1977,1978,48,89,136,219,237,303,353,405,472,512,596,666,685,758,794,830,850,924,986,1020,1073,1134,1197,1275,1288,1383,1439,1547,1582,1645,1678,1725,47,88,135,218,236,302,352,404,471,511,595,665,684,757,777,793,849,923,985,1019,1072,1133,1196,1274,1287,1382,1438,1546,1581,1644,1706,1726,46,87,134,217,235,301,351,403,470,510,594,664,683,722,756,792,848,922,984,1018,1071,1132,1195,1273,1286,1381,1437,1545,1580,1677,1705,1727,45,133,216,402,469,593,682,755,847,983,1017,1070,1131,1194,1272,1380,1436,1544,1643,1676,1788,1792,1859,1886,1891,1902,1924,1965,1997,2019,2037,2038,44,86,132,215,234,300,350,391,401,468,509,592,663,681,754,791,846,921,982,1016,1069,1130,1193,1271,1285,1379,1435,1543,1579,1642,1675,1728,43,85,131,233,349,467,508,662,753,790,845,920,981,1015,1270,1378,1455,1542,1578,1641,1674,1704,1830,1895,1918,1971,1981,1982,1993,2009,2013,2014,42,84,130,214,232,348,400,591,661,680,752,789,844,919,1014,1068,1129,1269,1434,1454,1541,1577,1640,1673,1764,1829,1843,1860,1867,1914,1946,1951,41,83,129,213,231,299,347,399,466,507,590,660,679,751,788,843,918,980,1067,1128,1192,1268,1284,1377,1433,1453,1487,1540,1639,1672,1703,1729,82,128,212,230,298,346,398,465,506,589,659,678,750,787,842,917,979,1013,1066,1127,1191,1267,1283,1376,1432,1452,1576,1638,1671,1702,1750,1810,40,81,127,211,229,297,345,397,464,560,588,658,677,749,786,841,916,978,1012,1065,1126,1190,1266,1375,1431,1451,1486,1531,1539,1637,1778,1811,39,80,126,210,228,296,344,396,559,657,785,840,915,977,1011,1064,1125,1189,1265,1374,1450,1483,1530,1701,1753,1809,1842,1910,1925,1937,1953,1961,38,125,209,227,295,343,395,463,587,656,676,748,839,976,1010,1063,1124,1188,1264,1373,1430,1482,1529,1538,1636,1670,1700,1900,2006,2023,2034,2036,
37,79,124,208,226,294,342,394,462,558,586,655,675,747,784,838,914,975,1009,1062,1123,1187,1263,1372,1429,1449,1481,1528,1699,1786,1807,1812,36,78,123,207,225,293,341,393,461,557,585,654,674,746,783,837,913,974,1008,1061,1122,1186,1262,1371,1428,1448,1480,1527,1537,1635,1698,1730,35,77,122,278,340,460,556,584,745,782,836,912,973,1261,1370,1447,1479,1526,1634,1669,1697,1772,1849,1884,1885,1957,1964,1986,1989,2028,2041,2042,34,76,277,292,339,459,555,583,673,781,911,972,1007,1121,1185,1260,1328,1427,1446,1478,1508,1633,1696,1770,1773,1787,1844,1852,1854,1857,1858,1876,33,75,121,206,276,291,338,392,458,554,653,672,744,780,835,910,971,1006,1111,1120,1184,1259,1327,1369,1425,1426,1445,1477,1632,1668,1932,1934,32,74,120,205,275,290,337,446,457,582,671,743,834,970,1119,1183,1258,1326,1368,1390,1424,1507,1631,1765,1793,1795,1882,1903,1941,1987,2032,2035,31,73,119,204,274,289,336,445,456,553,581,652,742,779,833,909,969,1005,1109,1118,1182,1257,1325,1367,1389,1423,1444,1476,1630,1754,1802,1813,30,72,118,203,273,288,335,444,455,552,580,651,670,741,778,832,908,968,1004,1117,1181,1324,1366,1388,1422,1443,1506,1667,1695,1760,1784,1814,29,71,117,202,287,443,454,551,579,650,669,740,831,907,967,1107,1116,1180,1256,1323,1365,1387,1466,1504,1629,1759,1766,1800,1841,1862,1875,1877,28,70,116,201,272,286,334,442,453,550,578,649,721,739,829,886,906,966,1058,1106,1115,1179,1255,1322,1364,1386,1421,1465,1558,1666,1694,1731,27,69,115,200,285,441,452,549,648,720,738,828,885,905,965,1057,1105,1178,1321,1385,1420,1464,1557,1665,1769,1780,1828,1839,1848,1869,1933,1935,26,68,114,199,271,333,440,451,548,577,647,719,737,827,884,904,964,1056,1104,1114,1177,1254,1320,1363,1384,1419,1463,1556,1628,1664,1693,1732,25,67,113,270,450,547,576,646,883,903,1055,1103,1253,1319,1362,1418,1462,1555,1627,1758,1781,1803,1894,1898,1913,1922,1955,1960,1980,1985,1988,1990,24,66,112,198,269,284,390,439,449,546,575,645,718,736,882,902,963,1054,1102,1176,1252,1318,1334,1361,1417,1461,1513,1663,1692,1771,1806,1815,23,65,197,283,389,438,448,545,574,644,717,735,826,881,901,962,1053,1101,1175,1251,1317,1333,1360,1416,1460,1554,1626,1782,1790,1921,1952,1962,22,64,111,268,388,504,544,573,643,734,825,880,900,961,1052,1250,1316,1359,1459,1662,1691,1742,1826,1831,1943,1958,1959,1973,1999,2008,2027,2029,21,63,169,196,267,282,387,437,503,543,572,642,716,733,824,879,899,960,1051,1100,1174,1249,1315,1332,1358,1415,1458,1512,1574,1625,1690,1733,20,62,168,195,266,281,386,436,502,542,571,641,715,732,823,878,898,959,1050,1099,1173,1248,1314,1331,1414,1511,1573,1606,1624,1661,1822,1878,19,61,167,194,265,280,385,435,501,541,570,640,714,731,822,877,897,958,1049,1098,1172,1247,1313,1330,1357,1413,1510,1605,1623,1660,1689,1734,18,60,166,264,384,434,500,540,639,821,896,957,1048,1171,1246,1329,1356,1412,1604,1622,1659,1743,1873,1888,1947,1950,1969,1976,1995,2002,2022,2030,17,59,165,193,263,331,383,433,499,539,569,638,713,730,820,876,895,956,1047,1097,1163,1170,1245,1282,1312,1355,1572,1603,1621,1658,1688,1735,16,58,164,192,262,330,382,432,498,538,568,637,712,729,875,894,955,1046,1096,1162,1244,1281,1311,1411,1518,1571,1620,1767,1881,1897,1909,1915,15,57,163,191,261,329,381,431,497,537,567,636,711,728,819,874,893,954,1045,1095,1161,1243,1280,1310,1354,1410,1517,1570,1602,1619,1657,1736,
14,56,162,260,380,430,496,536,566,635,727,818,873,892,953,1044,1160,1242,1279,1353,1409,1569,1601,1618,1656,1717,1856,1912,1974,1984,1991,1992,13,55,161,190,259,328,379,429,495,535,565,634,710,726,817,872,891,952,1043,1094,1159,1278,1309,1352,1408,1568,1600,1617,1716,1748,1755,1816,12,54,160,189,258,327,378,428,494,534,564,633,709,725,816,871,890,951,1042,1093,1158,1241,1308,1351,1407,1516,1553,1567,1616,1655,1715,1737,109,159,188,257,326,377,427,493,533,563,632,708,815,870,889,950,1041,1092,1157,1277,1307,1350,1406,1515,1566,1599,1615,1654,1749,1762,1889,1906,11,108,158,187,256,325,376,426,492,532,562,631,707,724,814,869,888,949,1040,1091,1156,1217,1240,1276,1306,1349,1405,1565,1598,1614,1714,1738,10,107,157,186,255,324,375,425,491,531,561,630,706,723,813,868,943,948,1039,1090,1155,1216,1224,1305,1348,1404,1564,1597,1653,1713,1756,1817,9,106,156,185,254,323,374,424,490,530,615,705,776,812,867,947,1038,1154,1215,1223,1239,1304,1347,1403,1563,1596,1613,1791,1825,1832,1861,1879,8,155,253,373,489,529,614,629,811,942,946,1037,1222,1238,1346,1402,1612,1652,1741,1746,1893,1896,1899,1923,1956,1968,2001,2020,2021,2033,2044,2045,7,154,322,372,423,488,528,613,704,775,810,941,945,1036,1089,1153,1221,1237,1345,1401,1562,1595,1763,1796,1823,1887,1911,1938,1954,1979,2004,2005,6,105,153,184,252,321,371,422,487,527,612,628,703,774,809,866,940,944,1035,1088,1152,1214,1220,1236,1303,1344,1400,1561,1594,1611,1651,1739,5,104,152,183,251,320,370,421,486,526,611,627,702,773,808,865,939,1002,1034,1151,1213,1219,1235,1302,1343,1399,1560,1593,1610,1712,1777,1818,4,103,182,250,319,369,420,485,525,610,626,701,807,938,1001,1087,1150,1218,1342,1398,1457,1592,1609,1834,1835,1864,1866,1868,1926,1939,1998,2000,102,151,181,318,368,419,524,609,625,700,772,806,864,937,1000,1033,1086,1149,1169,1212,1234,1301,1341,1397,1559,1711,1872,1908,1916,1945,2024,2026,3,150,180,249,317,367,418,484,608,699,771,863,936,1032,1085,1148,1168,1211,1233,1340,1396,1456,1650,1776,1836,1905,1917,1930,2025,2031,2046,2047,2,101,149,179,316,366,417,523,698,770,805,862,935,999,1031,1084,1147,1210,1232,1300,1339,1475,1608,1649,1752,1785,1797,1840,1847,1890,1931,1936,1,100,148,178,248,315,365,416,483,522,607,624,697,769,804,861,934,998,1030,1083,1146,1167,1209,1231,1299,1338,1395,1474,1494,1591,1710,1740,0,99,147,177,247,314,364,415,482,521,606,623,696,803,860,933,997,1029,1082,1145,1166,1208,1230,1298,1394,1473,1493,1495,1709,1745,1789,1819,98,146,176,246,313,363,414,481,520,605,622,695,768,802,859,932,996,1081,1144,1165,1207,1229,1297,1337,1472,1485,1590,1686,1723,1798,1804,1820,97,145,175,312,362,413,480,519,604,621,694,767,801,858,931,995,1028,1080,1143,1164,1206,1228,1336,1393,1471,1589,1685,1838,1851,1870,1928,1929,144,174,245,311,361,412,479,603,693,766,857,994,1027,1113,1142,1205,1227,1296,1470,1484,1722,1751,1757,1774,1794,1874,1920,1927,1983,2012,2015,2017,96,143,173,244,310,360,411,478,518,692,765,800,993,1026,1112,1141,1204,1226,1295,1469,1492,1588,1684,1721,1744,1768,1846,1853,1871,1883,1966,1972,95,142,172,243,309,359,410,477,517,602,620,691,764,856,930,992,1025,1079,1110,1140,1203,1225,1294,1335,1392,1468,1491,1683,1719,1799,1805,1821,94,141,171,242,308,358,409,619,690,799,855,929,1078,1108,1139,1202,1293,1391,1467,1490,1524,1587,1682,1720,1775,1779,1827,1863,1880,2010,2016,2018,
52,93,140,357,516,601,618,763,798,928,991,1024,1060,1201,1489,1523,1551,1586,1708,1761,1783,1855,1865,1949,1963,1967,1970,1975,2011,2039,2040,2043,53,109,130,245,299,342,442,458,535,580,641,763,796,859,894,944,1038,1074,1158,1171,1245,1287,1346,1416,1574,1582,1664,1740,1902,1960,1992,1994,51,74,141,189,286,386,399,478,521,587,655,707,757,787,943,982,1015,1100,1190,1231,1360,1402,1466,1557,1621,1669,1718,1787,1851,1855,1978,1980,50,66,155,244,404,480,531,609,666,701,751,871,933,973,1045,1065,1144,1174,1265,1322,1391,1606,1675,1705,1854,1860,1875,1930,1940,1995,2011,2019,97,275,322,365,393,449,524,561,638,734,874,960,1003,1042,1069,1154,1248,1313,1353,1405,1483,1500,1561,1702,1811,1812,1833,1849,1900,1926,2014,2020,49,112,210,256,318,381,417,485,528,601,627,694,741,791,861,897,979,1148,1195,1260,1350,1424,1442,1485,1504,1509,1529,1556,1578,1676,1690,1741,48,101,135,215,259,283,351,498,602,674,785,836,910,951,1051,1152,1272,1282,1364,1517,1540,1563,1607,1759,1773,1779,1839,1948,1951,1982,2015,2021,47,104,136,206,246,301,389,407,450,556,572,629,713,762,822,857,921,948,1025,1063,1141,1212,1242,1388,1448,1495,1532,1577,1614,1708,1786,1822,46,95,176,276,302,353,479,538,650,739,828,883,891,964,1034,1121,1198,1233,1284,1431,1452,1481,1541,1651,1707,1813,1847,1937,1952,2018,2030,2039,45,75,162,183,243,367,435,493,552,565,657,680,775,867,935,957,1104,1161,1214,1275,1342,1423,1527,1603,1629,1679,1724,1820,1848,1986,2003,2008,44,56,121,219,328,363,415,507,573,708,723,795,838,923,990,1032,1075,1116,1178,1235,1311,1336,1432,1451,1462,1619,1739,1837,1857,1914,1920,1921,43,70,125,221,290,384,427,501,532,658,696,764,885,938,1023,1073,1127,1187,1254,1318,1339,1387,1397,1446,1583,1634,1658,1758,1791,1796,1836,1880,42,81,170,192,278,294,347,436,468,520,615,649,682,740,807,872,903,993,1004,1102,1155,1183,1262,1279,1288,1468,1534,1545,1581,1685,1775,1823,41,106,124,174,270,332,348,408,481,509,588,619,699,761,810,835,912,997,1041,1086,1143,1188,1257,1286,1365,1460,1475,1547,1609,1653,1694,1742,119,185,257,293,383,423,477,523,568,624,717,722,731,797,865,908,987,1055,1088,1177,1263,1316,1349,1409,1435,1624,1659,1810,1845,2013,2017,2031,40,84,159,193,274,288,374,391,395,496,544,590,662,672,772,827,863,913,965,1009,1076,1146,1200,1253,1300,1361,1392,1437,1593,1616,1680,1743,39,99,167,220,325,430,463,721,742,794,902,947,1035,1103,1207,1331,1371,1401,1512,1521,1567,1727,1769,1776,1777,1801,1866,1883,1891,1950,2026,2032,38,62,131,182,248,337,397,549,600,632,673,733,869,926,961,1072,1118,1166,1192,1228,1289,1343,1410,1461,1484,1695,1730,1915,1961,1967,2010,2022,37,72,129,262,409,495,554,563,617,804,846,972,1012,1095,1114,1168,1267,1317,1496,1546,1560,1580,1647,1655,1867,1874,1878,1949,1956,1957,1971,1973,36,67,165,188,254,298,336,486,543,584,626,685,738,777,829,856,916,1000,1027,1082,1119,1216,1269,1374,1396,1490,1568,1601,1670,1763,1788,1824,35,73,144,208,232,330,425,448,511,585,633,691,821,850,918,989,1047,1105,1239,1309,1332,1425,1436,1511,1590,1641,1681,1693,1819,1871,1919,1922,34,61,147,222,310,371,392,453,562,663,676,766,808,854,942,975,1057,1097,1132,1211,1404,1455,1463,1474,1625,1678,1761,1804,1863,1870,1897,1907,33,132,218,235,313,379,505,558,608,623,677,725,843,924,1052,1087,1217,1232,1277,1319,1363,1389,1652,1768,1770,1772,1815,1872,1909,2016,2038,2043,
32,166,239,343,424,452,559,571,651,703,773,877,934,953,1058,1101,1112,1122,1310,1358,1620,1756,1762,1802,1916,1944,1946,1954,1983,1993,1996,2001,31,77,128,203,229,331,341,416,503,526,576,683,799,862,963,1046,1124,1206,1268,1426,1459,1544,1554,1731,1765,1832,1842,1853,1869,1917,2000,2005,30,79,156,204,263,297,377,434,484,616,695,759,813,873,917,958,1014,1150,1179,1227,1278,1315,1354,1399,1438,1700,1799,1903,1911,1929,2037,2040,29,102,140,184,247,355,438,491,519,575,664,704,752,884,1130,1167,1213,1293,1377,1421,1585,1643,1686,1725,1861,1892,1894,1918,1935,1972,2025,2033,28,85,168,175,258,307,358,447,459,527,661,756,783,904,952,1084,1142,1181,1291,1330,1383,1559,1630,1703,1834,1841,1846,1881,1882,1888,1923,1925,27,96,158,191,269,280,344,457,606,690,746,792,845,937,978,1007,1059,1151,1193,1256,1367,1384,1398,1591,1645,1733,1792,1905,1979,1999,2028,2034,26,103,145,195,242,324,378,432,489,516,613,646,718,726,786,831,887,906,984,1030,1070,1123,1191,1270,1298,1369,1385,1478,1613,1687,1697,1744,25,78,164,224,231,311,340,413,471,545,581,647,698,765,790,848,919,967,1013,1064,1138,1209,1219,1266,1327,1408,1456,1579,1622,1661,1715,1745,24,92,194,329,368,421,474,522,579,719,776,780,915,969,1024,1068,1164,1175,1230,1375,1412,1467,1482,1617,1656,1805,1887,1895,1901,1933,1936,1943,23,63,134,190,234,303,352,443,460,547,611,618,678,732,814,875,932,995,1031,1145,1176,1250,1444,1487,1507,1528,1535,1552,1566,1623,1684,1746,22,98,150,172,251,380,441,490,560,592,631,675,760,798,870,899,976,1006,1090,1208,1251,1283,1338,1453,1476,1513,1571,1612,1689,1735,1886,1908,21,65,142,180,260,316,370,419,456,557,595,636,693,748,809,876,900,988,1020,1077,1125,1199,1229,1324,1368,1406,1447,1575,1596,1633,1665,1747,20,116,199,255,308,356,400,482,518,582,668,714,735,820,866,931,996,1048,1215,1382,1450,1520,1551,1570,1584,1638,1699,1781,1818,1968,2036,2041,19,76,126,198,261,285,376,402,467,540,612,635,715,750,793,834,925,968,1026,1096,1140,1238,1290,1355,1395,1558,1564,1592,1626,1649,1691,1748,18,94,120,178,250,295,349,444,492,541,578,692,770,782,840,941,983,1050,1071,1163,1220,1241,1301,1335,1417,1441,1519,1602,1627,1671,1778,1825,17,58,123,211,273,289,346,420,517,603,684,724,823,830,879,889,954,1357,1472,1488,1508,1516,1525,1674,1710,1831,1840,1850,1884,1912,1997,2002,16,59,113,214,226,361,440,472,510,589,621,702,774,881,991,1005,1098,1139,1285,1477,1502,1631,1666,1713,1798,1844,1890,1906,1989,2004,2023,2027,15,93,151,200,265,284,354,410,488,525,614,642,706,802,852,888,956,1022,1062,1131,1197,1236,1326,1366,1538,1553,1573,1604,1642,1650,1712,1749,14,86,133,179,267,317,388,396,464,530,605,640,769,811,832,939,970,1043,1080,1149,1204,1274,1312,1454,1470,1480,1489,1498,1533,1663,1714,1750,13,146,197,237,300,338,422,462,593,705,737,806,844,922,966,1044,1089,1172,1225,1351,1418,1428,1443,1497,1526,1709,1783,1806,1966,2012,2044,2046,12,157,223,272,312,333,412,529,610,700,744,812,853,929,986,1021,1085,1170,1246,1280,1295,1352,1394,1514,1594,1637,1803,1807,1885,1938,1953,1963,110,127,207,230,323,335,469,586,656,681,728,801,880,895,949,1153,1202,1244,1302,1333,1415,1445,1729,1793,1797,1817,1835,1889,1977,1981,2045,2047,11,105,115,181,238,296,385,418,500,508,583,643,689,730,826,839,893,950,1029,1108,1147,1184,1299,1376,1471,1523,1548,1595,1644,1683,1717,1751,
10,100,160,171,266,362,454,598,711,754,778,927,985,1129,1169,1186,1258,1303,1337,1588,1615,1672,1732,1734,1767,1858,1893,1927,1939,2007,2029,2042,9,83,118,212,225,326,345,446,504,536,591,639,710,736,816,847,909,977,1107,1136,1165,1173,1261,1294,1341,1439,1458,1494,1505,1628,1704,1752,8,90,138,177,252,287,357,405,451,534,567,665,687,747,818,868,911,994,1033,1092,1159,1203,1218,1247,1314,1390,1465,1536,1550,1668,1782,1826,7,54,148,205,233,305,369,398,497,513,577,652,669,755,788,882,896,999,1028,1060,1094,1157,1321,1340,1473,1518,1524,1598,1640,1667,1698,1753,6,108,143,202,253,314,339,429,550,570,622,671,729,824,878,928,1011,1066,1134,1194,1243,1305,1329,1393,1440,1503,1610,1677,1728,1737,1794,1827,5,88,149,216,268,309,387,439,461,553,574,667,712,743,781,842,892,998,1018,1099,1180,1271,1307,1373,1422,1429,1486,1555,1611,1736,1809,1828,4,68,137,209,264,315,372,433,473,537,564,654,688,771,789,864,920,992,1039,1111,1117,1205,1222,1255,1380,1420,1469,1530,1605,1639,1654,1754,71,163,187,228,304,390,437,483,514,599,620,709,749,817,905,974,1037,1067,1160,1196,1224,1226,1347,1386,1542,1632,1662,1785,1947,1998,2024,2035,3,55,111,196,426,455,533,648,679,841,930,981,1016,1093,1135,1185,1273,1325,1345,1449,1537,1576,1657,1701,1808,1864,1877,1913,1931,1934,1965,1974,2,89,152,249,282,359,406,499,506,594,645,803,833,945,1053,1106,1156,1201,1259,1281,1378,1403,1433,1492,1531,1599,1660,1711,1873,1924,1984,1985,1,107,154,227,319,445,546,604,659,727,784,851,1002,1056,1081,1126,1306,1359,1413,1427,1464,1522,1648,1688,1800,1879,1941,1942,1945,1955,1969,1975,0,80,321,360,401,502,515,653,745,805,855,980,1040,1061,1252,1320,1362,1407,1491,1562,1589,1716,1726,1780,1790,1852,1862,1899,1904,1958,2006,2009,64,161,217,236,291,350,411,466,566,628,670,767,819,901,959,1017,1083,1137,1189,1223,1249,1296,1348,1411,1479,1501,1572,1646,1696,1723,1766,1829,91,114,201,241,327,375,475,551,607,637,686,768,815,898,962,1036,1128,1182,1264,1328,1379,1400,1565,1673,1760,1771,1774,1789,1865,1928,1990,1991,82,122,213,279,382,428,470,512,569,630,716,849,914,946,1008,1091,1110,1115,1297,1344,1543,1569,1600,1636,1682,1722,1814,1838,1868,1876,1987,1988,69,153,240,292,364,414,476,542,634,886,907,1049,1109,1133,1234,1308,1370,1419,1457,1597,1608,1721,1795,1821,1843,1856,1898,1910,1932,1962,1970,1976,87,169,320,366,431,465,539,596,625,753,800,837,936,1001,1019,1078,1113,1304,1356,1434,1493,1510,1539,1692,1719,1738,1784,1816,1859,1896,1959,1964,60,139,186,271,281,334,394,487,555,660,720,758,779,860,890,971,1010,1079,1162,1237,1276,1323,1334,1381,1515,1549,1586,1635,1720,1757,1764,1830,52,57,117,173,277,306,373,403,494,548,597,644,697,825,858,940,955,1054,1120,1210,1221,1240,1292,1372,1414,1430,1499,1506,1587,1618,1706,1755,53,108,129,198,244,298,341,391,441,457,534,579,640,710,762,795,858,893,1002,1037,1073,1157,1170,1244,1286,1345,1493,1573,1581,1707,1781,1831,51,56,116,172,276,305,372,402,493,547,596,643,696,824,857,939,954,1053,1107,1119,1209,1220,1291,1371,1413,1429,1499,1586,1617,1655,1705,1756,50,73,140,188,245,285,385,398,477,520,586,654,706,756,786,835,981,1014,1099,1189,1230,1292,1359,1401,1439,1465,1513,1556,1620,1718,1773,1832,65,154,206,243,307,334,403,479,530,608,665,700,750,791,870,887,932,972,1044,1064,1143,1173,1264,1321,1377,1551,1572,1605,1608,1674,1792,1833,
49,151,214,274,321,364,448,615,637,704,733,873,914,959,1041,1185,1247,1352,1404,1482,1500,1560,1635,1778,1809,1940,1947,1982,2017,2042,2044,2047,48,209,255,317,380,416,527,600,626,693,740,790,860,896,978,1058,1147,1194,1259,1349,1423,1441,1509,1528,1555,1577,1675,1878,1929,1938,1945,1952,47,100,134,258,423,497,518,763,950,1050,1068,1151,1271,1281,1284,1607,1628,1668,1694,1750,1787,1850,1856,1869,1880,1941,1964,1965,2001,2008,2014,2023,46,103,135,205,388,449,555,571,712,761,821,920,947,1062,1140,1211,1357,1387,1447,1487,1532,1537,1686,1816,1817,1824,1846,1851,1886,1994,2005,2010,45,94,111,175,275,301,352,408,478,537,607,649,670,738,827,882,890,1097,1120,1197,1232,1283,1451,1480,1540,1636,1777,1845,1894,1939,1949,1953,44,74,161,182,242,282,366,434,492,551,564,656,679,774,796,934,956,1028,1103,1160,1213,1274,1341,1422,1427,1526,1678,1693,1724,1731,1893,1909,43,55,120,218,268,327,362,414,466,506,572,653,707,776,794,837,922,989,1031,1074,1115,1177,1310,1431,1450,1461,1618,1680,1712,1744,1794,1834,42,69,124,220,252,289,383,426,500,531,601,657,695,884,937,999,1022,1072,1126,1186,1253,1317,1338,1386,1396,1445,1582,1633,1746,1779,1815,1881,41,80,170,191,277,293,346,435,467,519,614,648,681,739,806,871,902,992,1101,1154,1182,1261,1278,1287,1467,1504,1533,1544,1580,1611,1708,1757,123,173,269,332,347,407,480,508,618,698,760,809,834,911,996,1040,1085,1142,1187,1332,1364,1459,1474,1546,1741,1788,1810,1814,1848,1872,1879,1910,40,96,118,256,382,422,522,567,623,907,986,1054,1129,1262,1315,1348,1408,1623,1658,1747,1797,1818,1827,1873,1899,1902,1918,1955,1973,1989,1998,2003,39,83,158,192,273,287,373,394,495,543,589,661,671,771,862,912,964,1008,1075,1145,1199,1252,1299,1360,1391,1436,1455,1592,1615,1679,1688,1758,38,98,166,219,249,324,333,429,462,553,602,663,720,741,793,876,901,946,1034,1102,1206,1301,1330,1370,1400,1511,1520,1566,1583,1643,1785,1835,37,61,130,181,247,331,336,396,463,548,599,631,672,732,819,868,925,960,1024,1071,1117,1165,1191,1227,1288,1342,1409,1442,1460,1492,1669,1759,36,71,128,261,299,494,562,716,775,803,845,971,1011,1266,1316,1457,1496,1535,1545,1646,1654,1689,1854,1890,1946,1948,1972,1980,1991,1997,2032,2039,35,66,164,187,253,297,335,406,485,542,583,625,684,722,737,828,855,915,1026,1081,1118,1215,1268,1285,1373,1489,1567,1600,1739,1752,1807,1836,34,72,143,207,231,329,390,424,504,510,584,632,690,768,820,849,917,988,1046,1104,1198,1238,1308,1331,1335,1424,1435,1510,1589,1640,1803,1837,33,60,146,221,241,309,370,446,452,516,561,662,675,765,807,853,941,974,1056,1096,1131,1210,1275,1296,1354,1403,1454,1462,1473,1624,1726,1838,32,86,131,217,312,378,392,505,557,622,826,842,923,991,1051,1086,1138,1216,1231,1276,1318,1362,1388,1602,1749,1805,1847,1858,1859,1911,1925,1930,31,92,165,184,238,342,451,570,650,702,800,933,952,1057,1110,1192,1239,1547,1562,1619,1667,1714,1822,1864,1867,1912,1950,2021,2029,2031,2034,2041,30,76,127,202,228,330,340,415,502,525,575,628,682,748,798,861,942,962,1045,1079,1123,1205,1267,1300,1363,1390,1458,1543,1711,1742,1802,1839,29,78,155,203,262,296,376,433,509,616,652,694,758,812,872,916,957,1077,1149,1178,1226,1314,1353,1398,1437,1484,1553,1587,1651,1699,1729,1840,28,139,183,246,322,490,574,703,751,805,883,930,963,1020,1166,1254,1376,1420,1434,1584,1642,1685,1706,1855,1868,1891,1942,1999,2013,2015,2045,2046,
27,84,167,174,257,306,357,447,458,526,569,660,676,755,782,856,903,951,1005,1083,1141,1180,1234,1290,1329,1382,1421,1456,1595,1657,1702,1760,26,95,157,343,437,456,558,605,745,844,936,977,1003,1006,1150,1255,1303,1366,1397,1508,1644,1661,1728,1789,1913,1921,1936,1971,1975,1984,2019,2022,25,102,144,194,323,377,431,488,515,612,645,717,725,785,830,886,905,983,1029,1069,1122,1190,1269,1297,1368,1384,1392,1477,1612,1687,1696,1761,24,77,163,224,230,310,339,412,470,544,580,646,697,764,789,847,918,966,1012,1063,1137,1208,1218,1265,1326,1337,1407,1475,1578,1621,1660,1762,23,91,136,271,367,420,473,521,578,624,866,968,1023,1067,1113,1229,1374,1481,1512,1616,1735,1755,1775,1900,1951,1956,1958,1967,1969,1974,1985,1987,22,62,133,189,233,302,351,442,459,546,610,617,677,731,813,874,931,994,1030,1109,1144,1175,1249,1443,1527,1534,1552,1565,1576,1622,1683,1763,21,97,149,171,250,300,379,440,489,559,630,674,759,797,869,898,975,1207,1250,1411,1452,1531,1570,1650,1743,1745,1784,1790,1823,1830,1861,1882,20,64,141,179,259,315,369,418,455,556,594,635,692,747,808,875,899,987,1019,1076,1124,1228,1323,1367,1405,1446,1575,1632,1664,1725,1919,1923,19,79,115,254,355,399,481,517,581,668,734,865,995,1047,1087,1121,1381,1550,1569,1637,1663,1698,1801,1874,1896,1907,1915,1960,1976,1979,2006,2011,18,75,125,197,260,375,401,539,611,634,714,749,792,833,924,967,1025,1095,1139,1237,1289,1394,1494,1516,1557,1563,1690,1732,1826,1897,1914,1916,17,93,119,177,294,348,443,491,540,629,691,769,781,839,940,982,1049,1070,1162,1219,1416,1440,1519,1601,1701,1780,1806,1811,1906,1917,2018,2026,16,57,122,210,288,345,419,483,667,683,723,777,822,878,888,953,1007,1111,1163,1309,1356,1415,1471,1515,1525,1579,1673,1709,1808,1862,1863,1883,15,58,112,213,225,292,360,471,588,701,773,784,880,990,1004,1167,1214,1240,1369,1393,1502,1574,1630,1665,1791,1895,1927,1990,2030,2035,2037,2043,14,150,199,264,283,353,409,487,524,613,641,705,724,801,851,943,955,1021,1061,1130,1196,1235,1277,1325,1365,1603,1641,1649,1734,1786,1996,2000,13,85,132,178,266,316,387,395,529,604,639,810,831,938,969,1042,1148,1203,1273,1311,1453,1469,1479,1488,1498,1539,1713,1751,1819,1961,1962,1977,12,101,145,236,337,421,461,592,620,843,965,1043,1088,1153,1171,1328,1350,1417,1497,1524,1588,1626,1681,1800,1804,1898,1924,1959,1986,1993,2020,2025,105,156,222,311,411,476,528,609,699,743,811,852,928,985,1084,1245,1279,1294,1351,1430,1514,1518,1593,1692,1730,1798,1857,1889,1892,1922,1933,1937,11,110,126,229,400,468,523,585,655,727,879,894,948,1013,1089,1152,1201,1243,1383,1414,1591,1613,1754,1795,1866,1875,1908,1957,1983,2009,2027,2033,10,104,114,180,237,295,384,417,499,642,688,729,825,838,892,949,1060,1146,1183,1298,1375,1470,1522,1594,1682,1716,1727,1820,1829,1853,1934,1944,9,99,159,265,361,453,514,597,753,984,1033,1100,1128,1168,1257,1302,1336,1425,1614,1671,1736,1770,1799,1849,1877,1887,1904,1966,1970,1988,1992,1995,8,82,117,211,278,325,344,445,503,535,590,638,709,735,815,846,908,976,1106,1135,1164,1172,1260,1293,1340,1395,1438,1495,1505,1606,1627,1764,7,89,137,176,251,286,356,404,450,533,566,664,686,746,817,867,910,993,1032,1091,1158,1169,1202,1246,1313,1389,1464,1536,1549,1625,1691,1765,6,109,147,204,232,304,368,397,496,512,576,651,721,754,787,881,895,998,1027,1059,1093,1156,1320,1339,1472,1517,1523,1538,1597,1639,1697,1766,
5,107,142,201,313,338,428,549,621,728,823,877,927,1010,1065,1133,1193,1242,1282,1304,1503,1599,1609,1676,1704,1796,1813,1871,1888,1920,1963,1978,4,87,148,215,267,308,386,438,460,552,573,666,711,742,780,841,891,997,1017,1098,1114,1179,1270,1306,1372,1428,1483,1610,1670,1717,1771,1841,67,208,263,314,371,432,472,536,563,687,770,788,863,919,1038,1116,1204,1221,1379,1419,1468,1507,1529,1604,1638,1695,1738,1885,1901,1935,2016,2024,3,70,162,186,227,303,389,436,482,513,598,619,708,816,864,904,973,1036,1066,1159,1195,1223,1225,1312,1346,1385,1476,1541,1631,1710,1733,1842,2,54,169,195,248,328,350,425,454,532,582,647,678,772,829,840,929,1015,1092,1134,1184,1272,1324,1334,1344,1448,1486,1647,1656,1700,1772,1843,1,88,190,281,358,405,498,560,593,644,718,730,802,832,921,944,1052,1105,1155,1200,1258,1280,1402,1432,1491,1530,1598,1659,1776,1860,1926,1931,0,106,153,193,226,318,354,444,484,545,603,658,689,726,783,850,909,1001,1055,1080,1125,1176,1305,1358,1412,1426,1463,1521,1558,1648,1652,1767,121,272,320,359,501,577,680,804,926,979,1039,1174,1251,1319,1361,1406,1449,1490,1561,1677,1715,1723,1865,1876,1903,1943,1954,1981,2007,2012,2028,2036,63,160,216,235,290,349,410,465,507,565,627,669,766,818,900,958,1016,1082,1136,1188,1222,1248,1295,1347,1410,1478,1501,1571,1645,1666,1928,1932,90,113,200,240,326,374,439,474,550,606,636,685,767,814,854,897,961,1035,1094,1127,1181,1263,1327,1378,1399,1554,1564,1590,1629,1672,1722,1768,81,212,279,284,381,427,469,511,568,715,744,779,848,913,945,1090,1108,1212,1256,1343,1542,1568,1721,1737,1774,1783,1812,1825,1828,1852,1870,1884,68,152,223,239,291,363,413,475,541,587,633,713,736,799,885,906,980,1048,1132,1233,1307,1418,1444,1506,1559,1596,1662,1719,1740,1748,1793,1844,168,196,234,319,365,430,464,538,595,673,752,836,935,1000,1018,1112,1241,1355,1433,1466,1485,1653,1720,1753,1782,1821,1905,1968,2002,2004,2038,2040,52,59,138,185,270,280,393,486,554,591,659,719,757,778,859,889,970,1009,1078,1161,1217,1224,1236,1322,1333,1380,1548,1585,1634,1684,1703,1769,53,107,128,197,243,297,340,440,456,533,578,639,709,761,794,857,892,1001,1036,1072,1156,1243,1344,1415,1455,1485,1518,1580,1663,1734,1788,1845,51,58,137,269,333,485,590,658,756,858,888,969,1008,1160,1216,1223,1235,1321,1379,1584,1633,1683,1702,1877,1899,1944,1985,2022,2027,2032,2040,2042,50,55,115,171,275,304,371,401,492,546,595,642,695,823,938,953,1052,1106,1118,1208,1219,1239,1290,1370,1412,1428,1499,1585,1616,1654,1792,1846,72,139,187,244,384,397,519,585,705,755,785,834,942,1098,1188,1229,1291,1358,1400,1438,1464,1555,1619,1668,1718,1729,1732,1790,1827,1833,1843,1885,49,64,153,205,242,306,402,478,529,664,699,749,790,830,869,931,971,1043,1063,1142,1172,1263,1320,1376,1550,1571,1604,1673,1728,1740,1769,1847,48,96,150,213,273,320,363,504,523,614,636,703,732,872,887,913,958,1040,1068,1153,1184,1246,1312,1351,1403,1457,1481,1500,1634,1670,1701,1770,47,105,111,208,254,316,379,415,484,526,599,625,692,739,789,859,895,977,1057,1146,1193,1258,1348,1422,1440,1484,1487,1509,1527,1674,1689,1771,46,99,133,214,257,282,350,422,496,517,601,667,673,762,784,835,909,949,1049,1067,1150,1270,1280,1283,1363,1539,1562,1607,1627,1748,1765,1848,45,102,134,204,245,300,387,406,448,554,570,628,711,760,820,856,919,946,1024,1061,1139,1210,1241,1356,1386,1446,1532,1576,1613,1685,1707,1772,
44,93,169,174,274,351,407,477,536,606,648,669,737,881,889,963,1033,1096,1119,1196,1231,1430,1450,1479,1531,1535,1747,1750,1758,1812,1835,1886,43,73,160,181,281,365,433,491,550,563,655,678,773,795,933,955,1027,1102,1159,1273,1328,1340,1426,1602,1724,1726,1761,1803,1839,1841,1868,1887,42,54,119,217,267,326,361,413,465,560,571,706,793,836,988,1030,1073,1234,1392,1460,1617,1679,1828,1871,1903,1912,1924,1953,1955,1956,2000,2006,41,68,123,219,251,288,382,425,499,530,600,656,694,763,826,883,936,998,1021,1071,1125,1252,1316,1385,1581,1632,1657,1745,1752,1763,1795,1849,170,276,345,434,613,647,738,870,901,1058,1181,1260,1286,1543,1553,1610,1684,1810,1914,1967,1977,1984,1989,1994,1997,2009,2015,2016,2025,2029,2036,2044,40,122,172,332,346,479,587,617,697,759,808,833,910,995,1039,1084,1141,1186,1256,1285,1331,1458,1473,1545,1652,1693,1824,1829,1869,1921,1930,1938,39,95,117,255,292,381,391,421,521,566,622,716,730,796,864,906,985,1053,1087,1128,1176,1261,1314,1347,1407,1434,1591,1622,1725,1881,1954,1963,38,82,157,191,286,372,393,494,542,588,660,770,861,911,1074,1144,1251,1298,1359,1435,1454,1551,1614,1678,1767,1813,1815,1862,1884,1894,1916,1919,37,97,165,218,323,428,461,552,662,719,740,792,875,900,945,1101,1205,1329,1399,1510,1565,1582,1642,1710,1844,1880,1907,1908,1917,1922,1931,1939,36,60,129,180,246,330,335,395,462,547,598,630,671,731,818,867,924,959,1023,1070,1116,1164,1190,1226,1287,1341,1408,1441,1459,1491,1694,1773,35,70,127,206,260,298,408,493,553,561,715,774,802,844,930,970,1010,1094,1167,1192,1265,1315,1496,1513,1534,1544,1559,1579,1645,1738,1743,1850,34,65,163,186,296,405,541,683,827,999,1025,1080,1117,1267,1372,1395,1488,1566,1712,1730,1737,1796,1865,1875,1895,1896,1898,1900,1902,1905,1934,1945,33,71,142,230,389,503,583,631,767,848,916,987,1045,1103,1197,1237,1307,1330,1423,1639,1680,1692,1915,1918,1957,1974,1975,2002,2012,2018,2021,2037,32,59,145,220,240,308,369,445,451,515,615,661,674,764,806,852,940,973,1055,1095,1130,1209,1274,1295,1353,1402,1453,1461,1472,1623,1677,1774,31,85,130,216,234,311,377,446,505,556,607,621,676,724,825,841,922,990,1050,1085,1137,1215,1224,1230,1317,1361,1387,1425,1601,1608,1651,1775,30,91,164,183,237,299,341,423,450,558,649,701,772,876,932,951,1056,1100,1108,1121,1191,1238,1309,1357,1546,1561,1618,1713,1766,1797,1821,1888,29,75,126,201,227,329,339,414,501,524,574,627,681,747,797,860,941,961,1044,1078,1122,1204,1266,1299,1332,1362,1389,1542,1606,1628,1667,1776,28,77,154,202,261,295,375,432,483,508,616,651,693,757,811,871,915,956,1013,1076,1148,1177,1225,1277,1313,1352,1397,1436,1492,1586,1698,1777,27,101,138,182,321,354,437,489,518,573,663,702,750,804,882,929,962,1019,1089,1129,1165,1212,1253,1292,1375,1419,1433,1641,1705,1757,1801,1851,26,83,166,173,256,305,356,447,457,525,568,659,675,754,781,855,902,950,1004,1082,1140,1179,1233,1282,1289,1381,1420,1475,1594,1629,1656,1778,25,94,156,190,268,331,342,436,455,557,604,624,689,791,843,935,976,1111,1149,1302,1334,1365,1396,1590,1660,1704,1727,1876,1882,1935,1940,1946,24,143,241,376,430,487,611,644,777,885,904,982,1189,1268,1367,1391,1687,1749,1820,1823,1870,1913,1932,1969,1973,1982,2007,2023,2033,2035,2041,2046,23,76,162,224,229,309,338,411,469,543,579,645,696,788,846,917,965,1011,1062,1136,1169,1207,1264,1325,1336,1406,1474,1577,1620,1659,1714,1779,
22,90,135,193,270,328,366,419,472,520,623,718,775,779,865,914,967,1022,1066,1112,1174,1228,1284,1373,1411,1442,1480,1511,1615,1655,1708,1780,21,61,132,188,232,301,441,458,545,609,812,873,993,1029,1143,1248,1486,1506,1526,1533,1552,1564,1621,1682,1739,1800,1873,1874,1925,1948,1958,1965,20,148,378,488,591,758,868,897,974,1005,1206,1249,1337,1410,1451,1466,1530,1569,1611,1649,1688,1825,1943,1964,1970,1990,1993,2003,2017,2026,2034,2045,19,63,140,178,258,314,368,417,454,555,593,634,691,746,807,874,898,986,1018,1075,1123,1198,1227,1322,1366,1404,1445,1575,1595,1631,1706,1781,18,78,114,198,253,307,398,480,580,668,713,733,819,994,1046,1086,1120,1275,1303,1380,1449,1549,1568,1583,1697,1863,1937,1942,1962,1972,1998,2004,17,74,124,259,374,466,538,610,633,832,923,966,1236,1288,1354,1495,1515,1556,1625,1798,1842,1878,1959,1976,1981,1988,1991,2001,2010,2019,2031,2043,16,118,176,249,293,347,442,490,539,577,690,780,838,939,981,1048,1069,1161,1218,1240,1300,1519,1600,1626,1700,1809,1819,1831,1949,1978,1996,2005,15,56,209,272,287,344,418,482,516,602,666,682,722,776,821,877,943,952,1006,1162,1217,1308,1355,1414,1470,1507,1525,1578,1647,1672,1804,1852,14,57,212,278,291,359,439,470,509,700,783,879,989,1097,1138,1166,1213,1368,1476,1502,1504,1573,1664,1746,1756,1760,1864,1910,1920,1951,1952,1966,13,92,149,263,352,486,612,640,723,850,954,1195,1276,1324,1364,1494,1537,1640,1711,1832,1834,1892,1909,1960,1983,1995,2008,2013,2020,2028,2039,2047,12,84,131,177,265,315,386,394,463,528,603,638,768,809,886,937,968,1041,1147,1202,1272,1310,1383,1452,1468,1478,1498,1662,1753,1791,1808,1853,100,144,196,235,336,420,460,619,704,736,805,842,921,964,1042,1152,1170,1327,1349,1416,1427,1497,1523,1558,1799,1818,1826,1830,1837,1838,1867,1889,11,104,155,221,271,310,390,410,475,527,608,653,698,742,810,851,927,984,1020,1083,1244,1278,1293,1350,1393,1429,1514,1517,1592,1636,1669,1782,10,110,125,228,322,334,399,467,522,584,654,680,726,800,878,893,947,1012,1088,1151,1200,1242,1301,1382,1413,1444,1574,1612,1650,1695,1789,1854,9,103,113,179,236,294,383,416,498,507,582,641,687,728,824,837,891,948,1028,1059,1079,1145,1182,1297,1374,1469,1521,1547,1593,1643,1715,1783,8,98,158,223,264,284,360,392,452,513,596,620,710,752,829,866,926,983,1032,1099,1127,1185,1424,1572,1587,1717,1794,1811,1814,1817,1866,1890,7,81,116,210,277,324,343,444,502,534,589,637,708,734,814,845,907,975,1105,1113,1134,1171,1259,1339,1394,1437,1505,1605,1686,1703,1806,1855,6,88,175,250,285,355,403,449,532,565,685,745,816,992,1031,1090,1157,1168,1201,1245,1388,1463,1536,1548,1624,1690,1802,1891,1893,1901,1941,1947,5,108,146,203,231,303,367,396,495,511,575,650,720,753,786,880,894,997,1003,1026,1092,1155,1319,1338,1471,1522,1596,1638,1666,1696,1786,1856,4,106,141,200,252,312,337,427,476,548,569,670,727,822,1009,1064,1132,1281,1335,1439,1503,1598,1675,1744,1764,1816,1872,1904,1927,1950,1968,1971,147,266,385,459,551,572,665,741,840,890,996,1016,1178,1269,1305,1371,1421,1482,1554,1609,1716,1807,1980,1986,1987,1992,1999,2011,2014,2024,2030,2038,3,66,136,207,262,313,370,431,471,535,562,686,769,787,862,918,991,1037,1109,1115,1203,1220,1254,1378,1418,1467,1528,1603,1637,1653,1759,1857,2,69,161,185,226,302,388,435,481,512,597,618,707,748,815,863,903,972,1035,1065,1158,1194,1222,1311,1345,1384,1524,1540,1630,1661,1709,1784,
1,109,168,194,247,327,349,424,453,531,581,646,677,771,828,839,928,980,1014,1091,1133,1183,1271,1323,1333,1343,1447,1483,1646,1699,1755,1858,0,87,151,189,248,280,357,404,497,559,592,643,717,729,801,831,920,1002,1051,1104,1154,1199,1257,1279,1377,1401,1431,1490,1529,1597,1658,1785,152,192,225,317,353,443,544,657,688,725,782,849,908,1000,1054,1124,1175,1304,1390,1462,1520,1557,1648,1723,1735,1736,1741,1751,1822,1840,1883,1911,79,120,184,319,358,400,500,514,576,652,679,744,803,854,925,978,1038,1173,1250,1318,1360,1405,1448,1489,1508,1512,1560,1588,1676,1762,1928,1933,62,159,215,289,348,409,464,506,564,626,721,765,817,899,957,1015,1081,1135,1187,1221,1247,1294,1346,1409,1477,1501,1570,1644,1665,1722,1793,1859,89,112,199,239,325,373,438,473,549,605,635,684,766,813,853,896,960,1034,1093,1126,1180,1262,1326,1398,1563,1589,1671,1721,1731,1742,1805,1860,80,121,211,279,283,380,426,468,510,567,629,714,743,778,847,912,944,1007,1060,1114,1211,1255,1296,1342,1541,1567,1599,1635,1681,1719,1768,1861,67,222,238,290,362,412,474,540,586,632,712,735,798,884,905,979,1047,1107,1131,1232,1306,1369,1417,1443,1456,1493,1516,1720,1733,1754,1923,1926,52,86,167,195,233,318,364,429,537,594,672,751,799,934,1017,1077,1110,1163,1214,1432,1465,1538,1691,1787,1836,1879,1897,1906,1929,1936,1961,1979,53,106,127,242,296,339,455,532,638,708,760,793,891,1000,1035,1071,1155,1242,1285,1343,1414,1454,1517,1747,1780,1846,1929,1959,1962,1990,1995,1997,51,85,166,194,232,317,363,428,463,536,593,624,671,750,798,835,933,999,1016,1076,1108,1162,1213,1240,1303,1354,1431,1464,1484,1652,1690,1786,50,57,331,553,589,657,718,755,829,857,943,968,1077,1159,1215,1222,1320,1378,1547,1574,1632,1682,1770,1778,1801,1834,1884,1901,1921,1922,1945,1954,54,114,274,303,370,491,545,594,641,694,822,856,937,952,1051,1105,1117,1207,1218,1238,1289,1499,1584,1615,1728,1735,1738,1833,1844,1970,1981,1986,49,71,138,186,243,383,396,584,754,833,941,980,1013,1187,1228,1290,1399,1437,1463,1618,1718,1765,1771,1822,1857,1943,1963,1988,2015,2020,2023,2030,48,63,152,204,305,333,401,477,528,607,698,777,789,868,970,1042,1062,1141,1171,1262,1319,1375,1493,1549,1570,1603,1672,1704,1761,1842,1874,1891,47,95,149,212,319,362,392,503,522,613,635,702,731,830,871,912,957,1039,1067,1152,1183,1245,1311,1350,1402,1480,1500,1559,1633,1700,1807,1862,46,104,169,207,253,315,378,414,525,598,691,738,788,858,894,976,1056,1145,1257,1347,1492,1509,1526,1554,1576,1673,1743,1840,1841,1905,1971,1978,45,98,132,213,256,281,349,421,495,600,666,672,761,783,834,908,948,1048,1066,1149,1269,1279,1362,1516,1531,1561,1607,1693,1753,1802,1806,1863,44,133,203,244,386,405,504,627,759,855,918,945,1023,1209,1355,1385,1445,1486,1532,1612,1757,1845,1858,1888,1906,1915,1992,1993,2028,2032,2043,2046,43,168,173,273,300,535,605,647,721,880,888,962,1032,1095,1118,1195,1230,1429,1478,1530,1534,1539,1635,1725,1815,1824,1827,1898,1908,1965,1996,2006,42,72,159,180,241,280,364,432,490,549,562,654,677,794,866,932,954,1026,1101,1158,1212,1272,1327,1339,1390,1421,1601,1628,1677,1692,1724,1864,41,109,118,216,266,325,360,412,464,559,570,652,705,775,792,921,987,1029,1072,1114,1176,1233,1309,1335,1391,1430,1449,1459,1616,1678,1711,1787,67,122,218,250,287,381,424,498,529,599,655,693,762,825,882,935,997,1070,1124,1185,1251,1315,1337,1384,1395,1444,1580,1631,1656,1739,1810,1892,
40,79,170,190,275,292,344,433,466,518,612,646,680,737,805,869,900,991,1057,1100,1153,1180,1259,1277,1383,1442,1542,1579,1609,1683,1707,1788,39,105,171,268,332,345,406,478,507,586,696,758,807,832,994,1038,1083,1140,1255,1330,1363,1472,1544,1606,1608,1803,1849,1852,1895,1911,1941,1948,38,94,116,184,254,291,380,420,476,520,565,621,715,729,795,863,905,984,1052,1086,1127,1175,1260,1313,1346,1406,1433,1455,1621,1657,1706,1789,37,81,156,272,285,371,493,541,659,670,769,826,860,910,963,1007,1073,1143,1198,1250,1297,1358,1453,1550,1726,1736,1817,1910,1918,1984,2031,2042,36,164,217,248,390,427,460,551,601,661,739,874,899,944,1033,1204,1275,1282,1300,1369,1398,1564,1581,1641,1650,1709,1985,2002,2017,2019,2029,2033,35,59,128,179,329,394,461,546,597,817,923,958,1022,1069,1113,1115,1189,1225,1286,1340,1407,1440,1458,1490,1668,1813,1825,1848,1851,1873,1875,1893,34,69,126,205,259,297,407,492,552,615,667,714,773,801,843,929,969,1009,1093,1166,1191,1264,1314,1456,1496,1533,1543,1578,1644,1653,1688,1790,33,64,162,185,252,295,334,391,404,484,540,582,682,736,854,914,998,1116,1266,1371,1394,1565,1599,1669,1751,1758,1808,1936,1951,2000,2004,2010,32,70,141,229,328,388,423,502,509,630,689,766,819,847,915,986,1044,1102,1163,1196,1236,1306,1329,1422,1434,1588,1638,1679,1782,1854,1934,1949,31,58,144,219,239,368,444,450,614,660,851,939,972,1054,1208,1273,1294,1352,1401,1452,1460,1471,1622,1676,1768,1779,1964,1991,2007,2011,2013,2025,30,84,129,215,233,310,376,445,505,555,606,675,723,824,840,989,1049,1084,1136,1223,1229,1316,1360,1386,1424,1600,1708,1740,1777,1896,1924,1927,29,90,163,182,236,298,340,422,449,557,569,648,700,771,799,875,931,950,1055,1060,1099,1120,1190,1237,1308,1356,1545,1560,1591,1617,1666,1791,28,74,125,200,226,338,413,500,573,626,746,859,940,960,1043,1203,1265,1298,1331,1361,1388,1541,1605,1627,1766,1785,1974,2003,2009,2040,2041,2047,27,76,153,201,260,294,374,431,482,616,650,692,756,810,870,955,1012,1075,1147,1276,1351,1396,1435,1491,1524,1585,1697,1829,1835,1900,1947,1955,26,100,137,181,245,320,353,436,488,517,572,662,701,749,803,881,928,961,1018,1088,1128,1164,1211,1252,1291,1374,1418,1432,1583,1640,1684,1792,25,82,165,172,255,304,355,447,456,524,567,658,674,753,780,901,949,1081,1139,1178,1232,1281,1288,1380,1419,1474,1504,1593,1701,1731,1755,1865,24,93,155,189,267,330,341,435,454,556,603,623,688,744,790,842,887,934,975,1005,1148,1192,1254,1333,1364,1507,1589,1643,1659,1752,1764,1866,23,101,142,193,240,322,375,429,486,514,610,643,716,722,724,784,884,903,981,1028,1068,1121,1188,1267,1296,1334,1366,1476,1551,1611,1687,1793,22,75,161,224,228,308,337,410,468,542,578,644,695,763,787,845,916,964,1010,1061,1135,1168,1206,1263,1324,1405,1473,1487,1619,1658,1713,1794,21,89,134,192,269,327,365,418,471,519,577,622,717,774,778,913,966,1021,1065,1110,1173,1227,1283,1372,1410,1441,1479,1510,1614,1654,1994,1998,20,60,131,187,231,350,440,457,544,608,676,730,811,872,992,1107,1142,1174,1247,1328,1483,1552,1558,1563,1620,1712,1783,1820,1850,1886,1972,1977,19,96,147,223,249,377,439,487,558,590,629,673,757,796,867,896,973,1004,1089,1205,1248,1336,1409,1450,1465,1494,1512,1529,1568,1610,1767,1867,18,62,139,177,257,313,367,416,453,554,592,633,690,745,806,873,897,985,1017,1074,1122,1197,1226,1321,1365,1403,1575,1594,1630,1663,1705,1795,
17,77,113,197,306,354,397,479,516,579,668,712,732,818,864,930,993,1045,1085,1119,1214,1274,1302,1379,1448,1548,1567,1582,1636,1662,1696,1796,16,73,123,196,258,284,373,400,465,537,609,632,713,748,791,831,922,965,1024,1094,1138,1217,1235,1287,1353,1393,1555,1562,1624,1686,1689,1797,15,92,117,175,346,441,489,538,576,628,768,837,938,1047,1160,1169,1299,1415,1439,1519,1535,1670,1699,1737,1756,1826,1843,1931,1975,1982,1987,1989,14,55,121,208,286,343,417,481,515,665,681,820,951,1109,1161,1216,1307,1413,1469,1525,1577,1646,1671,1832,1838,1880,1882,1897,1902,1933,1950,1956,13,56,111,211,277,290,358,438,469,508,587,620,699,772,782,878,988,1058,1096,1137,1165,1239,1284,1367,1502,1629,1734,1744,1763,1781,1784,1868,12,91,148,198,262,282,351,408,485,523,611,639,704,776,800,849,942,953,1020,1129,1194,1224,1234,1323,1495,1508,1572,1602,1639,1772,1776,1869,83,130,176,264,314,385,393,462,527,637,767,808,885,936,967,1040,1079,1146,1201,1271,1382,1451,1467,1477,1498,1538,1647,1733,1746,1883,1889,1912,11,99,143,195,299,335,419,459,591,618,703,735,804,841,920,1041,1087,1151,1326,1348,1426,1497,1518,1522,1557,1587,1625,1680,1774,1831,1859,1894,10,103,154,220,270,309,389,409,474,526,697,741,809,850,983,1019,1082,1243,1349,1428,1514,1553,1691,1773,1812,1847,1855,1856,1903,1904,1916,1920,9,110,124,206,227,321,398,521,583,679,725,877,892,946,1011,1150,1199,1381,1412,1443,1573,1590,1649,1759,1769,1816,1818,1821,1823,1885,1914,1917,8,102,112,178,235,293,382,415,497,506,581,640,686,727,823,836,890,947,1003,1027,1078,1144,1181,1373,1468,1520,1546,1592,1642,1681,1762,1870,7,97,157,222,263,283,359,446,451,512,595,619,709,751,828,865,925,982,1031,1098,1126,1167,1184,1256,1301,1423,1571,1586,1613,1716,1809,1871,6,80,115,209,276,323,342,443,501,533,588,636,707,733,813,844,906,974,1104,1112,1133,1170,1258,1292,1338,1436,1505,1604,1626,1685,1702,1798,5,87,136,174,402,448,531,564,663,684,815,909,1030,1156,1200,1244,1312,1387,1462,1536,1623,1667,1732,1861,1876,1878,1887,1890,1942,1944,2016,2026,4,107,145,202,230,302,366,395,494,510,574,649,719,752,785,879,893,996,1025,1091,1154,1318,1470,1521,1537,1637,1665,1745,1748,1923,1932,1940,140,199,251,311,336,426,475,547,568,669,726,821,876,926,1008,1063,1131,1241,1280,1392,1438,1503,1597,1674,1703,1741,1930,1946,1966,1979,2018,2024,3,86,146,214,265,307,384,437,458,550,571,664,710,740,779,839,889,995,1015,1097,1177,1268,1304,1370,1420,1427,1481,1513,1715,1730,1742,1872,2,65,135,261,312,369,430,470,534,561,653,685,786,861,917,990,1036,1202,1219,1253,1417,1506,1527,1694,1819,1828,1860,1879,1909,1937,1957,1967,1,68,160,225,301,387,434,480,511,596,617,706,747,814,862,902,971,1034,1064,1157,1193,1221,1310,1344,1466,1523,1660,1750,1760,1804,1899,1913,0,108,167,246,326,348,452,530,580,645,770,827,838,927,979,1090,1132,1182,1270,1322,1342,1425,1446,1482,1645,1655,1698,1729,1925,1969,2021,2027,150,188,247,356,403,496,642,728,886,919,1001,1050,1103,1278,1376,1400,1489,1528,1596,1710,1723,1814,1830,1881,1919,1953,1973,1983,2022,2034,2038,2044,191,278,316,352,442,483,543,602,656,687,781,848,907,1053,1123,1357,1389,1411,1461,1556,1648,1651,1717,1749,1836,1853,1907,1926,1928,1938,1958,1968,78,119,183,271,318,357,399,499,513,575,651,678,743,802,853,924,977,1037,1111,1172,1249,1317,1359,1404,1447,1457,1488,1511,1675,1714,1722,1799,
61,158,234,288,347,560,563,625,720,764,816,898,956,1014,1080,1134,1186,1220,1246,1293,1345,1408,1501,1569,1664,1721,1727,1754,1961,2014,2035,2039,88,238,324,372,472,548,604,634,683,765,812,852,895,959,1092,1125,1179,1261,1325,1332,1377,1397,1719,1775,1811,1839,1939,1952,1960,1999,2001,2012,120,210,279,379,425,467,566,742,846,911,1002,1006,1059,1210,1295,1341,1540,1566,1598,1634,1720,1805,1837,1877,1935,1976,1980,2005,2008,2036,2037,2045,52,66,151,221,237,289,361,411,473,539,585,631,711,734,797,883,904,978,1046,1106,1130,1231,1305,1368,1416,1475,1485,1515,1595,1661,1695,1800,53,126,196,295,338,439,454,531,577,637,707,759,792,856,890,1034,1070,1154,1342,1413,1453,1484,1572,1579,1662,1725,1741,1761,1816,1836,1856,1895,51,65,150,220,236,288,360,410,472,538,584,630,733,882,903,977,1045,1105,1217,1230,1304,1367,1474,1558,1594,1660,1759,1831,1929,1992,2003,2013,50,84,165,231,316,362,427,462,535,592,623,749,797,834,932,998,1015,1060,1075,1161,1302,1353,1463,1492,1537,1756,1813,1868,1878,1911,1953,1969,56,136,184,268,330,390,392,484,552,588,656,717,754,828,967,1007,1076,1158,1221,1234,1319,1546,1573,1583,1631,1701,1783,1832,1833,1846,1860,1896,49,109,113,223,273,302,369,400,490,544,593,640,693,821,855,936,951,1050,1104,1116,1169,1206,1237,1288,1369,1411,1427,1499,1614,1653,1704,1801,48,70,137,185,242,284,382,395,476,518,583,653,704,753,784,832,940,979,1012,1097,1186,1227,1289,1357,1398,1436,1462,1512,1554,1617,1718,1802,47,62,203,241,304,527,606,663,697,722,748,788,867,969,1041,1061,1140,1170,1261,1318,1374,1485,1548,1569,1671,1764,1827,1909,1922,1926,1972,1981,46,94,148,211,272,318,361,446,502,521,612,634,701,777,870,911,956,1038,1066,1151,1182,1244,1310,1349,1401,1456,1479,1500,1632,1699,1730,1873,45,103,168,314,377,413,483,524,597,690,737,787,857,893,975,1055,1144,1328,1346,1421,1439,1486,1491,1509,1672,1688,1742,1796,1814,1936,1946,1957,44,97,131,212,255,280,348,420,494,516,599,665,671,760,782,833,907,947,1047,1065,1148,1268,1278,1361,1515,1530,1538,1560,1607,1626,1667,1803,43,101,132,202,243,385,404,503,553,569,626,710,758,819,917,944,1022,1138,1208,1240,1384,1425,1483,1508,1532,1684,1747,1795,1823,1865,1867,1897,42,92,167,172,350,406,534,604,646,720,736,826,879,943,961,1031,1117,1194,1229,1428,1449,1477,1529,1533,1634,1650,1706,1753,1862,1963,1991,1993,41,71,158,179,240,363,431,489,548,561,772,793,865,931,953,1025,1157,1211,1271,1326,1338,1389,1420,1600,1627,1676,1724,1782,1885,1925,2022,2029,108,117,215,265,324,359,411,651,774,835,920,986,1071,1175,1232,1308,1429,1448,1458,1551,1615,1726,1776,1810,1820,1888,1961,1980,2018,2019,2020,2034,40,66,217,286,380,497,528,598,654,692,761,824,881,934,996,1020,1069,1123,1184,1250,1314,1336,1394,1443,1630,1712,1755,1852,1913,1997,2021,2026,39,78,170,189,274,291,343,432,465,517,611,645,679,804,868,899,990,1056,1099,1152,1179,1258,1276,1285,1382,1441,1541,1578,1682,1845,1872,1898,38,104,121,267,332,344,405,477,506,585,695,757,806,831,909,993,1037,1082,1139,1185,1329,1362,1471,1543,1605,1651,1692,1740,1850,1935,1951,1970,37,93,115,183,253,290,379,419,475,519,564,714,728,794,862,904,983,1051,1085,1126,1259,1345,1405,1432,1454,1590,1620,1656,1705,1927,1947,1958,36,80,155,190,370,492,540,587,658,669,825,859,962,1006,1072,1142,1197,1249,1434,1452,1549,1613,1677,1717,1732,1770,1797,1819,1822,1870,1933,1941,
35,96,163,216,247,322,389,426,459,550,600,660,718,738,791,873,898,1002,1032,1100,1163,1203,1274,1281,1299,1368,1397,1563,1580,1640,1649,1804,34,58,127,178,245,334,393,460,545,596,629,670,730,816,922,957,1021,1112,1188,1339,1406,1489,1524,1606,1693,1765,1788,1828,1887,1974,1978,1982,33,68,125,204,258,296,491,551,614,666,842,928,968,1008,1092,1165,1190,1263,1313,1475,1496,1542,1577,1727,1767,1824,1864,1879,1943,1976,1977,1983,32,63,161,251,294,403,539,581,624,681,735,853,913,997,1024,1115,1214,1265,1284,1370,1455,1564,1598,1647,1711,1769,1773,1798,1815,1840,1853,1899,31,69,140,206,228,327,387,422,501,508,582,688,765,818,846,985,1043,1101,1162,1195,1235,1282,1305,1433,1535,1637,1678,1691,1799,1825,1841,1900,30,57,143,218,238,307,367,443,449,514,613,659,673,763,805,850,938,971,1053,1094,1129,1207,1272,1293,1351,1400,1451,1459,1470,1621,1675,1805,29,83,128,232,309,375,444,505,554,605,674,776,823,839,921,988,1048,1083,1135,1222,1228,1315,1359,1385,1423,1493,1737,1835,1966,1994,2004,2014,28,89,162,181,235,297,339,421,448,556,568,647,699,770,798,874,949,1054,1059,1098,1119,1189,1236,1307,1355,1457,1544,1616,1665,1746,1789,1874,27,73,124,199,225,328,337,412,499,523,572,625,680,745,796,858,939,959,1042,1077,1121,1202,1264,1297,1330,1360,1387,1540,1604,1666,1710,1806,26,75,152,200,259,293,373,430,481,507,616,649,691,755,809,869,914,954,1011,1074,1146,1176,1224,1312,1350,1490,1523,1584,1696,1752,1908,1918,25,99,180,244,319,352,435,487,571,661,700,802,880,927,960,1017,1113,1127,1210,1251,1290,1373,1417,1431,1582,1639,1683,1728,1818,1842,1863,1901,24,81,164,171,254,303,447,455,566,657,752,854,900,948,1058,1080,1177,1231,1280,1287,1379,1418,1473,1592,1655,1700,1839,1942,1964,1987,2043,2047,23,154,188,266,329,340,434,453,555,622,687,743,789,830,841,933,974,1004,1109,1147,1191,1253,1301,1395,1642,1658,1703,1869,1883,1996,2012,2027,22,100,141,192,239,321,374,428,485,513,609,642,715,723,783,883,902,1027,1067,1120,1187,1266,1295,1333,1365,1550,1610,1687,1754,1784,1843,1902,21,74,160,224,227,336,409,467,541,643,694,762,786,844,915,1009,1134,1205,1262,1323,1404,1472,1576,1618,1780,1791,1871,1881,1890,1894,2011,2028,20,88,133,191,326,364,417,470,576,621,773,864,912,965,1064,1108,1172,1226,1371,1409,1440,1478,1531,1707,1738,1817,1877,1892,1921,1973,2002,2015,19,59,130,186,230,300,349,456,543,667,675,729,810,871,930,1028,1106,1141,1173,1246,1327,1383,1482,1552,1557,1619,1681,1847,1990,2000,2001,2016,18,95,146,222,299,376,438,486,557,589,672,756,795,895,972,1088,1204,1247,1408,1464,1495,1504,1511,1528,1567,1609,1736,1794,1893,1931,2005,2006,17,61,138,176,256,312,366,415,452,632,872,896,984,1016,1073,1196,1225,1320,1364,1402,1444,1575,1593,1760,1792,1830,1876,1962,1975,2025,2032,2041,16,76,112,252,305,353,396,478,515,578,668,711,731,817,863,929,992,1044,1084,1118,1213,1273,1378,1447,1566,1581,1733,1812,1866,1932,1944,1959,15,72,122,195,257,283,372,399,464,536,608,631,712,747,790,886,964,1023,1093,1137,1216,1286,1352,1561,1591,1623,1685,1743,1771,1834,1920,1924,14,91,116,174,248,292,345,440,488,537,575,627,689,767,779,836,937,980,1046,1068,1159,1168,1239,1298,1414,1438,1519,1534,1599,1625,1698,1807,13,54,120,207,271,285,342,391,416,480,601,664,775,876,942,950,1005,1160,1215,1306,1354,1412,1468,1487,1506,1525,1645,1774,1811,1915,2007,2009,
12,55,169,210,276,289,357,468,586,619,698,771,781,877,987,1057,1095,1136,1164,1212,1238,1283,1366,1392,1466,1502,1663,1731,1739,1829,1995,1999,90,147,197,261,281,407,522,610,638,703,848,941,952,1019,1111,1128,1193,1223,1233,1322,1363,1571,1601,1638,1686,1785,1821,1858,1889,1945,1956,1965,11,82,129,175,263,313,384,461,526,602,636,766,807,884,935,966,1039,1078,1145,1200,1270,1309,1381,1450,1498,1646,1661,1763,1786,1967,2035,2042,10,98,142,194,234,298,418,458,590,617,702,734,803,840,919,963,1040,1086,1150,1325,1347,1390,1415,1497,1517,1521,1556,1586,1624,1679,1768,1875,9,102,153,219,269,308,388,473,525,607,652,696,740,808,849,926,982,1018,1081,1242,1277,1292,1348,1514,1635,1668,1690,1744,1748,1986,2031,2039,8,110,123,205,226,320,333,397,466,520,678,799,891,945,1010,1087,1149,1241,1300,1380,1494,1589,1611,1694,1734,1735,1749,1800,1857,1919,1934,1950,7,177,381,414,496,560,580,639,685,726,822,889,946,1026,1143,1180,1296,1372,1467,1545,1641,1714,1787,1837,1859,1907,1916,1940,1952,1989,2040,2046,6,156,221,262,358,445,450,511,594,618,708,750,827,924,981,1030,1125,1166,1183,1255,1335,1422,1570,1585,1612,1670,1715,1917,1998,2008,2017,2030,5,114,208,275,341,442,500,532,635,706,732,812,843,905,973,1103,1110,1132,1257,1291,1393,1435,1505,1518,1603,1745,1757,1778,1826,1910,2033,2036,4,135,173,249,354,401,504,530,563,662,683,744,814,866,908,991,1029,1155,1167,1199,1243,1311,1386,1461,1536,1547,1622,1689,1766,1988,2038,2045,106,144,201,229,301,365,394,493,573,648,751,878,887,892,995,1090,1317,1337,1469,1516,1520,1595,1664,1772,1793,1937,1985,2010,2023,2024,2037,2044,3,139,250,310,335,425,474,546,567,620,721,725,820,875,925,1062,1130,1192,1279,1303,1391,1437,1503,1596,1608,1673,1702,1884,1906,1938,1949,1960,2,85,145,213,264,306,383,436,457,549,570,709,739,778,838,888,994,1014,1096,1267,1332,1419,1426,1480,1669,1762,1790,1844,1891,1930,1955,1968,1,64,134,260,311,368,429,469,533,615,684,768,785,860,916,989,1035,1107,1114,1201,1218,1252,1377,1416,1442,1526,1602,1636,1652,1848,1854,1903,0,67,159,278,386,433,479,510,595,705,746,813,861,901,970,1063,1156,1220,1334,1343,1465,1522,1539,1629,1659,1838,1886,1912,1939,1948,1954,1971,107,166,193,325,347,423,451,529,579,644,676,769,837,978,1013,1131,1181,1269,1321,1341,1424,1445,1481,1574,1644,1654,1697,1723,1758,1851,1861,1904,86,149,187,246,331,355,402,495,558,591,641,716,727,800,885,918,1000,1049,1102,1153,1198,1256,1375,1399,1430,1488,1527,1553,1657,1709,1923,1928,105,151,277,315,351,441,482,542,655,686,724,780,847,906,999,1052,1079,1122,1174,1275,1356,1388,1410,1460,1555,1648,1716,1722,1777,1880,1979,1984,77,118,182,270,317,356,398,498,512,574,650,677,742,801,852,923,976,1036,1171,1248,1316,1358,1403,1446,1507,1510,1559,1587,1674,1713,1721,1808,60,157,214,233,287,346,408,463,559,562,719,815,897,955,1133,1219,1245,1344,1407,1476,1501,1568,1643,1695,1719,1729,1751,1779,1781,1849,1855,1905,87,111,198,237,323,371,437,471,547,603,633,682,764,811,851,894,958,1033,1091,1124,1178,1260,1324,1331,1376,1396,1562,1588,1628,1708,1720,1809,52,79,119,209,279,282,378,424,509,565,628,713,741,829,845,910,1001,1003,1089,1209,1254,1294,1340,1513,1565,1597,1633,1680,1750,1775,1882,1914。
权利要求
1.一种使用GRS码构建LDPC码的方法,所述方法包括选择一组地址,包括多个元素,其中每个元素可以由升到对应指数次幂的伽罗瓦域中的一个素元生成,其中所述伽罗瓦域包括预定的有限个元素;第一度为1的多项式函数,用于将所述地址组的每个元素映射到对应的非零值;第二度为1的多项式函数,为所述第一度为1的多项式函数的非线性纯量倍数;从所述伽罗瓦域中选择多个非零元素;从多个可能的编码字向量值中识别GRS码的第一编码字向量,其中所述第一编码字向量可使用所述多个非零元素并依据所述第一度为1的多项式函数对所述地址组中的每个元素进行映射来生成;从所述多个可能的编码字向量值中识别所述GRS码的第二编码字向量,其中所述第二编码字向量可使用所述多个非零元素并依据所述第二度为1的多项式函数对所述地址组中的每个元素进行映射来生成;将所述第一编码字向量与第一多个比例因子中的每个比例因子相乘,从而生成多个调整后第一编码字向量;将所述第二编码字向量与第二多个比例因子中的每个比例因子相乘,从而生成多个调整后第二编码字向量;将所述每个调整后第一编码字向量与所述每个调整后第二编码字向量相加以生成多个陪集;生成多个置换矩阵,其中每个所述置换矩阵包括多个行,每行包括有所述多个陪集中一个陪集的地址映射;将所述多个置换矩阵中的每个置换矩阵排列为子矩阵,从而生成对应所述LDPC码的LDPC奇偶校验矩阵。
2.根据权利要求1所述的方法,其特征在于所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述多个陪集包括2s个陪集;所述多个置换矩阵中每个置换矩阵是2s×2s的置换矩阵。
3.根据权利要求1所述的方法,其特征在于所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;且ρ小于或等于2s。
4.根据权利要求1所述的方法,其特征在于所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;所述LDPC奇偶校验矩阵的位节点的度为γ,且校验节点的度为ρ;所述LDPC奇偶校验矩阵的每列的权重为γ;所述LDPC奇偶校验矩阵的每行的权重为ρ;且ρ小于或等于2s。
5.根据权利要求1所述的方法,其特征在于所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述LDPC奇偶校验矩阵为384×2048的矩阵;所述LDPC码为(2048,1723)规则LDPC码,其编码率接近0.8413;且所述LDPC码的最小码间据大于或等于8。
6.一种利用GRS码构建LDPC码的方法,所述方法包括从多个可能的编码字向量值中识别GRS码的第一编码字向量;从多个可能的编码字向量值中识别所述GRS码的第二编码字向量;将所述第一编码字向量与第一多个比例因子中的每个比例因子相乘,从而生成多个调整后第一编码字向量;将所述第二编码字向量与第二多个比例因子中的每个比例因子相乘,从而生成多个调整后第二编码字向量;将所述每个调整后第一编码字向量与所述每个调整后第二编码字向量相加以生成多个陪集;生成多个置换矩阵,其中每个所述置换矩阵包括多个行,每行包括有所述多个陪集中一个陪集的地址映射;将所述多个置换矩阵中的每个置换矩阵排列为子矩阵,从而生成对应所述LDPC码的LDPC奇偶校验矩阵。
7.根据权利要求6所述的方法,其特征在于,所述方法进一步包括选择一组地址,包括多个元素,其中每个元素可以由升到对应指数次幂的伽罗瓦域中的一个素元生成,其中所述伽罗瓦域包括预定的有限个元素;第一度为1的多项式函数,用于将所述地址组的每个元素映射到对应的非零值;第二度为1的多项式函数,为所述第一度为1的多项式函数的非线性纯量倍数;从所述伽罗瓦域中选择多个非零元素;其中所述第一编码字向量可使用所述多个非零元素并依据所述第一度为1的多项式函数对所述地址组中的每个元素进行映射来生成;所述第二编码字向量可使用所述多个非零元素并依据所述第二度为1的多项式函数对所述地址组中的每个元素进行映射来生成。
8.一种利用GRS码构建LDPC码的装置,所述装置包括编码字向量识别模块,用于从多个可能的编码字向量值中识别GRS码的第一编码字向量;从多个可能的编码字向量值中识别所述GRS码的第二编码字向量;陪集生成模块,用于将所述第一编码字向量与第一多个比例因子中的每个比例因子相乘,以生成多个调整后第一编码字向量;将所述第二编码字向量与第二多个比例因子中的每个比例因子相乘,以生成多个调整后第二编码字向量;将所述每个调整后第一编码字向量与所述每个调整后第二编码字向量相加以生成多个陪集;生成多个置换矩阵,其中每个所述置换矩阵包括多个行,每行包括有所述多个陪集中一个陪集的地址映射;将所述多个置换矩阵中的每个置换矩阵排列为子矩阵,从而生成对应所述LDPC码的LDPC奇偶校验矩阵。
9.根据权利要求8所述的装置,其特征在于,所述装置进一步包括地址组选择模块,包括多个元素,其中每个元素可以由升到对应指数次幂的伽罗瓦域中的一个素元生成,其中所述伽罗瓦域包括预定的有限个元素;第一度为1的多项式函数,用于将所述地址组的每个元素映射到对应的非零值;第二度为1的多项式函数,为所述第一度为1的多项式函数的非线性纯量倍数;非零元素选择模块,用于从所述伽罗瓦域中选择多个非零元素;所述第一编码字向量可使用所述多个非零元素并依据所述第一度为1的多项式函数对所述地址组中的每个元素进行映射来生成;所述第二编码字向量可使用所述多个非零元素并依据所述第二度为1的多项式函数对所述地址组中的每个元素进行映射来生成。
10.根据权利要求8所述的装置,其特征在于所述伽罗瓦域中预定的有限个元素包括2s个元素,其中s为整数;所述多个陪集包括2s个陪集;所述多个置换矩阵中每个置换矩阵是2s×2s的置换矩阵;所述LDPC奇偶校验矩阵包括排列为子矩阵的γ×ρ个置换矩阵,其中γ和ρ为整数;所述LDPC奇偶校验矩阵的位节点的度为γ,且校验节点的度为ρ;所述LDPC奇偶校验矩阵的每列的权重为γ;所述LDPC奇偶校验矩阵的每行的权重为ρ;且ρ小于或等于2s。
全文摘要
本发明公开一种使用GRS码构建LDPC码的方法。根据本发明提供的新方法可以使用GRS码生成各种类型的LDPC码。所述基于GRS的LDPC码可以应用于通信系统中各种类型的接收机内。所述方法可以生成为各种应用领域特别设计的基于GRS的LDPC码。例如,所述基于GRS的LDPC码可特别设计为应用于遵循任何标准和/或IEEE P802.3an(10GBASE-T)课题组的推荐标准的通信系统中。
文档编号H03M13/15GK1933336SQ200610002598
公开日2007年3月21日 申请日期2006年1月10日 优先权日2005年1月10日
发明者凯利·布赖恩·卡梅伦, 豪·西恩·特, 巴中·申, 斯科特·理查德·鲍威尔 申请人:美国博通公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1