public void Test8()
        {
            var input  = "617,516,215,54,563,974,418,700,322,109,25,369,130,25,140,656,580,419,500,581,384,917,837,81,466,76,644,898,832,357,99,193,96,712,271,336,678,304,242,866,476,241,555,493,853,779,838,815,630,927,835,801,213,370,234,673,678,134,587,487,331,520,868,965,11,831,274,417,754,803,977,277,178,634,105,143,363,344,228,686,238,829,269,904,522,297,980,725,479,597,658,545,716,754,535,956,373,589,483,22,506,422,62,826,949,559,624,579,265,91,311,334,906,901,250,501,252,963,444,713,851,548,937,157,146,433,560,423,99,149,770,773,861,206,181,816,767,442,954,963,673,401,461,389,287,324,638,815,504,35,704,409,146,770,171,957,484,905,680,517,998,201,481,117,321,537,472,700,720,434,734,809,9,481,40,450,88,549,869,822,794,744,918,65,444,361,628,92,36,223,332,862,762,438,964,472,920,345,68,749,851,938,96,71,300,894,401,664,730,720,870,935,36,858,722,255,282,416,672,960,909,381,665,497,102,871,48,570,517,568,530,743,481,121,970,856,649,848,764,550,959,963,362,315,353,397,827,903,716,709,191,504,673,108,840,471,273,598,968,428,847,830,148,163,191,128,454,914,888,866,606,433,652,122,1,945,20,350,145,705,45,144,854,807,377,26,70,373,280,500,583,51,880,336,702,130,815,200,125,226,942,912,16,850,104,757,852,551,108,894,451,923,454,263,384,703,975,340,785,166,58,82,635,389,283,555,553,316,420,870,131,820,226,918,763,132,129,5,704,619,173,519,265,386,49,660,597,617,951,999,154,475,414,959,169,860,278,627,567,548,205,536,132,237,764,631,697,535,500,252,574,971,636,166,992,538,816,249,340,622,957,935,365,420,717,655,406,267,750,902,854,502,438,157,415,636,388,28";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("513", output);
        }
        public void Test6()
        {
            var input  = "162,603,238,808,1,822,280,390,923,765,429,529,401,178,672,330,242,912,996,120,96,686,236,318,290,624,736,339,707,282,553,544,476,652,534,147,185,496,787,154,81,310,277,315,383,30,626,235,830,715,301,534,464,802,67,872,368,920,518,376,87,941,683,642,213,885,53,749,644,525,145,745,126,843,39,785,410,920,934,261,998,502,508,992,981,20,80,673,585,661,779,265,978,411,68,139,626,634,103,497,976,876,590,305,570,555,408,621,764,281,462,447,985,257,377,585,434,690,661,193,805,379,164,982,746,879,766,714,775,899,160,775,818,438,285,123,911,203,422,426,611,459,909,304,199,332,279,721,34,483,705,936,973,909,692,597,712,608,559,690,789,694,845,864,122,687,629,548,972,255,673,232,269,236,582,346,470,860,783,414,601,45,680,293,195,223,802,908,745,687,410,303,643,732,636,917,613,45,183,512,703,731,749,779,809,473,668,738,328,346,127,852,824,146,90,744,14,553,670,898,884,720,802,286,845,371,588,536,599,664,733,426,678,271,711,869,296,901,483,721,555,64,581,400,560,557,478,498,642,892,904,61,374,284,627,982,928,463,933,439,885,132,140,663,613,701,175,554,434,220,448,112,71,949,344,821,140,402,725,288,892,91,894,706,760,672,52,394,643,728,941,832,967,44,836,424,924,918,787,858,383,924,64,422,444,792,989,425,939,806,843,526,738,646,547,795,237,433,902,940,650,780,910,706,279,616,144,27,114,919,896,222,615,867,904,967,27,473,263,968,682,627,454,836,884,415,95,322,497,41,187,491,16,847,208,602,15,357,143,827,649,963,311,21,910,622,911,871,741,580,768,764,171,934,258,24,326,74,822,864,522,822,530,73,732,405,206,767,659,302";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("541", output);
        }
        public void Test7()
        {
            var input  = "953,330,435,320,719,316,434,926,262,503,224,580,917,273,423,321,82,590,185,277,940,535,278,306,826,433,239,288,505,417,145,212,439,626,100,435,735,614,538,708,892,147,560,362,298,242,613,800,310,85,124,178,474,26,13,134,52,129,493,286,78,146,422,845,358,12,141,291,173,988,585,467,52,477,385,793,974,916,9,585,820,438,978,421,293,966,738,414,614,965,383,607,122,253,630,746,725,715,4,287,102,322,627,321,499,656,126,997,641,219,160,136,121,908,465,639,168,1,552,392,274,727,676,208,605,978,346,799,846,639,68,260,913,722,484,498,811,657,922,637,840,740,773,396,806,248,486,214,787,991,578,725,163,612,13,375,646,419,716,520,311,327,151,2,151,899,223,399,425,967,828,510,79,915,551,533,953,281,402,358,492,133,13,855,61,343,97,301,709,109,852,392,941,402,327,514,590,771,245,906,26,88,788,819,164,68,646,248,62,479,421,365,18,358,28,178,315,296,941,807,803,921,689,316,115,436,569,676,589,37,943,183,36,496,333,405,344,193,692,992,696,848,240,230,688,487,375,583,375,149,199,295,829,437,103,104,399,473,705,727,499,969,659,25,536,239,330,522,26,623,833,122,603,948,111,954,682,459,627,628,62,985,302,440,837,649,353,598,393,229,7,871,488,964,494,727,190,215,694,450,158,853,558,751,316,77,691,881,327,149,422,939,845,77,666,514,668,219,187,887,886,731,129,797,617,962,634,638,455,384,764,467,765,178,470,208,428,551,125,760,957,471,272,244,806,68,26,411,299,980,59,970,28,807,563,427,724,760,135,353,443,53,426,942,384,954,174,668,607,458,86,118,95,426,929,415,459,884,991,550,937,223,340,475,326,793,439,958,614,44,484,667,417,772,318,905,46,330,860,851,893,357,804,840,894,941,876,602,877,149,967,839,769,584,415,220,712,950";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("488", output);
        }
        public void Test4()
        {
            var input  = "293,729,688,179,320,664,240,344,653,601,609,879,907,895,122,674,487,328,418,965,355,626,453,139,26,109,18,74,221,742,191,670,913,230,215,26,829,647,153,949,504,164,976,179,456,567,126,177,844,889,369,595,125,788,938,80,276,550,154,211,647,167,123,911,411,938,966,678,680,96,845,839,175,468,461,191,649,274,683,459,983,840,229,331,373,595,545,125,291,136,749,280,494,941,303,338,42,66,767,518,600,447,496,748,45,529,421,656,328,747,430,3,867,694,228,806,937,791,538,816,393,841,387,545,347,565,346,234,166,124,150,584,507,165,858,536,345,481,287,843,175,889,797,544,705,747,413,799,714,497,400,250,527,951,125,759,61,951,402,479,184,187,491,204,597,845,495,702,836,691,462,457,505,694,642,504,45,842,839,600,153,546,519,668,723,900,57,556,41,100,475,394,80,807,660,987,398,593,946,860,252,711,963,23,36,943,744,833,309,621,714,219,112,801,327,638,668,823,481,697,788,939,661,736,216,68,378,698,35,654,106,451,895,979,348,442,582,497,632,780,157,224,247,420,385,257,283,278,480,22,320,575,113,250,72,313,50,228,806,967,565,46,798,654,515,263,323,132,453,885,57,171,191,700,540,565,692,242,351,959,785,100,218,14,335,530,339,645,908,36,392,355,690,665,215,111,425,592,904,123,933,151,824,595,965,149,385,412,709,506,620,808,876,847,182,465,828,785,320,984,924,677,223,418,493,702,480,525,485,430,140,101,337,229,26,635,276,622,48,186,146,926,936,402,416,584,478,843,483,750,282,640,273,920,198,256,928,407,102,264,668,859,926,280,367,519,472,648,821,547,190,206,737,134,839,997,741,820,2,909,224,637,42,735,148,500,828,416,31,769,706,868,521,784,518,286,1,656,36,896,113,829,22,936,560,77,902,139,82,201,515,108,405,193,40,32,817,191,132,867,691,56,617,53,840,321,685";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("486", output);
        }
        public void Test5()
        {
            var input  = "953,553,997,85,784,106,797,395,616,106,176,72,597,689,335,830,255,598,464,328,745,487,468,809,525,169,205,57,212,968,96,239,391,949,523,528,203,430,324,300,395,645,415,712,16,60,270,3,720,787,798,242,857,357,209,129,86,188,560,616,900,740,183,647,11,936,681,648,166,807,627,825,275,164,933,100,72,756,794,466,898,202,337,425,171,853,381,34,740,395,443,15,870,707,399,655,462,768,702,79,378,622,837,913,160,972,967,693,424,109,58,329,394,94,717,698,404,757,476,157,555,647,908,771,364,613,955,568,765,279,638,303,55,715,88,277,365,423,266,198,886,688,610,632,337,114,621,776,990,700,251,704,293,545,523,730,714,67,549,546,18,399,928,146,471,755,275,678,6,440,334,980,491,278,270,867,38,276,434,251,991,179,578,65,28,933,11,509,192,358,563,299,874,719,181,487,759,464,162,582,839,942,771,550,367,271,213,15,275,655,693,438,632,299,555,839,821,864,118,537,744,765,487,648,877,36,106,772,98,783,109,573,115,852,412,50,408,28,697,756,720,996,234,537,664,126,666,576,165,342,665,895,347,624,838,74,456,123,672,332,165,441,916,492,547,120,323,780,886,505,431,793,167,362,816,748,531,949,983,751,369,530,607,756,118,214,227,491,15,339,594,285,355,366,591,279,80,742,989,545,803,886,689,659,910,872,728,985,807,90,542,506,139,921,962,635,834,161,375,334,893,831,765,548,911,146,438,801,770,537,668,789,960,439,948,482,840,947,845,246,485,242,683,924,796,88,147,434,403,956,445,918,367,656,652,971,122,142,747,765,434,927,215,271,422,752,546,700,973,481,794,886,316,130,848,651,149,841,751,824,999,5,398,813,93,749,423,304,787,976,361,699,200,81,812,558,27,413,503,45,542,446,461,922";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("511", output);
        }
        public void Test10()
        {
            var input  = "509,615,816,238,86,652,925,49,39,675,345,227,371,371,56,704,220,795,925,605,622,913,307,535,751,141,906,383,667,885,317,79,239,337,600,14,329,571,789,522,821,254,729,604,771,120,374,77,60,205,435,307,951,620,886,988,308,282,486,945,745,542,381,154,358,267,987,35,770,42,376,649,7,403,784,368,184,703,763,632,767,830,324,463,450,11,127,618,450,611,706,47,85,844,777,280,872,575,246,505,132,339,306,18,828,786,300,549,836,519,804,604,518,853,178,915,218,917,704,348,140,370,584,160,336,330,564,163,625,505,496,608,457,259,501,428,524,306,634,663,710,578,782,931,806,102,528,232,667,862,62,954,871,898,365,762,755,147,682,499,223,138,924,331,24,197,148,259,352,749,392,911,283,42,637,561,587,653,353,235,801,333,495,763,443,541,737,559,894,739,673,377,624,135,441,573,654,451,908,610,953,269,879,917,471,150,671,829,261,804,175,102,794,447,698,889,642,161,887,483,459,589,365,613,76,15,287,148,600,65,907,136,745,742,281,533,453,578,292,294,869,907,298,91,565,572,582,177,437,551,930,493,564,426,152,365,903,267,842,456,862,523,230,196,896,40,357,53,167,166,436,65,869,594,614,551,291,275,48,504,432,110,711,50,135,415,572,320,590,915,629,187,735,836,431,346,678,102,194,526,215,530,11,272,115,865,624,969,811,601,74,629,219,338,24,753,812,181,62,482,467,38,462,251,537,250,329,34,164,269,872,189,82,522,289,902,100,439,934,269,791,602,508,989,841,1,968,397,812,678,533,498,41,712,59,177,68,759,735,865,537,591,806,543,728,885,548,696,50,122,653,373,247,793,690,865,530,473,410,536,282,932,222,485,735,374,149,369,464,113,835,341,704,69,732,201,795,964,261,956,452,272,348,690,25,160,252,247,22,194,647,594,350,199,584,604,370,322,808,354,736,179,233,936,287,313,669,178,62,490,70,566,212,453,85,10,584,531,460,576,123,902,347,271,465,241,991,505,484,128,831,474,156,907,220,274,39,411,404,712,490,74,185,532,124,82,383,896,115,574,21,838,861,232,232,834";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("472", output);
        }
        public void Test13()
        {
            var input  = "218,784,146,829,378,312,885,228,692,380,897,251,95,611,704,958,463,378,532,980,516,666,772,763,875,761,657,453,156,824,569,977,415,647,294,164,190,304,154,616,619,544,441,339,343,217,888,341,32,585,579,795,819,430,702,458,12,383,954,617,655,433,72,867,811,920,836,448,318,540,768,159,224,916,361,971,226,433,420,658,872,316,421,571,246,773,158,985,945,836,153,806,350,536,960,187,472,573,527,422,381,441,24,491,816,420,571,903,69,730,232,578,962,296,745,339,12,501,622,39,763,850,503,481,388,961,809,688,955,175,500,653,906,998,278,432,293,930,754,826,202,255,916,216,604,574,844,54,790,622,175,970,951,489,659,530,938,542,103,854,610,883,947,894,231,579,672,964,19,314,46,82,746,795,836,508,934,288,877,814,118,756,897,334,999,529,702,417,339,747,494,751,827,900,216,319,308,23,984,26,901,879,35,477,576,93,225,156,653,152,596,650,664,288,736,854,986,613,894,701,876,256,625,271,820,295,254,846,580,517,201,912,303,851,913,238,721,420,757,906,304,547,763,188,152,843,87,540,164,361,333,694,128,283,149,645,255,763,656,282,839,379,575,136,950,683,348,812,374,498,134,566,856,987,398,330,492,437,120,977,208";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("541", output);
        }
        public void Test19()
        {
            var input  = "714,373,672,888,498,177,456,443,430,811,845,785,773,906,339,364,533,847,133,874,66,929,645,869,329,675,469,393,13,624,354,403,916,420,249,546,349,229,698,828,883,938,549,608,348,643,304,427,25,494,128,421,269,728,648,943,728,803,559,823,708,63,430,806,458,443,869,354,657,793,16,305,149,304,991,128,381,37,521,686,372,42,369,519,496,932,135,188,771,306,817,546,669,875,120,820,508,743,151,905,774,950,769,232,479,823,273,964,737,521,563,692,282,873,452,667,694,911,310,525,308,681,583,351,975,469,635,273,184,171,619,637,885,616,912,421,272,138,40,673,660,170,450,251,743,126,265,796,424,453,127,596,434,625,597,93,367,418,256,10,188,999,780,567,901,925,806,665,960,31,395,556,871,636,864,138,231,333,608,850,205,839,849,730,45,24,204,261,20,819,55,853,881,31,486,661,389,883,349,818,320,600,835,394,59,570,724,797,761,459,861,35,810,406,805,348,150,51,522,878,721,546,645,141,976,541,674,841,150,204,748,347,983,790,531,605,4,456,672,474,299,407,499,560,957,20,44,476,225,139,511,339,361,471,97,773,954,695,418,517,895,882,647,558,710,515,52,20,875,201,344,694,378,48,579,315,47,85,183,956,497,199,617,12,692,409,985,512,693,757,651,309,38,155,579,416,759,941,850,443,968,24,601,25,794,816,961,314,891,782,727,869,512,461,20,697,266,635,865,301,529,539,327,118,549,36,656,223,469,164,555,105,235,739,988,474,597,592,218,875,448,672,620,910,30,781,797,577,135,882,150,124,77,549,914,429,697,483,475,759,161,738,844,728,227,623,634,772,473,546,100,674,418,989,852,856,918,416,89,767,238,80,89,587,14,432,28,685,825,559,777,115,117,459,715,710,828,892,684,406,148,26,105,589,783,476,706,87,696,58,511,281,394,707,521,81,650,258,715,795,595,949,946,913,769,984,557,958,275,143,29,27,732,682,620,213,975,499,804,538,725,941,988,767,49,496,720,409,938,634,60,570,178,888,810,199,79,191,820,798,918,747,811,553,30,484,549,712,88";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("518", output);
        }
        public void Test2()
        {
            var input  = "330,12,467,172,405,865,120,946,618,257,978,825,444,519,856,478,226,525,414,984,611,969,563,339,438,950,462,963,688,978,863,409,955,776,617,196,140,989,137,434,784,682,639,707,433,628,481,263,873,805,219,615,20,144,718,98,449,129,734,455,403,157,258,640,394,570,870,667,901,660,339,237,388,980,201,929,331,855,906,809,469,200,91,883,760,249,389,811,58,519,747,12,256,682,31,628,424,999,314,863,758,813,361,214,467,981,228,39,943,789,767,593,223,924,985,203,67,375,879,146,181,59,610,382,912,327,980,705,949,573,506,332,542,44,52,655,838,876,417,778,21,350,867,268,752,154,788,331,696,828,561,50,120,168,682,699,204,979,301,140,2,522,90,371,284,436,51,179,873,331,365,190,957,102,125,830,192,342,630,758,538,650,9,122,12,456,212,374,361,353,452,859,576,278,777,498,261,497,984,317,104,610,457,366,463,372,92,18,44,851,508,861,350,542,601,351,514,968,360,827,224,677,818,521,878,506,613,680,325,626,570,694,358,313,655,928,193,642,658,639,365,195,331,510,844,590,510,35,677,426,984,293,138,157,94,427,791,936,487,957,758,411,693,417,281,813,504";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("505", output);
        }
        public void Test17()
        {
            var input  = "776,379,401,446,342,446,197,816,510,684,422,443,229,584,686,739,796,861,98,447,873,422,89,128,515,356,152,325,374,601,494,941,844,824,943,547,236,431,70,403,182,683,363,872,115,136,813,320,309,35,560,419,215,298,902,968,291,274,931,985,294,871,442,909,190,481,598,405,641,140,504,365,791,695,266,191,59,217,13,380,543,832,17,340,41,75,726,546,921,974,257,961,499,85,109,310,242,454,682,634,537,408,679,170,531,195,628,520,33,712,910,74,261,552,442,462,855,103,869,115,754,52,484,666,882,542,866,707,587,956,948,604,535,379,842,136,153,846,808,845,447,207,514,209,65,183,700,947,642,646,454,140,585,567,880,485,924,14,287,988,329,920,933,77,764,306,539,882,709,307,309,9,294,24,668,547,538,275,601,700,841,919,65,940,502,809,19,967,498,357,211,140,560,820,516,527,274,438,445,758,644,818,238,336,337,445,845,562,898,333,947,649,413,587,147,410,856,993,574,954,288,571,384,353,96,170,449,474,507,142,274,100,830,842,57,24,681,729,603,58,964,457,69,166,409,561,727,973,673,107,670,281,863,490,471,73,434,884,240,168,995,372,55,757,60,848,819,570,531,123,728,127,390,517,990,830,502,219,943,535,443,476,800,401,471,992,236,340,372,983,590,797,489,436,62,592,403,312,106,561,741,157,442,550,378,544,890,347,500,641,570,215,941,705,724,520,571,653,287,67,612,480,199,547,533,931,638,954,456,398,427,191,114,383,793,286,34,250,24,927,103,889,840,730,413,376,855,784";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("499", output);
        }
        public void Test18()
        {
            var input  = "711,21,750,25,39,949,262,958,895,18,447,905,935,891,102,214,380,102,559,912,438,486,322,630,360,964,722,640,468,135,158,76,854,243,914,378,677,166,75,433,531,328,139,233,576,22,167,998,738,517,34,275,297,872,274,56,699,120,665,75,227,622,491,760,860,371,51,693,976,724,536,214,27,126,381,111,347,89,54,338,798,723,901,950,102,882,779,982,969,858,678,557,500,999,207,908,836,378,373,206,970,474,22,15,980,819,248,172,491,163,709,610,67,328,277,503,721,540,659,977,592,69,723,119,46,979,713,28,919,472,274,968,716,847,367,325,702,887,970,282,635,608,491,806,150,69,490,173,723,703,188,297,719,395,614,902,750,903,969,1,106,221,252,19,889,740,894,219,961,952,801,834,570,377,343,983,577,916,969,977,489,541,304,216,285,977,250,321,234,465,574,799,918,969,177,415,356,472,917,410,174,272,212,771,902,354,727,342,53,630,325,834,933,991,512,565,916,37,734,912,490,573,985,497,378,3,915,600,201,927,628,105,998,560,803,218,330,533,313,930,250,907,269,603,140,740,865,926,458,612,498,319,738,6,919,600,286,715,393,900,438,127,142,125,3,221,835,374,188,294,235,384,723,804,662,583,305,382,357,638,138,989,143,589,429,310,367,992,641,203,932,615,140,413,492,123,766,144,601,918,904,491,738,164,377,115,595,933,344,336,296,903,358,754,763,448,984,552,696,693,853,842,733,985,362,620,244,311,312,539,816,162,781,439,734,646,252,978,213,315,714,433,649,305,907,29,258,385,650,44,139,214,447,908,66,62,757,753,801,756,871,285,622,804,519,134,123,918,21,117,197,6,340,382,978,420,193,429,78,333,363,858,661,268,401,603";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("509", output);
        }
        public void Test16()
        {
            var input  = "878,979,367,952,496,194,721,848,115,710,177,771,816,950,446,426,319,81,109,370,60,776,631,761,246,392,360,339,55,673,917,224,611,346,551,92,430,924,256,409,168,94,874,511,909,5,647,776,214,731,764,317,704,298,818,884,348,605,707,104,833,383,793,442,793,952,161,470,399,355,995,395,825,699,203,966,901,121,851,241,744,583,125,324,908,600,519,313,528,667,743,825,218,152,575,785,300,433,717,956,844,177,378,858,735,370,492,6,96,851,982,228,753,466,360,251,258,470,533,194,434,847,942,731,611,171,178,673,124,418,666,469,403,895,397,567,206,266,588,539,108,514,218,676,685,516,72,751,792,325,527,830,900,524,523,996,235,647,248,565,193,819,881,678,186,514,824,858,69,792,46,992,882,994,86,919,630,266,46,96,99,426,880,799,890,836,569,879,372,400,333,558,19,23,347,288,632,539,491,172,691,214,683,1,280,534,947,906,438,604,367,969,601,152,466,767,939,83,787,349,945,945,487,669,460,487,973,859,647,798,287,91,775,874,404,885,742,880,519,357,888,662,441,767,34,363,957,867,557,579,349,550,751,143,227,746,727,15,541,792,561,89,259,640,317,276,195,727,747,581,25,60,563,431,460,283,504,719,635,97,530,107,303,69,449,737,339,632,647,658,159,728,339,726,795,800,404,801,451,758,169,231,120,975,555,290,986,321,683,944,242,8,379,444,263,455,785,191,191,580,936,562,80,90,423,296,720,836,636,659,878,703,269,877,927,299,987,327,513,159,750,19,949,703,416,151,350,895,463,341,15,214,610,870,821,607,151,30,553,259,570,150,685,24,66,539,739,501,517,964,467,459,677,32,829,917,612,377,673,273,946,825,373,295,644,664,93,398,56,320,149,957,774,255,589,601,334,926,637,877,411,848,378,499,873,556,537,578,42,904,995,774,357,281,313,745";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("519", output);
        }
        public void Test15()
        {
            var input  = "636,945,200,45,251,72,205,681,420,216,652,833,178,897,211,51,562,290,485,36,838,468,786,752,22,504,787,421,829,794,789,227,202,649,721,693,902,875,331,46,502,775,294,280,703,916,980,439,645,643,941,568,168,284,797,549,159,448,24,746,284,783,852,625,426,426,631,529,177,518,149,686,959,440,533,64,175,506,49,105,524,348,775,186,852,222,59,918,851,172,534,454,851,585,761,719,923,669,854,278,285,451,263,128,495,255,608,728,751,734,375,653,399,919,222,935,8,666,773,204,368,713,677,5,983,694,835,375,678,814,140,505,651,771,819,74,86,648,690,597,613,330,168,118,797,880,55,932,363,825,711,257,895,650,909,572,773,258,144,801,420,234,50,936,594,869,2,628,100,149,850,360,976,176,591,38,546,560,207,104,639,903,12,853,104,883,610,1,861,248,300,827,504,889,177,379,281,231,523,927,879,427,832,215,975,352,281,720,60,872,26,214,51,41,163,517,223,197,833,711,260,1,766,852,848,23,855,87,998,212,757,315,37,280,225,212,71,796,877,752,603,889,941,989,222,87,776,464,727,660,157,84,398,812,668";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("501", output);
        }
        public void Test14()
        {
            var input  = "714,219,185,506,784,20,703,269,983,957,764,476,68,925,971,628,237,468,495,275,166,665,228,767,838,141,885,818,153,817,644,679,75,125,696,356,950,445,898,329,110,106,515,176,802,380,919,472,359,864,200,651,482,933,549,17,991,418,668,644,134,884,116,167,314,85,401,943,229,615,677,792,570,167,165,60,151,52,964,458,221,414,460,289,617,992,197,142,576,679,365,533,776,254,195,226,990,349,862,717,979,976,243,743,187,408,82,316,768,490,866,939,453,210,424,720,424,826,549,321,887,260,368,550,251,145,16,316,971,939,69,802,190,248,479,244,171,717,102,210,911,881,373,86,812,425,80,566,830,475,801,165,799,541,830,720,609,693,492,42,392,766,345,829,421,65,749,206,731,181,549,706,724,340,410,6,886,282,737,826,66,449,485,496,138,904,3,649,417,758,635,478,226,60,818,145,537,544,664,748,675,873,835,650,926,95,440,460,131,824,833,327,956,666,976,942,281,848,691,517,62,101,788,973,545,72,481,664,521,266,469,342,617,988,151,192,614,835,570,44,464,543,518,593,925,308,521,560,84,876,864,688,853,147,686,575,86,862,105,854,614,775,938,865,356,491,710,967,515,785,328,445,279,648,54,518,583,196,48,238,550,921,581,645,402,780,489,470,302,576,107,752,731,715,429,688,605,652,238,434,598,554,45,299,548,419,410,205,94,168,992,890,814,866,305,693,195,293,464,575,3,240,666,939,678,575,713,563,219,365,913,930,958,614,640,996,876,282,98,982,370,284,377,134,584,217,938,864,411,736,494,312,188,662,432,359,888,106,620,973,705,846,986,729,255,62,931,200,227,309,816,912,196,482,205,718,863,532,356,462,636,849,153,482,871,601,742,296,183,282,109,771,662,125,278,523,298,647,879,522,285,738,638,103,920,581,117,706,457,714,496,356,750,158,337,856,694,504,858,653,320";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("516", output);
        }
        public void Test9()
        {
            var input  = "622,962,63,118,699,426,182,839,249,966,631,44,30,287,944,591,269,172,711,520,109,225,431,785,597,398,72,534,480,750,356,151,788,626,922,659,895,817,665,994,535,815,158,300,119,858,825,215,493,565,146,465,676,508,513,194,532,278,520,302,354,648,360,498,611,481,255,403,365,285,696,452,507,717,984,294,67,132,666,739,573,857,41,914,605,891,474,281,113,729,128,617,298,363,641,887,456,660,688,638,603,422,850,208,869,694,957,959,524,220,127,400,611,781,729,497,607,446,893,720,7,974,290,636,158,79,155,145,77,98,838,407,443,28,136,151,7,833,45,910,933,515,756,893,602,727,6,516,634,145,280,10,767,968,632,628,133,214,51,791,540,813,883,427,382,719,957,584,646,579,490,774,401,982,786,492,219,397,34,430,73,638,511,931,817,828,640,474,396,507,19,792,782,254,371,121,631,330,512,882,770,422,870,55,654,505,609,784,183,140,410,735,181,620,718,901,303,951,609,553,80,483,189,139,560,697,991,148,612,665,860,889,885,151,660,651,768,456,277,312,220,855,291,256,98,283,612,162,535,469,818,680,720,958,803,287,234,732,494,957,514,462,172,518,280,520,850,30,960,68,134,846,674,297,334,224,193,932,42,278,85,829,612,144,846,180,170,926,348,374,417,37,961,320,798,758,683,773,976,577,432,583,202,467,335,971,6,423,624,579,95,301,690,217,872,684,849,29,671,100,351,923,681,587,650,98,885,354,498,576,540,419,956,464,845,502,628,145,808,875,175,746,302,768,280,116,346,744,448,115,908,655,103,877,226";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("506", output);
        }
        public void Test20()
        {
            var input  = "308,151,454,177,71,654,960,180,865,273,265,148,21,640,84,458,849,843,872,422,135,784,679,7,620,977,130,435,737,564,947,9,322,630,529,909,117,1,818,157,238,898,326,547,533,770,727,172,470,571,635,705,840,665,174,322,471,448,557,93,524,525,442,301,326,257,826,390,112,174,342,848,26,715,184,236,458,133,473,849,251,957,964,166,929,243,169,657,457,207,439,668,444,725,632,713,457,26,222,276,944,337,61,297,230,786,679,125,482,937,864,339,974,707,842,566,560,276,372,83,89,169,933,904,735,673,405,300,83,471,779,432,910,197,904,913,897,668,936,144,563,44,176,519,343,100,694,736,883,67,153,181,654,139,188,775,404,157,561,557,381,379,43,11,158,432,428,778,803,929,669,892,340,229,520,45,993,414,561,635,979,669,417,17,318,599,778,771,9,130,510,741,107,380,762,184,2,165,362,910,671,915,933,954,397,261,841,426,619,143,781,989,595,926,577,711,962,26,693,559,654,656,769,673,419,927,785,959,466,337,44,829,53,651,964,64,736,462,619,58,758,352,153,866,348,520,147,181,802,51,221,976,472,803,257,15,147,260,535,469,475,881,960,283,100,952,937,944,962,513,974,500,406,635,801,302,504";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("498", output);
        }
        public void Test1()
        {
            var input  = "218,716,494,579,627,573,952,181,569,610,601,288,795,753,224,456,131,220,588,35,811,602,61,31,423,458,447,926,136,893,545,912,869,502,559,82,763,350,407,57,722,910,511,933,651,418,973,911,845,615,334,995,581,608,406,214,656,463,156,169,127,26,46,675,65,688,419,294,195,142,693,781,813,531,313,901,91,127,380,5,485,535,81,520,559,550,332,261,96,345,425,301,194,239,930,696,864,835,868,963,999,679,717,704,922,553,182,50,296,505,123,529,84,152,683,591,945,526,117,514,357,158,199,849,717,392,587,575,601,616,37,256,259,416,5,805,818,377,597,7,368,282,964,591,223,895,217,43,555,340,751,339,719,355,606,841,481,868,987,531,965,607,449,679,468,867,271,667,147,878,772,568,928,110,146,75,194,607,626,821,175,545,21,262,865,697,536,904,810,164,325,950,390,67,41,761,833,286,123,356,624,550,896,677,567,183,411,609,209,532,648,873,242,166,356,421,586,188,814,771,331,367,857,982,553,822,179,861,70,384,242,907,485,271,197,625,649,344,694,683,287,927,695,279,515,451,709,224,711,619,176,646,472,352,26,258,693,913,124,744,4,549,539,824,290,740,388,971,969,730,772,243,493,131,484,403,672,579,468,103,114,954,151,450,209,595,436,134,246,939,932,735,220,949,679,737,388,871,988,774,63,737,255,981,847,932,154,341,867,622,585,115,445,22,631,50,399,90,615,695,305,255,725,30,797,37,24,543,452,746,16,801,590,694,40,376,700,169,603,277,442,96,267,624,354,818,290,199,319,630,339,299,256,294,470,808,12,226,184,810,909,611,889,121,606,784,524,751,981,256,350,230,486,339,253,210,987,102,675,979,746,824,224,822,408,717,545,297,225,232,364,475,985,793,368,831,207,146,18,569,295,539,218,64,280,110,812,917,41,260,820,910,550,204,64,85,387,67,712,889,240,227,527,750,891,875,244,693,970,422,4,842,85,107,685,208,607,161,542,299,904,628,257,964,411,454,924,781,729,283,444,140,433,129";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("489", output);
        }
        public void Test3()
        {
            var input  = "37,672,159,871,310,720,463,30,346,308,676,289,996,579,4,899,642,278,557,201,220,229,137,256,156,701,880,953,502,913,229,32,87,473,148,5,268,114,982,417,694,65,81,484,261,199,961,180,408,794,775,3,256,303,817,657,535,902,716,609,839,509,528,433,80,645,202,523,431,998,631,528,295,140,506,156,149,653,995,956,739,701,546,707,138,226,775,783,656,490,470,366,397,374,578,186,537,647,405,616,996,438,748,409,163,247,708,117,796,661,509,881,906,759,869,138,962,820,295,853,869,419,867,940,528,266,132,921,562,321,619,501,249,380,959,301,952,137,545,890,518,659,987,994,981,589,459,637,504,440,223,717,352,551,746,578,571,807,881,897,116,786,554,476,43,8,632,526,799,569,185,826,275,405,335,210,432,872,958,939,806,494,418,122,98,902,150,697,633,382,729,145,256,648,775,732,105,511,952,974,956,932,838,935,255,397,442,947,217,536,147,699,849,941,91,622,369,432,378,141,857,934,893,418,839,40,571,627,630,603,105,920,920,983,983,874,656,482,867,701,460,202,481,98,236,31,296,314,558,153,363,673,134,812,117,22,40,420,96,215,826,815,318,613,431,227,779,865,958,216,966,886,565,677,680,656,453,796,183,808,744,257,70,477,241,432,787,109,867,961,834,236,387,652,874,645,884,868,666,10,252,431,356,342,187,476,108,456,132,461,568,244,238,288,471,570,746,840,373,999,439,671,998,996,382,731,500,913,802,36,771,585,130,174,557,313,900,727,291,764,324,331,976,406,394,591,997,99,181,305,899,45,495,667,570,581,433,360,960,456,976,195,653,97,689,982,114,65,730,159,669,19,550,609,675,108,694,592,603,790,733,401,732,498,136,727,91,463,603,976,879,541,767,835,787,130,678,880,716,411,477,933,369,23,635,880,494,886,991,462,886,841,756,170,722,575,463,156,960,962,892,650,461,754,279,129,251,714,821,546,430,814,875,193,314,799,33,709,862,256,233,204,472,142,90,39,784,598,113,213,666,523,919,754,518,826,472,614,744,507,629,780,65,446,33,72,965,564,856,922,543,753";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("530", output);
        }
        public void Test11()
        {
            var input  = "832,472,46,322,164,693,934,659,596,410,305,233,810,971,173,127,748,86,49,717,815,147,384,858,95,391,910,107,992,612,923,676,386,442,76,939,359,391,326,380,251,872,527,671,78,663,304,602,847,712,114,147,183,117,17,815,89,188,227,773,783,827,667,983,486,629,847,369,895,234,768,357,759,668,467,942,620,712,780,431,87,308,260,281,499,777,493,269,425,260,851,171,164,553,597,423,206,544,186,449,816,935,707,614,943,756,387,515,650,74,196,377,407,795,686,476,568,386,484,708,136,578,943,636,383,597,193,207,72,44,737,77,526,332,615,152,601,645,337,743,390,978,619,351,65,475,764,368,866,121,855,820,60,477,313,239,991,71,231,346,563,181,443,606,337,120,850,76,181,535,875,922,49,741,319,158,958,593,572,908,833,824,340,950,189,916,18,50,19,376,161,530,414,990,180,210,535,14,14,944,624,689,188,332,246,932,771,318,159,156,280,398,499,323,513,738,840,493,417,420,103,801,57,804,375,346,508,59,562,109,622,944,579,627,284,144,637,9,705,257,146,699,890,862,96,762,31,92,477,441,369,43,597,593,841,823,632,383,957,900,424,713,755,51,533,336,819,872,39,370,102,832,787,161,275,403,910,195,708,612,315,417,581,122,739,580,348,985,785,461,512,255,51,805,832,433,944,840,330,760,943,159,53,108,340,536,255,436,319,439,912,438,674,345,585,8,133,634,311,953,987,833,87,578,857,846,782,982,328,841,459,71,865,948,669,156,365,473,781,204,326,911,667,347,548,75,580,705,221,824,301,310,530,377,773,110,73,474,250,493,754,273,108,477,979,841,572,726,676,429,643,659,852,107,628,77,166,740,31,783,266,77,762,504,541,149,541,489,176,559,84,890,223,289,449,53,803,190,367,706,502,854,30,791,182,642,457,423,748,696,943,332,444,467,227,677,511,604,936,830,301,84,550,117,345,752,436,564,657,575,273,976,373,324,282,412,47,970,322,898,692,118,740,479,615,752,447,756,62,772,541,199,253,536,406,418,304,913,446,429,206,893,765,174,424,967,959,120,185,815,630,541,283,38,139,183,344,72,501,593,306,680,503,885,34,74,723,836,918,863,108";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("488", output);
        }
        public void Test12()
        {
            var input  = "134,893,693,799,353,566,55,648,792,327,571,247,142,1,916,215,398,223,75,232,412,853,123,526,391,880,140,351,244,124,202,321,707,496,17,389,345,340,830,777,18,853,801,979,109,256,744,33,157,509,439,695,789,875,722,671,770,168,408,473,427,704,404,669,125,250,539,645,984,528,870,58,393,297,215,558,53,143,418,135,136,107,194,735,684,506,532,831,774,346,619,177,931,358,351,313,449,132,855,858,716,99,49,629,638,381,303,493,660,164,618,627,750,274,337,320,511,669,984,618,718,707,870,639,908,693,127,35,945,902,109,920,288,559,418,37,59,564,97,304,204,39,172,610,727,991,427,658,21,32,802,780,148,237,140,9,229,410,720,945,255,268,547,758,55,698,339,191,855,300,261,946,572,680,415,679,536,260,911,917,267,468,15,914,100,329,773,52,420,410,808,649,844,152,50,935,492,413,556,30,652,236,802,721,770,855,209,467,822,460,472,968,498,803,678,786,254,633,658,726,925,288,770,446,491,612,103,421,631,480,188,124,704,882,265,31,665,294,144,244,120,306,229,960,937,840,151,41,473,263,681,858,754,829,104,364,466,357,230,159,753,788,835,342,272,349,264,615,538,648,121,960,490,414,606,619,59,810,509,651,461,62,947,369,798,329,369,875,778,901,565,309,65,984,491,332,470,886,688,588,577,535,503,825,142,721,369,341,223,485,305,655,848,579,697,691,841,467,544,943,979,389,837,637,84,812,896,505,923,275,149,172,123,920,74,926,559,122,227,77,959,29,652,294,596,910,460,485,287,799,491,4,343,744,608,189,698,866,742,329,825,864,417,947,336,134,532,927,505,771,133,719,240,468,983,951,736,543,42,174,352,411";
            var output = new Problems.Average.Solution().Solve(input);

            Assert.Equal("493", output);
        }