mumu_chencl
mumu_chencl
采纳率100%
2018-04-26 03:07

求一组int类型数组中,任意数相加等于一个定值的高性能算法

80
已采纳

如有数组{15, 25, 30, 35, 45,50, 55, 70, 80, 100}
,求任意数(n个元素)相加,和等于150的所有组合(组合的元素个数可进行手动控制)。

单个元素在组合中可以重复出现,
出现的结果可能有:
15+35+45+55
50+70+80
50+100
50+50+50

现在有一个这样一个方法,但是计算出来的最终结果只能满足部分条件,而且当元素的个数偏多的时候会造成溢出的情况。请各位大牛指点一下,如果有更好的算法请指教
private List SeveralCut(List prodWides, double mateWide, double addValue)
{
List planList = new List();

        if (prodWides.Count <= 0)
        {
            return planList;
        }

        for (int  i = 1; i < 1 << prodWides.Count; i++)//从1循环到2^N
        {
            double  sum = 0;
            string planStr = string.Empty;
            for (int j = 0; j < prodWides.Count; j++)
            {
                if ((i & 1 << j) != 0)//用i与2^j进行位与运算,若结果不为0,则表示第j位不为0,从数组中取出第j个数
                {
                    sum += prodWides[j];
                    planStr += prodWides[j] + "+";
                }
            }

            if (sum == mateWide -addValue)
            {
                Console.WriteLine(planStr.TrimEnd('+'));//如果和为所求,则输出
                planList.Add(planStr.TrimEnd('+'));
            }
        }

        return planList;
    }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 3年前
     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] arr = { 15, 25, 30, 35, 45, 50, 55, 70, 80, 100 };
                int sum = 150;
                foreach (var item in Solve(arr, sum))
                {
                    Console.WriteLine(string.Join(", ", item.Skip(1)));
                }
            }
            static IEnumerable<IEnumerable<int>> Solve(int[] arr, int sum, IEnumerable<int> feed = null)
            {
                if (feed == null) feed = new List<int>() { 0 };
                if (feed.Sum() == sum) yield return feed;
                foreach (int n in arr.Where(x => x + feed.Sum() <= sum))
                {
                    foreach (var item in Solve(arr, sum, feed.Concat(new int[] { n }))) yield return item;
                }
            }
        }
    }
    
    
    点赞 2 评论 复制链接分享
  • lipanyun 小潘哈哈哈 1月前
     任意个数相加和为150的下标数据:第1组:4,3,2,1,0             |第2组:8,2,1,0             |第3组:7,3,2,0             |第4组:6,5,2,0             |第5组:6,4,3,0             |第6组:9,3,0             |第7组:8,6,0             |第8组:5,4,2,1             |第9组:8,4,1             |第10组:7,6,1             |第11组:7,5,2             |第12组:7,4,3             |第13组:6,5,4             |第14组:9,5             |第15组:8,7             |
    public static void Add()
            {
                List<int> nums = new List<int> { 15, 25, 30, 35, 45,50,55,70,80,100 };
                var values = Add(0, nums, 0);
                int index = 1;
                string str = "任意个数相加和为150的下标数据:";
                foreach (var item in values)
                {
                    str += $@"第{index}组:{string.Join(",", item.PathIndex)}             |";
                    index++;
                }
            }
            public static List<Values> Add(int a, List<int> nums, int index)
            {
                List<Values> values = new List<Values>();
                for (int i = index; i < nums.Count; i++)
                {
                    if (a == nums[i])
                        continue;
                    else if (a + nums[i] == 150)
                    {
                        values.Add(new Values(i));
                        continue;
                    }
                    else if (nums[i] > 150)
                        continue;
                    else
                    {
                        var temp = Add(a + nums[i], nums, i + 1);
                        temp.ForEach(x => x.PathIndex.Add(i));
                        values.AddRange(temp);
                    }
    
                }
                return values;
            }
            public class Values
            {
                public Values(int i)
                {
                    PathIndex.Add(i);
                }
                public List<int> PathIndex = new List<int>();
            }
    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 3年前

    还有,我要友情提醒一句,如果用浮点数,等于比较不能直接用 == 判断,应该用两个数字相减绝对值小于一个很小的数字判断,否则会因为精度误差而漏掉结果。

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 3年前
     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] arr = { 15, 25, 30, 35, 45, 50, 55, 70, 80, 100 };
                int sum = 150;
                foreach (var item in Solve(arr, sum, 4)) //最大4个
                {
                    Console.WriteLine(string.Join(", ", item.Skip(1)));
                }
            }
            static IEnumerable<IEnumerable<int>> Solve(int[] arr, int sum, int lim, IEnumerable<int> feed = null)
            {
                if (feed == null) feed = new List<int>() { 0 };
                if (feed.Sum() == sum) yield return feed;
                if (feed.Count() > lim) yield break;
                foreach (int n in arr.Where(x => x + feed.Sum() <= sum && x >= feed.Last()))
                {
                    foreach (var item in Solve(arr, sum, lim, feed.Concat(new int[] { n }))) yield return item;
                }
            }
        }
    }
    
    

    15, 15, 50, 70
    15, 25, 30, 80
    15, 25, 55, 55
    15, 30, 35, 70
    15, 30, 50, 55
    15, 35, 45, 55
    15, 35, 50, 50
    15, 35, 100
    15, 45, 45, 45
    15, 55, 80
    25, 25, 30, 70
    25, 25, 45, 55
    25, 25, 50, 50
    25, 25, 100
    25, 30, 45, 50
    25, 35, 35, 55
    25, 35, 45, 45
    25, 45, 80
    25, 55, 70
    30, 30, 35, 55
    30, 30, 45, 45
    30, 35, 35, 50
    30, 50, 70
    35, 35, 35, 45
    35, 35, 80
    35, 45, 70
    45, 50, 55
    50, 50, 50
    50, 100
    70, 80
    Press any key to continue . . .

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 3年前

    这是不考虑顺序

     foreach (int n in arr.Where(x => x + feed.Sum() <= sum))
    修改为
    foreach (int n in arr.Where(x => x + feed.Sum() <= sum && x >= feed.Last()))
    

    15, 15, 15, 15, 15, 15, 15, 15, 15, 15
    15, 15, 15, 15, 15, 15, 15, 15, 30
    15, 15, 15, 15, 15, 15, 15, 45
    15, 15, 15, 15, 15, 15, 25, 35
    15, 15, 15, 15, 15, 15, 30, 30
    15, 15, 15, 15, 15, 25, 25, 25
    15, 15, 15, 15, 15, 25, 50
    15, 15, 15, 15, 15, 30, 45
    15, 15, 15, 15, 25, 30, 35
    15, 15, 15, 15, 30, 30, 30
    15, 15, 15, 15, 35, 55
    15, 15, 15, 15, 45, 45
    15, 15, 15, 25, 25, 25, 30
    15, 15, 15, 25, 25, 55
    15, 15, 15, 25, 30, 50
    15, 15, 15, 25, 35, 45
    15, 15, 15, 25, 80
    15, 15, 15, 30, 30, 45
    15, 15, 15, 35, 35, 35
    15, 15, 15, 35, 70
    15, 15, 15, 50, 55
    15, 15, 25, 25, 25, 45
    15, 15, 25, 25, 35, 35
    15, 15, 25, 25, 70
    15, 15, 25, 30, 30, 35
    15, 15, 25, 45, 50
    15, 15, 30, 30, 30, 30
    15, 15, 30, 35, 55
    15, 15, 30, 45, 45
    15, 15, 35, 35, 50
    15, 15, 50, 70
    15, 25, 25, 25, 25, 35
    15, 25, 25, 25, 30, 30
    15, 25, 25, 30, 55
    15, 25, 25, 35, 50
    15, 25, 30, 30, 50
    15, 25, 30, 35, 45
    15, 25, 30, 80
    15, 25, 55, 55
    15, 30, 30, 30, 45
    15, 30, 35, 35, 35
    15, 30, 35, 70
    15, 30, 50, 55
    15, 35, 45, 55
    15, 35, 50, 50
    15, 35, 100
    15, 45, 45, 45
    15, 55, 80
    25, 25, 25, 25, 25, 25
    25, 25, 25, 25, 50
    25, 25, 25, 30, 45
    25, 25, 30, 35, 35
    25, 25, 30, 70
    25, 25, 45, 55
    25, 25, 50, 50
    25, 25, 100
    25, 30, 30, 30, 35
    25, 30, 45, 50
    25, 35, 35, 55
    25, 35, 45, 45
    25, 45, 80
    25, 55, 70
    30, 30, 30, 30, 30
    30, 30, 35, 55
    30, 30, 45, 45
    30, 35, 35, 50
    30, 50, 70
    35, 35, 35, 45
    35, 35, 80
    35, 45, 70
    45, 50, 55
    50, 50, 50
    50, 100
    70, 80
    Press any key to continue . . .

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 3年前

    结果太多了,这里只显示最后的一部分
    ...
    15, 15, 15, 15, 15, 15, 15, 15, 15, 15
    15, 15, 15, 15, 15, 15, 15, 15, 30
    15, 15, 15, 15, 15, 15, 15, 30, 15
    15, 15, 15, 15, 15, 15, 15, 45
    15, 15, 15, 15, 15, 15, 25, 35
    15, 15, 15, 15, 15, 15, 30, 15, 15
    15, 15, 15, 15, 15, 15, 30, 30
    15, 15, 15, 15, 15, 15, 35, 25
    15, 15, 15, 15, 15, 15, 45, 15
    15, 15, 15, 15, 15, 25, 15, 35
    15, 15, 15, 15, 15, 25, 25, 25
    15, 15, 15, 15, 15, 25, 35, 15
    15, 15, 15, 15, 15, 25, 50
    15, 15, 15, 15, 15, 30, 15, 15, 15
    15, 15, 15, 15, 15, 30, 15, 30
    15, 15, 15, 15, 15, 30, 30, 15
    15, 15, 15, 15, 15, 30, 45
    15, 15, 15, 15, 15, 35, 15, 25
    15, 15, 15, 15, 15, 35, 25, 15
    15, 15, 15, 15, 15, 45, 15, 15
    15, 15, 15, 15, 15, 45, 30
    15, 15, 15, 15, 15, 50, 25
    15, 15, 15, 15, 25, 15, 15, 35
    15, 15, 15, 15, 25, 15, 25, 25
    15, 15, 15, 15, 25, 15, 35, 15
    15, 15, 15, 15, 25, 15, 50
    15, 15, 15, 15, 25, 25, 15, 25
    15, 15, 15, 15, 25, 25, 25, 15
    15, 15, 15, 15, 25, 30, 35
    15, 15, 15, 15, 25, 35, 15, 15
    15, 15, 15, 15, 25, 35, 30
    15, 15, 15, 15, 25, 50, 15
    15, 15, 15, 15, 30, 15, 15, 15, 15
    15, 15, 15, 15, 30, 15, 15, 30
    15, 15, 15, 15, 30, 15, 30, 15
    15, 15, 15, 15, 30, 15, 45
    15, 15, 15, 15, 30, 25, 35
    15, 15, 15, 15, 30, 30, 15, 15
    15, 15, 15, 15, 30, 30, 30
    15, 15, 15, 15, 30, 35, 25
    15, 15, 15, 15, 30, 45, 15
    15, 15, 15, 15, 35, 15, 15, 25
    15, 15, 15, 15, 35, 15, 25, 15
    15, 15, 15, 15, 35, 25, 15, 15
    15, 15, 15, 15, 35, 25, 30
    15, 15, 15, 15, 35, 30, 25
    15, 15, 15, 15, 35, 55
    15, 15, 15, 15, 45, 15, 15, 15
    15, 15, 15, 15, 45, 15, 30
    15, 15, 15, 15, 45, 30, 15
    15, 15, 15, 15, 45, 45
    15, 15, 15, 15, 50, 15, 25
    15, 15, 15, 15, 50, 25, 15
    15, 15, 15, 15, 55, 35
    15, 15, 15, 25, 15, 15, 15, 35
    15, 15, 15, 25, 15, 15, 25, 25
    15, 15, 15, 25, 15, 15, 35, 15
    15, 15, 15, 25, 15, 15, 50
    15, 15, 15, 25, 15, 25, 15, 25
    15, 15, 15, 25, 15, 25, 25, 15
    15, 15, 15, 25, 15, 30, 35
    15, 15, 15, 25, 15, 35, 15, 15
    15, 15, 15, 25, 15, 35, 30
    15, 15, 15, 25, 15, 50, 15
    15, 15, 15, 25, 25, 15, 15, 25
    15, 15, 15, 25, 25, 15, 25, 15
    15, 15, 15, 25, 25, 25, 15, 15
    15, 15, 15, 25, 25, 25, 30
    15, 15, 15, 25, 25, 30, 25
    15, 15, 15, 25, 25, 55
    15, 15, 15, 25, 30, 15, 35
    15, 15, 15, 25, 30, 25, 25
    15, 15, 15, 25, 30, 35, 15
    15, 15, 15, 25, 30, 50
    15, 15, 15, 25, 35, 15, 15, 15
    15, 15, 15, 25, 35, 15, 30
    15, 15, 15, 25, 35, 30, 15
    15, 15, 15, 25, 35, 45
    15, 15, 15, 25, 45, 35
    15, 15, 15, 25, 50, 15, 15
    15, 15, 15, 25, 50, 30
    15, 15, 15, 25, 55, 25
    15, 15, 15, 25, 80
    15, 15, 15, 30, 15, 15, 15, 15, 15
    15, 15, 15, 30, 15, 15, 15, 30
    15, 15, 15, 30, 15, 15, 30, 15
    15, 15, 15, 30, 15, 15, 45
    15, 15, 15, 30, 15, 25, 35
    15, 15, 15, 30, 15, 30, 15, 15
    15, 15, 15, 30, 15, 30, 30
    15, 15, 15, 30, 15, 35, 25
    15, 15, 15, 30, 15, 45, 15
    15, 15, 15, 30, 25, 15, 35
    15, 15, 15, 30, 25, 25, 25
    15, 15, 15, 30, 25, 35, 15
    15, 15, 15, 30, 25, 50
    15, 15, 15, 30, 30, 15, 15, 15
    15, 15, 15, 30, 30, 15, 30
    15, 15, 15, 30, 30, 30, 15
    15, 15, 15, 30, 30, 45
    15, 15, 15, 30, 35, 15, 25
    15, 15, 15, 30, 35, 25, 15
    15, 15, 15, 30, 45, 15, 15
    15, 15, 15, 30, 45, 30
    15, 15, 15, 30, 50, 25
    15, 15, 15, 35, 15, 15, 15, 25
    15, 15, 15, 35, 15, 15, 25, 15
    15, 15, 15, 35, 15, 25, 15, 15
    15, 15, 15, 35, 15, 25, 30
    15, 15, 15, 35, 15, 30, 25
    15, 15, 15, 35, 15, 55
    15, 15, 15, 35, 25, 15, 15, 15
    15, 15, 15, 35, 25, 15, 30
    15, 15, 15, 35, 25, 30, 15
    15, 15, 15, 35, 25, 45
    15, 15, 15, 35, 30, 15, 25
    15, 15, 15, 35, 30, 25, 15
    15, 15, 15, 35, 35, 35
    15, 15, 15, 35, 45, 25
    15, 15, 15, 35, 55, 15
    15, 15, 15, 35, 70
    15, 15, 15, 45, 15, 15, 15, 15
    15, 15, 15, 45, 15, 15, 30
    15, 15, 15, 45, 15, 30, 15
    15, 15, 15, 45, 15, 45
    15, 15, 15, 45, 25, 35
    15, 15, 15, 45, 30, 15, 15
    15, 15, 15, 45, 30, 30
    15, 15, 15, 45, 35, 25
    15, 15, 15, 45, 45, 15
    15, 15, 15, 50, 15, 15, 25
    15, 15, 15, 50, 15, 25, 15
    15, 15, 15, 50, 25, 15, 15
    15, 15, 15, 50, 25, 30
    15, 15, 15, 50, 30, 25
    15, 15, 15, 50, 55
    15, 15, 15, 55, 15, 35
    15, 15, 15, 55, 25, 25
    15, 15, 15, 55, 35, 15
    15, 15, 15, 55, 50
    15, 15, 15, 70, 35
    15, 15, 15, 80, 25
    15, 15, 25, 15, 15, 15, 15, 35
    15, 15, 25, 15, 15, 15, 25, 25
    15, 15, 25, 15, 15, 15, 35, 15
    15, 15, 25, 15, 15, 15, 50
    15, 15, 25, 15, 15, 25, 15, 25
    15, 15, 25, 15, 15, 25, 25, 15
    15, 15, 25, 15, 15, 30, 35
    15, 15, 25, 15, 15, 35, 15, 15
    15, 15, 25, 15, 15, 35, 30
    15, 15, 25, 15, 15, 50, 15
    15, 15, 25, 15, 25, 15, 15, 25
    15, 15, 25, 15, 25, 15, 25, 15
    15, 15, 25, 15, 25, 25, 15, 15
    15, 15, 25, 15, 25, 25, 30
    15, 15, 25, 15, 25, 30, 25
    15, 15, 25, 15, 25, 55
    15, 15, 25, 15, 30, 15, 35
    15, 15, 25, 15, 30, 25, 25
    15, 15, 25, 15, 30, 35, 15
    15, 15, 25, 15, 30, 50
    15, 15, 25, 15, 35, 15, 15, 15
    15, 15, 25, 15, 35, 15, 30
    15, 15, 25, 15, 35, 30, 15
    15, 15, 25, 15, 35, 45
    15, 15, 25, 15, 45, 35
    15, 15, 25, 15, 50, 15, 15
    15, 15, 25, 15, 50, 30
    15, 15, 25, 15, 55, 25
    15, 15, 25, 15, 80
    15, 15, 25, 25, 15, 15, 15, 25
    15, 15, 25, 25, 15, 15, 25, 15
    15, 15, 25, 25, 15, 25, 15, 15
    15, 15, 25, 25, 15, 25, 30
    15, 15, 25, 25, 15, 30, 25
    15, 15, 25, 25, 15, 55
    15, 15, 25, 25, 25, 15, 15, 15
    15, 15, 25, 25, 25, 15, 30
    15, 15, 25, 25, 25, 30, 15
    15, 15, 25, 25, 25, 45
    15, 15, 25, 25, 30, 15, 25
    15, 15, 25, 25, 30, 25, 15
    15, 15, 25, 25, 35, 35
    15, 15, 25, 25, 45, 25
    15, 15, 25, 25, 55, 15
    15, 15, 25, 25, 70
    15, 15, 25, 30, 15, 15, 35
    15, 15, 25, 30, 15, 25, 25
    15, 15, 25, 30, 15, 35, 15
    15, 15, 25, 30, 15, 50
    15, 15, 25, 30, 25, 15, 25
    15, 15, 25, 30, 25, 25, 15
    15, 15, 25, 30, 30, 35
    15, 15, 25, 30, 35, 15, 15
    15, 15, 25, 30, 35, 30
    15, 15, 25, 30, 50, 15
    15, 15, 25, 35, 15, 15, 15, 15
    15, 15, 25, 35, 15, 15, 30
    15, 15, 25, 35, 15, 30, 15
    15, 15, 25, 35, 15, 45
    15, 15, 25, 35, 25, 35
    15, 15, 25, 35, 30, 15, 15
    15, 15, 25, 35, 30, 30
    15, 15, 25, 35, 35, 25
    15, 15, 25, 35, 45, 15
    15, 15, 25, 45, 15, 35
    15, 15, 25, 45, 25, 25
    15, 15, 25, 45, 35, 15
    15, 15, 25, 45, 50
    15, 15, 25, 50, 15, 15, 15
    15, 15, 25, 50, 15, 30
    15, 15, 25, 50, 30, 15
    15, 15, 25, 50, 45
    15, 15, 25, 55, 15, 25
    15, 15, 25, 55, 25, 15
    15, 15, 25, 70, 25
    15, 15, 25, 80, 15
    15, 15, 30, 15, 15, 15, 15, 15, 15
    15, 15, 30, 15, 15, 15, 15, 30
    15, 15, 30, 15, 15, 15, 30, 15
    15, 15, 30, 15, 15, 15, 45
    15, 15, 30, 15, 15, 25, 35
    15, 15, 30, 15, 15, 30, 15, 15
    15, 15, 30, 15, 15, 30, 30
    15, 15, 30, 15, 15, 35, 25
    15, 15, 30, 15, 15, 45, 15
    15, 15, 30, 15, 25, 15, 35
    15, 15, 30, 15, 25, 25, 25
    15, 15, 30, 15, 25, 35, 15
    15, 15, 30, 15, 25, 50
    15, 15, 30, 15, 30, 15, 15, 15
    15, 15, 30, 15, 30, 15, 30
    15, 15, 30, 15, 30, 30, 15
    15, 15, 30, 15, 30, 45
    15, 15, 30, 15, 35, 15, 25
    15, 15, 30, 15, 35, 25, 15
    15, 15, 30, 15, 45, 15, 15
    15, 15, 30, 15, 45, 30
    15, 15, 30, 15, 50, 25
    15, 15, 30, 25, 15, 15, 35
    15, 15, 30, 25, 15, 25, 25
    15, 15, 30, 25, 15, 35, 15
    15, 15, 30, 25, 15, 50
    15, 15, 30, 25, 25, 15, 25
    15, 15, 30, 25, 25, 25, 15
    15, 15, 30, 25, 30, 35
    15, 15, 30, 25, 35, 15, 15
    15, 15, 30, 25, 35, 30
    15, 15, 30, 25, 50, 15
    15, 15, 30, 30, 15, 15, 15, 15
    15, 15, 30, 30, 15, 15, 30
    15, 15, 30, 30, 15, 30, 15
    15, 15, 30, 30, 15, 45
    15, 15, 30, 30, 25, 35
    15, 15, 30, 30, 30, 15, 15
    15, 15, 30, 30, 30, 30
    15, 15, 30, 30, 35, 25
    15, 15, 30, 30, 45, 15
    15, 15, 30, 35, 15, 15, 25
    15, 15, 30, 35, 15, 25, 15
    15, 15, 30, 35, 25, 15, 15
    15, 15, 30, 35, 25, 30
    15, 15, 30, 35, 30, 25
    15, 15, 30, 35, 55
    15, 15, 30, 45, 15, 15, 15
    15, 15, 30, 45, 15, 30
    15, 15, 30, 45, 30, 15
    15, 15, 30, 45, 45
    15, 15, 30, 50, 15, 25
    15, 15, 30, 50, 25, 15
    15, 15, 30, 55, 35
    15, 15, 35, 15, 15, 15, 15, 25
    15, 15, 35, 15, 15, 15, 25, 15
    15, 15, 35, 15, 15, 25, 15, 15
    15, 15, 35, 15, 15, 25, 30
    15, 15, 35, 15, 15, 30, 25
    15, 15, 35, 15, 15, 55
    15, 15, 35, 15, 25, 15, 15, 15
    15, 15, 35, 15, 25, 15, 30
    15, 15, 35, 15, 25, 30, 15
    15, 15, 35, 15, 25, 45
    15, 15, 35, 15, 30, 15, 25
    15, 15, 35, 15, 30, 25, 15
    15, 15, 35, 15, 35, 35
    15, 15, 35, 15, 45, 25
    15, 15, 35, 15, 55, 15
    15, 15, 35, 15, 70
    15, 15, 35, 25, 15, 15, 15, 15
    15, 15, 35, 25, 15, 15, 30
    15, 15, 35, 25, 15, 30, 15
    15, 15, 35, 25, 15, 45
    15, 15, 35, 25, 25, 35
    15, 15, 35, 25, 30, 15, 15
    15, 15, 35, 25, 30, 30
    15, 15, 35, 25, 35, 25
    15, 15, 35, 25, 45, 15
    15, 15, 35, 30, 15, 15, 25
    15, 15, 35, 30, 15, 25, 15
    15, 15, 35, 30, 25, 15, 15
    15, 15, 35, 30, 25, 30
    15, 15, 35, 30, 30, 25
    15, 15, 35, 30, 55
    15, 15, 35, 35, 15, 35
    15, 15, 35, 35, 25, 25
    15, 15, 35, 35, 35, 15
    15, 15, 35, 35, 50
    15, 15, 35, 45, 15, 25
    15, 15, 35, 45, 25, 15
    15, 15, 35, 50, 35
    15, 15, 35, 55, 15, 15
    15, 15, 35, 55, 30
    15, 15, 35, 70, 15
    15, 15, 45, 15, 15, 15, 15, 15
    15, 15, 45, 15, 15, 15, 30
    15, 15, 45, 15, 15, 30, 15
    15, 15, 45, 15, 15, 45
    15, 15, 45, 15, 25, 35
    15, 15, 45, 15, 30, 15, 15
    15, 15, 45, 15, 30, 30
    15, 15, 45, 15, 35, 25
    15, 15, 45, 15, 45, 15
    15, 15, 45, 25, 15, 35
    15, 15, 45, 25, 25, 25
    15, 15, 45, 25, 35, 15
    15, 15, 45, 25, 50
    15, 15, 45, 30, 15, 15, 15
    15, 15, 45, 30, 15, 30
    15, 15, 45, 30, 30, 15
    15, 15, 45, 30, 45
    15, 15, 45, 35, 15, 25
    15, 15, 45, 35, 25, 15
    15, 15, 45, 45, 15, 15
    15, 15, 45, 45, 30
    15, 15, 45, 50, 25
    15, 15, 50, 15, 15, 15, 25
    15, 15, 50, 15, 15, 25, 15
    15, 15, 50, 15, 25, 15, 15
    15, 15, 50, 15, 25, 30
    15, 15, 50, 15, 30, 25
    15, 15, 50, 15, 55
    15, 15, 50, 25, 15, 15, 15
    15, 15, 50, 25, 15, 30
    15, 15, 50, 25, 30, 15
    15, 15, 50, 25, 45
    15, 15, 50, 30, 15, 25
    15, 15, 50, 30, 25, 15
    15, 15, 50, 35, 35
    15, 15, 50, 45, 25
    15, 15, 50, 55, 15
    15, 15, 50, 70
    15, 15, 55, 15, 15, 35
    15, 15, 55, 15, 25, 25
    15, 15, 55, 15, 35, 15
    15, 15, 55, 15, 50
    15, 15, 55, 25, 15, 25
    15, 15, 55, 25, 25, 15
    15, 15, 55, 30, 35
    15, 15, 55, 35, 15, 15
    15, 15, 55, 35, 30
    15, 15, 55, 50, 15
    15, 15, 70, 15, 35
    15, 15, 70, 25, 25
    15, 15, 70, 35, 15
    15, 15, 70, 50
    15, 15, 80, 15, 25
    15, 15, 80, 25, 15
    15, 25, 15, 15, 15, 15, 15, 35
    15, 25, 15, 15, 15, 15, 25, 25
    15, 25, 15, 15, 15, 15, 35, 15
    15, 25, 15, 15, 15, 15, 50
    15, 25, 15, 15, 15, 25, 15, 25
    15, 25, 15, 15, 15, 25, 25, 15
    15, 25, 15, 15, 15, 30, 35
    15, 25, 15, 15, 15, 35, 15, 15
    15, 25, 15, 15, 15, 35, 30
    15, 25, 15, 15, 15, 50, 15
    15, 25, 15, 15, 25, 15, 15, 25
    15, 25, 15, 15, 25, 15, 25, 15
    15, 25, 15, 15, 25, 25, 15, 15
    15, 25, 15, 15, 25, 25, 30
    15, 25, 15, 15, 25, 30, 25
    15, 25, 15, 15, 25, 55
    15, 25, 15, 15, 30, 15, 35
    15, 25, 15, 15, 30, 25, 25
    15, 25, 15, 15, 30, 35, 15
    15, 25, 15, 15, 30, 50
    15, 25, 15, 15, 35, 15, 15, 15
    15, 25, 15, 15, 35, 15, 30
    15, 25, 15, 15, 35, 30, 15
    15, 25, 15, 15, 35, 45
    15, 25, 15, 15, 45, 35
    15, 25, 15, 15, 50, 15, 15
    15, 25, 15, 15, 50, 30
    15, 25, 15, 15, 55, 25
    15, 25, 15, 15, 80
    15, 25, 15, 25, 15, 15, 15, 25
    15, 25, 15, 25, 15, 15, 25, 15
    15, 25, 15, 25, 15, 25, 15, 15
    15, 25, 15, 25, 15, 25, 30
    15, 25, 15, 25, 15, 30, 25
    15, 25, 15, 25, 15, 55
    15, 25, 15, 25, 25, 15, 15, 15
    15, 25, 15, 25, 25, 15, 30
    15, 25, 15, 25, 25, 30, 15
    15, 25, 15, 25, 25, 45
    15, 25, 15, 25, 30, 15, 25
    15, 25, 15, 25, 30, 25, 15
    15, 25, 15, 25, 35, 35
    15, 25, 15, 25, 45, 25
    15, 25, 15, 25, 55, 15
    15, 25, 15, 25, 70
    15, 25, 15, 30, 15, 15, 35
    15, 25, 15, 30, 15, 25, 25
    15, 25, 15, 30, 15, 35, 15
    15, 25, 15, 30, 15, 50
    15, 25, 15, 30, 25, 15, 25
    15, 25, 15, 30, 25, 25, 15
    15, 25, 15, 30, 30, 35
    15, 25, 15, 30, 35, 15, 15
    15, 25, 15, 30, 35, 30
    15, 25, 15, 30, 50, 15
    15, 25, 15, 35, 15, 15, 15, 15
    15, 25, 15, 35, 15, 15, 30
    15, 25, 15, 35, 15, 30, 15
    15, 25, 15, 35, 15, 45
    15, 25, 15, 35, 25, 35
    15, 25, 15, 35, 30, 15, 15
    15, 25, 15, 35, 30, 30
    15, 25, 15, 35, 35, 25
    15, 25, 15, 35, 45, 15
    15, 25, 15, 45, 15, 35
    15, 25, 15, 45, 25, 25
    15, 25, 15, 45, 35, 15
    15, 25, 15, 45, 50
    15, 25, 15, 50, 15, 15, 15
    15, 25, 15, 50, 15, 30
    15, 25, 15, 50, 30, 15
    15, 25, 15, 50, 45
    15, 25, 15, 55, 15, 25
    15, 25, 15, 55, 25, 15
    15, 25, 15, 70, 25
    15, 25, 15, 80, 15
    15, 25, 25, 15, 15, 15, 15, 25
    15, 25, 25, 15, 15, 15, 25, 15
    15, 25, 25, 15, 15, 25, 15, 15
    15, 25, 25, 15, 15, 25, 30
    15, 25, 25, 15, 15, 30, 25
    15, 25, 25, 15, 15, 55
    15, 25, 25, 15, 25, 15, 15, 15
    15, 25, 25, 15, 25, 15, 30
    15, 25, 25, 15, 25, 30, 15
    15, 25, 25, 15, 25, 45
    15, 25, 25, 15, 30, 15, 25
    15, 25, 25, 15, 30, 25, 15
    15, 25, 25, 15, 35, 35
    15, 25, 25, 15, 45, 25
    15, 25, 25, 15, 55, 15
    15, 25, 25, 15, 70
    15, 25, 25, 25, 15, 15, 15, 15
    15, 25, 25, 25, 15, 15, 30
    15, 25, 25, 25, 15, 30, 15
    15, 25, 25, 25, 15, 45
    15, 25, 25, 25, 25, 35
    15, 25, 25, 25, 30, 15, 15
    15, 25, 25, 25, 30, 30
    15, 25, 25, 25, 35, 25
    15, 25, 25, 25, 45, 15
    15, 25, 25, 30, 15, 15, 25
    15, 25, 25, 30, 15, 25, 15
    15, 25, 25, 30, 25, 15, 15
    15, 25, 25, 30, 25, 30
    15, 25, 25, 30, 30, 25
    15, 25, 25, 30, 55
    15, 25, 25, 35, 15, 35
    15, 25, 25, 35, 25, 25
    15, 25, 25, 35, 35, 15
    15, 25, 25, 35, 50
    15, 25, 25, 45, 15, 25
    15, 25, 25, 45, 25, 15
    15, 25, 25, 50, 35
    15, 25, 25, 55, 15, 15
    15, 25, 25, 55, 30
    15, 25, 25, 70, 15
    15, 25, 30, 15, 15, 15, 35
    15, 25, 30, 15, 15, 25, 25
    15, 25, 30, 15, 15, 35, 15
    15, 25, 30, 15, 15, 50
    15, 25, 30, 15, 25, 15, 25
    15, 25, 30, 15, 25, 25, 15
    15, 25, 30, 15, 30, 35
    15, 25, 30, 15, 35, 15, 15
    15, 25, 30, 15, 35, 30
    15, 25, 30, 15, 50, 15
    15, 25, 30, 25, 15, 15, 25
    15, 25, 30, 25, 15, 25, 15
    15, 25, 30, 25, 25, 15, 15
    15, 25, 30, 25, 25, 30
    15, 25, 30, 25, 30, 25
    15, 25, 30, 25, 55
    15, 25, 30, 30, 15, 35
    15, 25, 30, 30, 25, 25
    15, 25, 30, 30, 35, 15
    15, 25, 30, 30, 50
    15, 25, 30, 35, 15, 15, 15
    15, 25, 30, 35, 15, 30
    15, 25, 30, 35, 30, 15
    15, 25, 30, 35, 45
    15, 25, 30, 45, 35
    15, 25, 30, 50, 15, 15
    15, 25, 30, 50, 30
    15, 25, 30, 55, 25
    15, 25, 30, 80
    15, 25, 35, 15, 15, 15, 15, 15
    15, 25, 35, 15, 15, 15, 30
    15, 25, 35, 15, 15, 30, 15
    15, 25, 35, 15, 15, 45
    15, 25, 35, 15, 25, 35
    15, 25, 35, 15, 30, 15, 15
    15, 25, 35, 15, 30, 30
    15, 25, 35, 15, 35, 25
    15, 25, 35, 15, 45, 15
    15, 25, 35, 25, 15, 35
    15, 25, 35, 25, 25, 25
    15, 25, 35, 25, 35, 15
    15, 25, 35, 25, 50
    15, 25, 35, 30, 15, 15, 15
    15, 25, 35, 30, 15, 30
    15, 25, 35, 30, 30, 15
    15, 25, 35, 30, 45
    15, 25, 35, 35, 15, 25
    15, 25, 35, 35, 25, 15
    15, 25, 35, 45, 15, 15
    15, 25, 35, 45, 30
    15, 25, 35, 50, 25
    15, 25, 45, 15, 15, 35
    15, 25, 45, 15, 25, 25
    15, 25, 45, 15, 35, 15
    15, 25, 45, 15, 50
    15, 25, 45, 25, 15, 25
    15, 25, 45, 25, 25, 15
    15, 25, 45, 30, 35
    15, 25, 45, 35, 15, 15
    15, 25, 45, 35, 30
    15, 25, 45, 50, 15
    15, 25, 50, 15, 15, 15, 15
    15, 25, 50, 15, 15, 30
    15, 25, 50, 15, 30, 15
    15, 25, 50, 15, 45
    15, 25, 50, 25, 35
    15, 25, 50, 30, 15, 15
    15, 25, 50, 30, 30
    15, 25, 50, 35, 25
    15, 25, 50, 45, 15
    15, 25, 55, 15, 15, 25
    15, 25, 55, 15, 25, 15
    15, 25, 55, 25, 15, 15
    15, 25, 55, 25, 30
    15, 25, 55, 30, 25
    15, 25, 55, 55
    15, 25, 70, 15, 25
    15, 25, 70, 25, 15
    15, 25, 80, 15, 15
    15, 25, 80, 30
    15, 30, 15, 15, 15, 15, 15, 15, 15
    15, 30, 15, 15, 15, 15, 15, 30
    15, 30, 15, 15, 15, 15, 30, 15
    15, 30, 15, 15, 15, 15, 45
    15, 30, 15, 15, 15, 25, 35
    15, 30, 15, 15, 15, 30, 15, 15
    15, 30, 15, 15, 15, 30, 30
    15, 30, 15, 15, 15, 35, 25
    15, 30, 15, 15, 15, 45, 15
    15, 30, 15, 15, 25, 15, 35
    15, 30, 15, 15, 25, 25, 25
    15, 30, 15, 15, 25, 35, 15
    15, 30, 15, 15, 25, 50
    15, 30, 15, 15, 30, 15, 15, 15
    15, 30, 15, 15, 30, 15, 30
    15, 30, 15, 15, 30, 30, 15
    15, 30, 15, 15, 30, 45
    15, 30, 15, 15, 35, 15, 25
    15, 30, 15, 15, 35, 25, 15
    15, 30, 15, 15, 45, 15, 15
    15, 30, 15, 15, 45, 30
    15, 30, 15, 15, 50, 25
    15, 30, 15, 25, 15, 15, 35
    15, 30, 15, 25, 15, 25, 25
    15, 30, 15, 25, 15, 35, 15
    15, 30, 15, 25, 15, 50
    15, 30, 15, 25, 25, 15, 25
    15, 30, 15, 25, 25, 25, 15
    15, 30, 15, 25, 30, 35
    15, 30, 15, 25, 35, 15, 15
    15, 30, 15, 25, 35, 30
    15, 30, 15, 25, 50, 15
    15, 30, 15, 30, 15, 15, 15, 15
    15, 30, 15, 30, 15, 15, 30
    15, 30, 15, 30, 15, 30, 15
    15, 30, 15, 30, 15, 45
    15, 30, 15, 30, 25, 35
    15, 30, 15, 30, 30, 15, 15
    15, 30, 15, 30, 30, 30
    15, 30, 15, 30, 35, 25
    15, 30, 15, 30, 45, 15
    15, 30, 15, 35, 15, 15, 25
    15, 30, 15, 35, 15, 25, 15
    15, 30, 15, 35, 25, 15, 15
    15, 30, 15, 35, 25, 30
    15, 30, 15, 35, 30, 25
    15, 30, 15, 35, 55
    15, 30, 15, 45, 15, 15, 15
    15, 30, 15, 45, 15, 30
    15, 30, 15, 45, 30, 15
    15, 30, 15, 45, 45
    15, 30, 15, 50, 15, 25
    15, 30, 15, 50, 25, 15
    15, 30, 15, 55, 35
    15, 30, 25, 15, 15, 15, 35
    15, 30, 25, 15, 15, 25, 25
    15, 30, 25, 15, 15, 35, 15
    15, 30, 25, 15, 15, 50
    15, 30, 25, 15, 25, 15, 25
    15, 30, 25, 15, 25, 25, 15
    15, 30, 25, 15, 30, 35
    15, 30, 25, 15, 35, 15, 15
    15, 30, 25, 15, 35, 30
    15, 30, 25, 15, 50, 15
    15, 30, 25, 25, 15, 15, 25
    15, 30, 25, 25, 15, 25, 15
    15, 30, 25, 25, 25, 15, 15
    15, 30, 25, 25, 25, 30
    15, 30, 25, 25, 30, 25
    15, 30, 25, 25, 55
    15, 30, 25, 30, 15, 35
    15, 30, 25, 30, 25, 25
    15, 30, 25, 30, 35, 15
    15, 30, 25, 30, 50
    15, 30, 25, 35, 15, 15, 15
    15, 30, 25, 35, 15, 30
    15, 30, 25, 35, 30, 15
    15, 30, 25, 35, 45
    15, 30, 25, 45, 35
    15, 30, 25, 50, 15, 15
    15, 30, 25, 50, 30
    15, 30, 25, 55, 25
    15, 30, 25, 80
    15, 30, 30, 15, 15, 15, 15, 15
    15, 30, 30, 15, 15, 15, 30
    15, 30, 30, 15, 15, 30, 15
    15, 30, 30, 15, 15, 45
    15, 30, 30, 15, 25, 35
    15, 30, 30, 15, 30, 15, 15
    15, 30, 30, 15, 30, 30
    15, 30, 30, 15, 35, 25
    15, 30, 30, 15, 45, 15
    15, 30, 30, 25, 15, 35
    15, 30, 30, 25, 25, 25
    15, 30, 30, 25, 35, 15
    15, 30, 30, 25, 50
    15, 30, 30, 30, 15, 15, 15
    15, 30, 30, 30, 15, 30
    15, 30, 30, 30, 30, 15
    15, 30, 30, 30, 45
    15, 30, 30, 35, 15, 25
    15, 30, 30, 35, 25, 15
    15, 30, 30, 45, 15, 15
    15, 30, 30, 45, 30
    15, 30, 30, 50, 25
    15, 30, 35, 15, 15, 15, 25
    15, 30, 35, 15, 15, 25, 15
    15, 30, 35, 15, 25, 15, 15
    15, 30, 35, 15, 25, 30
    15, 30, 35, 15, 30, 25
    15, 30, 35, 15, 55
    15, 30, 35, 25, 15, 15, 15
    15, 30, 35, 25, 15, 30
    15, 30, 35, 25, 30, 15
    15, 30, 35, 25, 45
    15, 30, 35, 30, 15, 25
    15, 30, 35, 30, 25, 15
    15, 30, 35, 35, 35
    15, 30, 35, 45, 25
    15, 30, 35, 55, 15
    15, 30, 35, 70
    15, 30, 45, 15, 15, 15, 15
    15, 30, 45, 15, 15, 30
    15, 30, 45, 15, 30, 15
    15, 30, 45, 15, 45
    15, 30, 45, 25, 35
    15, 30, 45, 30, 15, 15
    15, 30, 45, 30, 30
    15, 30, 45, 35, 25
    15, 30, 45, 45, 15
    15, 30, 50, 15, 15, 25
    15, 30, 50, 15, 25, 15
    15, 30, 50, 25, 15, 15
    15, 30, 50, 25, 30
    15, 30, 50, 30, 25
    15, 30, 50, 55
    15, 30, 55, 15, 35
    15, 30, 55, 25, 25
    15, 30, 55, 35, 15
    15, 30, 55, 50
    15, 30, 70, 35
    15, 30, 80, 25
    15, 35, 15, 15, 15, 15, 15, 25
    15, 35, 15, 15, 15, 15, 25, 15
    15, 35, 15, 15, 15, 25, 15, 15
    15, 35, 15, 15, 15, 25, 30
    15, 35, 15, 15, 15, 30, 25
    15, 35, 15, 15, 15, 55
    15, 35, 15, 15, 25, 15, 15, 15
    15, 35, 15, 15, 25, 15, 30
    15, 35, 15, 15, 25, 30, 15
    15, 35, 15, 15, 25, 45
    15, 35, 15, 15, 30, 15, 25
    15, 35, 15, 15, 30, 25, 15
    15, 35, 15, 15, 35, 35
    15, 35, 15, 15, 45, 25
    15, 35, 15, 15, 55, 15
    15, 35, 15, 15, 70
    15, 35, 15, 25, 15, 15, 15, 15
    15, 35, 15, 25, 15, 15, 30
    15, 35, 15, 25, 15, 30, 15
    15, 35, 15, 25, 15, 45
    15, 35, 15, 25, 25, 35
    15, 35, 15, 25, 30, 15, 15
    15, 35, 15, 25, 30, 30
    15, 35, 15, 25, 35, 25
    15, 35, 15, 25, 45, 15
    15, 35, 15, 30, 15, 15, 25
    15, 35, 15, 30, 15, 25, 15
    15, 35, 15, 30, 25, 15, 15
    15, 35, 15, 30, 25, 30
    15, 35, 15, 30, 30, 25
    15, 35, 15, 30, 55
    15, 35, 15, 35, 15, 35
    15, 35, 15, 35, 25, 25
    15, 35, 15, 35, 35, 15
    15, 35, 15, 35, 50
    15, 35, 15, 45, 15, 25
    15, 35, 15, 45, 25, 15
    15, 35, 15, 50, 35
    15, 35, 15, 55, 15, 15
    15, 35, 15, 55, 30
    15, 35, 15, 70, 15
    15, 35, 25, 15, 15, 15, 15, 15
    15, 35, 25, 15, 15, 15, 30
    15, 35, 25, 15, 15, 30, 15
    15, 35, 25, 15, 15, 45
    15, 35, 25, 15, 25, 35
    15, 35, 25, 15, 30, 15, 15
    15, 35, 25, 15, 30, 30
    15, 35, 25, 15, 35, 25
    15, 35, 25, 15, 45, 15
    15, 35, 25, 25, 15, 35
    15, 35, 25, 25, 25, 25
    15, 35, 25, 25, 35, 15
    15, 35, 25, 25, 50
    15, 35, 25, 30, 15, 15, 15
    15, 35, 25, 30, 15, 30
    15, 35, 25, 30, 30, 15
    15, 35, 25, 30, 45
    15, 35, 25, 35, 15, 25
    15, 35, 25, 35, 25, 15
    15, 35, 25, 45, 15, 15
    15, 35, 25, 45, 30
    15, 35, 25, 50, 25
    15, 35, 30, 15, 15, 15, 25
    15, 35, 30, 15, 15, 25, 15
    15, 35, 30, 15, 25, 15, 15
    15, 35, 30, 15, 25, 30
    15, 35, 30, 15, 30, 25
    15, 35, 30, 15, 55
    15, 35, 30, 25, 15, 15, 15
    15, 35, 30, 25, 15, 30
    15, 35, 30, 25, 30, 15
    15, 35, 30, 25, 45
    15, 35, 30, 30, 15, 25
    15, 35, 30, 30, 25, 15
    15, 35, 30, 35, 35
    15, 35, 30, 45, 25
    15, 35, 30, 55, 15
    15, 35, 30, 70
    15, 35, 35, 15, 15, 35
    15, 35, 35, 15, 25, 25
    15, 35, 35, 15, 35, 15
    15, 35, 35, 15, 50
    15, 35, 35, 25, 15, 25
    15, 35, 35, 25, 25, 15
    15, 35, 35, 30, 35
    15, 35, 35, 35, 15, 15
    15, 35, 35, 35, 30
    15, 35, 35, 50, 15
    15, 35, 45, 15, 15, 25
    15, 35, 45, 15, 25, 15
    15, 35, 45, 25, 15, 15
    15, 35, 45, 25, 30
    15, 35, 45, 30, 25
    15, 35, 45, 55
    15, 35, 50, 15, 35
    15, 35, 50, 25, 25
    15, 35, 50, 35, 15
    15, 35, 50, 50
    15, 35, 55, 15, 15, 15
    15, 35, 55, 15, 30
    15, 35, 55, 30, 15
    15, 35, 55, 45
    15, 35, 70, 15, 15
    15, 35, 70, 30
    15, 35, 100
    15, 45, 15, 15, 15, 15, 15, 15
    15, 45, 15, 15, 15, 15, 30
    15, 45, 15, 15, 15, 30, 15
    15, 45, 15, 15, 15, 45
    15, 45, 15, 15, 25, 35
    15, 45, 15, 15, 30, 15, 15
    15, 45, 15, 15, 30, 30
    15, 45, 15, 15, 35, 25
    15, 45, 15, 15, 45, 15
    15, 45, 15, 25, 15, 35
    15, 45, 15, 25, 25, 25
    15, 45, 15, 25, 35, 15
    15, 45, 15, 25, 50
    15, 45, 15, 30, 15, 15, 15
    15, 45, 15, 30, 15, 30
    15, 45, 15, 30, 30, 15
    15, 45, 15, 30, 45
    15, 45, 15, 35, 15, 25
    15, 45, 15, 35, 25, 15
    15, 45, 15, 45, 15, 15
    15, 45, 15, 45, 30
    15, 45, 15, 50, 25
    15, 45, 25, 15, 15, 35
    15, 45, 25, 15, 25, 25
    15, 45, 25, 15, 35, 15
    15, 45, 25, 15, 50
    15, 45, 25, 25, 15, 25
    15, 45, 25, 25, 25, 15
    15, 45, 25, 30, 35
    15, 45, 25, 35, 15, 15
    15, 45, 25, 35, 30
    15, 45, 25, 50, 15
    15, 45, 30, 15, 15, 15, 15
    15, 45, 30, 15, 15, 30
    15, 45, 30, 15, 30, 15
    15, 45, 30, 15, 45
    15, 45, 30, 25, 35
    15, 45, 30, 30, 15, 15
    15, 45, 30, 30, 30
    15, 45, 30, 35, 25
    15, 45, 30, 45, 15
    15, 45, 35, 15, 15, 25
    15, 45, 35, 15, 25, 15
    15, 45, 35, 25, 15, 15
    15, 45, 35, 25, 30
    15, 45, 35, 30, 25
    15, 45, 35, 55
    15, 45, 45, 15, 15, 15
    15, 45, 45, 15, 30
    15, 45, 45, 30, 15
    15, 45, 45, 45
    15, 45, 50, 15, 25
    15, 45, 50, 25, 15
    15, 45, 55, 35
    15, 50, 15, 15, 15, 15, 25
    15, 50, 15, 15, 15, 25, 15
    15, 50, 15, 15, 25, 15, 15
    15, 50, 15, 15, 25, 30
    15, 50, 15, 15, 30, 25
    15, 50, 15, 15, 55
    15, 50, 15, 25, 15, 15, 15
    15, 50, 15, 25, 15, 30
    15, 50, 15, 25, 30, 15
    15, 50, 15, 25, 45
    15, 50, 15, 30, 15, 25
    15, 50, 15, 30, 25, 15
    15, 50, 15, 35, 35
    15, 50, 15, 45, 25
    15, 50, 15, 55, 15
    15, 50, 15, 70
    15, 50, 25, 15, 15, 15, 15
    15, 50, 25, 15, 15, 30
    15, 50, 25, 15, 30, 15
    15, 50, 25, 15, 45
    15, 50, 25, 25, 35
    15, 50, 25, 30, 15, 15
    15, 50, 25, 30, 30
    15, 50, 25, 35, 25
    15, 50, 25, 45, 15
    15, 50, 30, 15, 15, 25
    15, 50, 30, 15, 25, 15
    15, 50, 30, 25, 15, 15
    15, 50, 30, 25, 30
    15, 50, 30, 30, 25
    15, 50, 30, 55
    15, 50, 35, 15, 35
    15, 50, 35, 25, 25
    15, 50, 35, 35, 15
    15, 50, 35, 50
    15, 50, 45, 15, 25
    15, 50, 45, 25, 15
    15, 50, 50, 35
    15, 50, 55, 15, 15
    15, 50, 55, 30
    15, 50, 70, 15
    15, 55, 15, 15, 15, 35
    15, 55, 15, 15, 25, 25
    15, 55, 15, 15, 35, 15
    15, 55, 15, 15, 50
    15, 55, 15, 25, 15, 25
    15, 55, 15, 25, 25, 15
    15, 55, 15, 30, 35
    15, 55, 15, 35, 15, 15
    15, 55, 15, 35, 30
    15, 55, 15, 50, 15
    15, 55, 25, 15, 15, 25
    15, 55, 25, 15, 25, 15
    15, 55, 25, 25, 15, 15
    15, 55, 25, 25, 30
    15, 55, 25, 30, 25
    15, 55, 25, 55
    15, 55, 30, 15, 35
    15, 55, 30, 25, 25
    15, 55, 30, 35, 15
    15, 55, 30, 50
    15, 55, 35, 15, 15, 15
    15, 55, 35, 15, 30
    15, 55, 35, 30, 15
    15, 55, 35, 45
    15, 55, 45, 35
    15, 55, 50, 15, 15
    15, 55, 50, 30
    15, 55, 55, 25
    15, 55, 80
    15, 70, 15, 15, 35
    15, 70, 15, 25, 25
    15, 70, 15, 35, 15
    15, 70, 15, 50
    15, 70, 25, 15, 25
    15, 70, 25, 25, 15
    15, 70, 30, 35
    15, 70, 35, 15, 15
    15, 70, 35, 30
    15, 70, 50, 15
    15, 80, 15, 15, 25
    15, 80, 15, 25, 15
    15, 80, 25, 15, 15
    15, 80, 25, 30
    15, 80, 30, 25
    15, 80, 55
    15, 100, 35
    25, 15, 15, 15, 15, 15, 15, 35
    25, 15, 15, 15, 15, 15, 25, 25
    25, 15, 15, 15, 15, 15, 35, 15
    25, 15, 15, 15, 15, 15, 50
    25, 15, 15, 15, 15, 25, 15, 25
    25, 15, 15, 15, 15, 25, 25, 15
    25, 15, 15, 15, 15, 30, 35
    25, 15, 15, 15, 15, 35, 15, 15
    25, 15, 15, 15, 15, 35, 30
    25, 15, 15, 15, 15, 50, 15
    25, 15, 15, 15, 25, 15, 15, 25
    25, 15, 15, 15, 25, 15, 25, 15
    25, 15, 15, 15, 25, 25, 15, 15
    25, 15, 15, 15, 25, 25, 30
    25, 15, 15, 15, 25, 30, 25
    25, 15, 15, 15, 25, 55
    25, 15, 15, 15, 30, 15, 35
    25, 15, 15, 15, 30, 25, 25
    25, 15, 15, 15, 30, 35, 15
    25, 15, 15, 15, 30, 50
    25, 15, 15, 15, 35, 15, 15, 15
    25, 15, 15, 15, 35, 15, 30
    25, 15, 15, 15, 35, 30, 15
    25, 15, 15, 15, 35, 45
    25, 15, 15, 15, 45, 35
    25, 15, 15, 15, 50, 15, 15
    25, 15, 15, 15, 50, 30
    25, 15, 15, 15, 55, 25
    25, 15, 15, 15, 80
    25, 15, 15, 25, 15, 15, 15, 25
    25, 15, 15, 25, 15, 15, 25, 15
    25, 15, 15, 25, 15, 25, 15, 15
    25, 15, 15, 25, 15, 25, 30
    25, 15, 15, 25, 15, 30, 25
    25, 15, 15, 25, 15, 55
    25, 15, 15, 25, 25, 15, 15, 15
    25, 15, 15, 25, 25, 15, 30
    25, 15, 15, 25, 25, 30, 15
    25, 15, 15, 25, 25, 45
    25, 15, 15, 25, 30, 15, 25
    25, 15, 15, 25, 30, 25, 15
    25, 15, 15, 25, 35, 35
    25, 15, 15, 25, 45, 25
    25, 15, 15, 25, 55, 15
    25, 15, 15, 25, 70
    25, 15, 15, 30, 15, 15, 35
    25, 15, 15, 30, 15, 25, 25
    25, 15, 15, 30, 15, 35, 15
    25, 15, 15, 30, 15, 50
    25, 15, 15, 30, 25, 15, 25
    25, 15, 15, 30, 25, 25, 15
    25, 15, 15, 30, 30, 35
    25, 15, 15, 30, 35, 15, 15
    25, 15, 15, 30, 35, 30
    25, 15, 15, 30, 50, 15
    25, 15, 15, 35, 15, 15, 15, 15
    25, 15, 15, 35, 15, 15, 30
    25, 15, 15, 35, 15, 30, 15
    25, 15, 15, 35, 15, 45
    25, 15, 15, 35, 25, 35
    25, 15, 15, 35, 30, 15, 15
    25, 15, 15, 35, 30, 30
    25, 15, 15, 35, 35, 25
    25, 15, 15, 35, 45, 15
    25, 15, 15, 45, 15, 35
    25, 15, 15, 45, 25, 25
    25, 15, 15, 45, 35, 15
    25, 15, 15, 45, 50
    25, 15, 15, 50, 15, 15, 15
    25, 15, 15, 50, 15, 30
    25, 15, 15, 50, 30, 15
    25, 15, 15, 50, 45
    25, 15, 15, 55, 15, 25
    25, 15, 15, 55, 25, 15
    25, 15, 15, 70, 25
    25, 15, 15, 80, 15
    25, 15, 25, 15, 15, 15, 15, 25
    25, 15, 25, 15, 15, 15, 25, 15
    25, 15, 25, 15, 15, 25, 15, 15
    25, 15, 25, 15, 15, 25, 30
    25, 15, 25, 15, 15, 30, 25
    25, 15, 25, 15, 15, 55
    25, 15, 25, 15, 25, 15, 15, 15
    25, 15, 25, 15, 25, 15, 30
    25, 15, 25, 15, 25, 30, 15
    25, 15, 25, 15, 25, 45
    25, 15, 25, 15, 30, 15, 25
    25, 15, 25, 15, 30, 25, 15
    25, 15, 25, 15, 35, 35
    25, 15, 25, 15, 45, 25
    25, 15, 25, 15, 55, 15
    25, 15, 25, 15, 70
    25, 15, 25, 25, 15, 15, 15, 15
    25, 15, 25, 25, 15, 15, 30
    25, 15, 25, 25, 15, 30, 15
    25, 15, 25, 25, 15, 45
    25, 15, 25, 25, 25, 35
    25, 15, 25, 25, 30, 15, 15
    25, 15, 25, 25, 30, 30
    25, 15, 25, 25, 35, 25
    25, 15, 25, 25, 45, 15
    25, 15, 25, 30, 15, 15, 25
    25, 15, 25, 30, 15, 25, 15
    25, 15, 25, 30, 25, 15, 15
    25, 15, 25, 30, 25, 30
    25, 15, 25, 30, 30, 25
    25, 15, 25, 30, 55
    25, 15, 25, 35, 15, 35
    25, 15, 25, 35, 25, 25
    25, 15, 25, 35, 35, 15
    25, 15, 25, 35, 50
    25, 15, 25, 45, 15, 25
    25, 15, 25, 45, 25, 15
    25, 15, 25, 50, 35
    25, 15, 25, 55, 15, 15
    25, 15, 25, 55, 30
    25, 15, 25, 70, 15
    25, 15, 30, 15, 15, 15, 35
    25, 15, 30, 15, 15, 25, 25
    25, 15, 30, 15, 15, 35, 15
    25, 15, 30, 15, 15, 50
    25, 15, 30, 15, 25, 15, 25
    25, 15, 30, 15, 25, 25, 15
    25, 15, 30, 15, 30, 35
    25, 15, 30, 15, 35, 15, 15
    25, 15, 30, 15, 35, 30
    25, 15, 30, 15, 50, 15
    25, 15, 30, 25, 15, 15, 25
    25, 15, 30, 25, 15, 25, 15
    25, 15, 30, 25, 25, 15, 15
    25, 15, 30, 25, 25, 30
    25, 15, 30, 25, 30, 25
    25, 15, 30, 25, 55
    25, 15, 30, 30, 15, 35
    25, 15, 30, 30, 25, 25
    25, 15, 30, 30, 35, 15
    25, 15, 30, 30, 50
    25, 15, 30, 35, 15, 15, 15
    25, 15, 30, 35, 15, 30
    25, 15, 30, 35, 30, 15
    25, 15, 30, 35, 45
    25, 15, 30, 45, 35
    25, 15, 30, 50, 15, 15
    25, 15, 30, 50, 30
    25, 15, 30, 55, 25
    25, 15, 30, 80
    25, 15, 35, 15, 15, 15, 15, 15
    25, 15, 35, 15, 15, 15, 30
    25, 15, 35, 15, 15, 30, 15
    25, 15, 35, 15, 15, 45
    25, 15, 35, 15, 25, 35
    25, 15, 35, 15, 30, 15, 15
    25, 15, 35, 15, 30, 30
    25, 15, 35, 15, 35, 25
    25, 15, 35, 15, 45, 15
    25, 15, 35, 25, 15, 35
    25, 15, 35, 25, 25, 25
    25, 15, 35, 25, 35, 15
    25, 15, 35, 25, 50
    25, 15, 35, 30, 15, 15, 15
    25, 15, 35, 30, 15, 30
    25, 15, 35, 30, 30, 15
    25, 15, 35, 30, 45
    25, 15, 35, 35, 15, 25
    25, 15, 35, 35, 25, 15
    25, 15, 35, 45, 15, 15
    25, 15, 35, 45, 30
    25, 15, 35, 50, 25
    25, 15, 45, 15, 15, 35
    25, 15, 45, 15, 25, 25
    25, 15, 45, 15, 35, 15
    25, 15, 45, 15, 50
    25, 15, 45, 25, 15, 25
    25, 15, 45, 25, 25, 15
    25, 15, 45, 30, 35
    25, 15, 45, 35, 15, 15
    25, 15, 45, 35, 30
    25, 15, 45, 50, 15
    25, 15, 50, 15, 15, 15, 15
    25, 15, 50, 15, 15, 30
    25, 15, 50, 15, 30, 15
    25, 15, 50, 15, 45
    25, 15, 50, 25, 35
    25, 15, 50, 30, 15, 15
    25, 15, 50, 30, 30
    25, 15, 50, 35, 25
    25, 15, 50, 45, 15
    25, 15, 55, 15, 15, 25
    25, 15, 55, 15, 25, 15
    25, 15, 55, 25, 15, 15
    25, 15, 55, 25, 30
    25, 15, 55, 30, 25
    25, 15, 55, 55
    25, 15, 70, 15, 25
    25, 15, 70, 25, 15
    25, 15, 80, 15, 15
    25, 15, 80, 30
    25, 25, 15, 15, 15, 15, 15, 25
    25, 25, 15, 15, 15, 15, 25, 15
    25, 25, 15, 15, 15, 25, 15, 15
    25, 25, 15, 15, 15, 25, 30
    25, 25, 15, 15, 15, 30, 25
    25, 25, 15, 15, 15, 55
    25, 25, 15, 15, 25, 15, 15, 15
    25, 25, 15, 15, 25, 15, 30
    25, 25, 15, 15, 25, 30, 15
    25, 25, 15, 15, 25, 45
    25, 25, 15, 15, 30, 15, 25
    25, 25, 15, 15, 30, 25, 15
    25, 25, 15, 15, 35, 35
    25, 25, 15, 15, 45, 25
    25, 25, 15, 15, 55, 15
    25, 25, 15, 15, 70
    25, 25, 15, 25, 15, 15, 15, 15
    25, 25, 15, 25, 15, 15, 30
    25, 25, 15, 25, 15, 30, 15
    25, 25, 15, 25, 15, 45
    25, 25, 15, 25, 25, 35
    25, 25, 15, 25, 30, 15, 15
    25, 25, 15, 25, 30, 30
    25, 25, 15, 25, 35, 25
    25, 25, 15, 25, 45, 15
    25, 25, 15, 30, 15, 15, 25
    25, 25, 15, 30, 15, 25, 15
    25, 25, 15, 30, 25, 15, 15
    25, 25, 15, 30, 25, 30
    25, 25, 15, 30, 30, 25
    25, 25, 15, 30, 55
    25, 25, 15, 35, 15, 35
    25, 25, 15, 35, 25, 25
    25, 25, 15, 35, 35, 15
    25, 25, 15, 35, 50
    25, 25, 15, 45, 15, 25
    25, 25, 15, 45, 25, 15
    25, 25, 15, 50, 35
    25, 25, 15, 55, 15, 15
    25, 25, 15, 55, 30
    25, 25, 15, 70, 15
    25, 25, 25, 15, 15, 15, 15, 15
    25, 25, 25, 15, 15, 15, 30
    25, 25, 25, 15, 15, 30, 15
    25, 25, 25, 15, 15, 45
    25, 25, 25, 15, 25, 35
    25, 25, 25, 15, 30, 15, 15
    25, 25, 25, 15, 30, 30
    25, 25, 25, 15, 35, 25
    25, 25, 25, 15, 45, 15
    25, 25, 25, 25, 15, 35
    25, 25, 25, 25, 25, 25
    25, 25, 25, 25, 35, 15
    25, 25, 25, 25, 50
    25, 25, 25, 30, 15, 15, 15
    25, 25, 25, 30, 15, 30
    25, 25, 25, 30, 30, 15
    25, 25, 25, 30, 45
    25, 25, 25, 35, 15, 25
    25, 25, 25, 35, 25, 15
    25, 25, 25, 45, 15, 15
    25, 25, 25, 45, 30
    25, 25, 25, 50, 25
    25, 25, 30, 15, 15, 15, 25
    25, 25, 30, 15, 15, 25, 15
    25, 25, 30, 15, 25, 15, 15
    25, 25, 30, 15, 25, 30
    25, 25, 30, 15, 30, 25
    25, 25, 30, 15, 55
    25, 25, 30, 25, 15, 15, 15
    25, 25, 30, 25, 15, 30
    25, 25, 30, 25, 30, 15
    25, 25, 30, 25, 45
    25, 25, 30, 30, 15, 25
    25, 25, 30, 30, 25, 15
    25, 25, 30, 35, 35
    25, 25, 30, 45, 25
    25, 25, 30, 55, 15
    25, 25, 30, 70
    25, 25, 35, 15, 15, 35
    25, 25, 35, 15, 25, 25
    25, 25, 35, 15, 35, 15
    25, 25, 35, 15, 50
    25, 25, 35, 25, 15, 25
    25, 25, 35, 25, 25, 15
    25, 25, 35, 30, 35
    25, 25, 35, 35, 15, 15
    25, 25, 35, 35, 30
    25, 25, 35, 50, 15
    25, 25, 45, 15, 15, 25
    25, 25, 45, 15, 25, 15
    25, 25, 45, 25, 15, 15
    25, 25, 45, 25, 30
    25, 25, 45, 30, 25
    25, 25, 45, 55
    25, 25, 50, 15, 35
    25, 25, 50, 25, 25
    25, 25, 50, 35, 15
    25, 25, 50, 50
    25, 25, 55, 15, 15, 15
    25, 25, 55, 15, 30
    25, 25, 55, 30, 15
    25, 25, 55, 45
    25, 25, 70, 15, 15
    25, 25, 70, 30
    25, 25, 100
    25, 30, 15, 15, 15, 15, 35
    25, 30, 15, 15, 15, 25, 25
    25, 30, 15, 15, 15, 35, 15
    25, 30, 15, 15, 15, 50
    25, 30, 15, 15, 25, 15, 25
    25, 30, 15, 15, 25, 25, 15
    25, 30, 15, 15, 30, 35
    25, 30, 15, 15, 35, 15, 15
    25, 30, 15, 15, 35, 30
    25, 30, 15, 15, 50, 15
    25, 30, 15, 25, 15, 15, 25
    25, 30, 15, 25, 15, 25, 15
    25, 30, 15, 25, 25, 15, 15
    25, 30, 15, 25, 25, 30
    25, 30, 15, 25, 30, 25
    25, 30, 15, 25, 55
    25, 30, 15, 30, 15, 35
    25, 30, 15, 30, 25, 25
    25, 30, 15, 30, 35, 15
    25, 30, 15, 30, 50
    25, 30, 15, 35, 15, 15, 15
    25, 30, 15, 35, 15, 30
    25, 30, 15, 35, 30, 15
    25, 30, 15, 35, 45
    25, 30, 15, 45, 35
    25, 30, 15, 50, 15, 15
    25, 30, 15, 50, 30
    25, 30, 15, 55, 25
    25, 30, 15, 80
    25, 30, 25, 15, 15, 15, 25
    25, 30, 25, 15, 15, 25, 15
    25, 30, 25, 15, 25, 15, 15
    25, 30, 25, 15, 25, 30
    25, 30, 25, 15, 30, 25
    25, 30, 25, 15, 55
    25, 30, 25, 25, 15, 15, 15
    25, 30, 25, 25, 15, 30
    25, 30, 25, 25, 30, 15
    25, 30, 25, 25, 45
    25, 30, 25, 30, 15, 25
    25, 30, 25, 30, 25, 15
    25, 30, 25, 35, 35
    25, 30, 25, 45, 25
    25, 30, 25, 55, 15
    25, 30, 25, 70
    25, 30, 30, 15, 15, 35
    25, 30, 30, 15, 25, 25
    25, 30, 30, 15, 35, 15
    25, 30, 30, 15, 50
    25, 30, 30, 25, 15, 25
    25, 30, 30, 25, 25, 15
    25, 30, 30, 30, 35
    25, 30, 30, 35, 15, 15
    25, 30, 30, 35, 30
    25, 30, 30, 50, 15
    25, 30, 35, 15, 15, 15, 15
    25, 30, 35, 15, 15, 30
    25, 30, 35, 15, 30, 15
    25, 30, 35, 15, 45
    25, 30, 35, 25, 35
    25, 30, 35, 30, 15, 15
    25, 30, 35, 30, 30
    25, 30, 35, 35, 25
    25, 30, 35, 45, 15
    25, 30, 45, 15, 35
    25, 30, 45, 25, 25
    25, 30, 45, 35, 15
    25, 30, 45, 50
    25, 30, 50, 15, 15, 15
    25, 30, 50, 15, 30
    25, 30, 50, 30, 15
    25, 30, 50, 45
    25, 30, 55, 15, 25
    25, 30, 55, 25, 15
    25, 30, 70, 25
    25, 30, 80, 15
    25, 35, 15, 15, 15, 15, 15, 15
    25, 35, 15, 15, 15, 15, 30
    25, 35, 15, 15, 15, 30, 15
    25, 35, 15, 15, 15, 45
    25, 35, 15, 15, 25, 35
    25, 35, 15, 15, 30, 15, 15
    25, 35, 15, 15, 30, 30
    25, 35, 15, 15, 35, 25
    25, 35, 15, 15, 45, 15
    25, 35, 15, 25, 15, 35
    25, 35, 15, 25, 25, 25
    25, 35, 15, 25, 35, 15
    25, 35, 15, 25, 50
    25, 35, 15, 30, 15, 15, 15
    25, 35, 15, 30, 15, 30
    25, 35, 15, 30, 30, 15
    25, 35, 15, 30, 45
    25, 35, 15, 35, 15, 25
    25, 35, 15, 35, 25, 15
    25, 35, 15, 45, 15, 15
    25, 35, 15, 45, 30
    25, 35, 15, 50, 25
    25, 35, 25, 15, 15, 35
    25, 35, 25, 15, 25, 25
    25, 35, 25, 15, 35, 15
    25, 35, 25, 15, 50
    25, 35, 25, 25, 15, 25
    25, 35, 25, 25, 25, 15
    25, 35, 25, 30, 35
    25, 35, 25, 35, 15, 15
    25, 35, 25, 35, 30
    25, 35, 25, 50, 15
    25, 35, 30, 15, 15, 15, 15
    25, 35, 30, 15, 15, 30
    25, 35, 30, 15, 30, 15
    25, 35, 30, 15, 45
    25, 35, 30, 25, 35
    25, 35, 30, 30, 15, 15
    25, 35, 30, 30, 30
    25, 35, 30, 35, 25
    25, 35, 30, 45, 15
    25, 35, 35, 15, 15, 25
    25, 35, 35, 15, 25, 15
    25, 35, 35, 25, 15, 15
    25, 35, 35, 25, 30
    25, 35, 35, 30, 25
    25, 35, 35, 55
    25, 35, 45, 15, 15, 15
    25, 35, 45, 15, 30
    25, 35, 45, 30, 15
    25, 35, 45, 45
    25, 35, 50, 15, 25
    25, 35, 50, 25, 15
    25, 35, 55, 35
    25, 45, 15, 15, 15, 35
    25, 45, 15, 15, 25, 25
    25, 45, 15, 15, 35, 15
    25, 45, 15, 15, 50
    25, 45, 15, 25, 15, 25
    25, 45, 15, 25, 25, 15
    25, 45, 15, 30, 35
    25, 45, 15, 35, 15, 15
    25, 45, 15, 35, 30
    25, 45, 15, 50, 15
    25, 45, 25, 15, 15, 25
    25, 45, 25, 15, 25, 15
    25, 45, 25, 25, 15, 15
    25, 45, 25, 25, 30
    25, 45, 25, 30, 25
    25, 45, 25, 55
    25, 45, 30, 15, 35
    25, 45, 30, 25, 25
    25, 45, 30, 35, 15
    25, 45, 30, 50
    25, 45, 35, 15, 15, 15
    25, 45, 35, 15, 30
    25, 45, 35, 30, 15
    25, 45, 35, 45
    25, 45, 45, 35
    25, 45, 50, 15, 15
    25, 45, 50, 30
    25, 45, 55, 25
    25, 45, 80
    25, 50, 15, 15, 15, 15, 15
    25, 50, 15, 15, 15, 30
    25, 50, 15, 15, 30, 15
    25, 50, 15, 15, 45
    25, 50, 15, 25, 35
    25, 50, 15, 30, 15, 15
    25, 50, 15, 30, 30
    25, 50, 15, 35, 25
    25, 50, 15, 45, 15
    25, 50, 25, 15, 35
    25, 50, 25, 25, 25
    25, 50, 25, 35, 15
    25, 50, 25, 50
    25, 50, 30, 15, 15, 15
    25, 50, 30, 15, 30
    25, 50, 30, 30, 15
    25, 50, 30, 45
    25, 50, 35, 15, 25
    25, 50, 35, 25, 15
    25, 50, 45, 15, 15
    25, 50, 45, 30
    25, 50, 50, 25
    25, 55, 15, 15, 15, 25
    25, 55, 15, 15, 25, 15
    25, 55, 15, 25, 15, 15
    25, 55, 15, 25, 30
    25, 55, 15, 30, 25
    25, 55, 15, 55
    25, 55, 25, 15, 15, 15
    25, 55, 25, 15, 30
    25, 55, 25, 30, 15
    25, 55, 25, 45
    25, 55, 30, 15, 25
    25, 55, 30, 25, 15
    25, 55, 35, 35
    25, 55, 45, 25
    25, 55, 55, 15
    25, 55, 70
    25, 70, 15, 15, 25
    25, 70, 15, 25, 15
    25, 70, 25, 15, 15
    25, 70, 25, 30
    25, 70, 30, 25
    25, 70, 55
    25, 80, 15, 15, 15
    25, 80, 15, 30
    25, 80, 30, 15
    25, 80, 45
    25, 100, 25
    30, 15, 15, 15, 15, 15, 15, 15, 15
    30, 15, 15, 15, 15, 15, 15, 30
    30, 15, 15, 15, 15, 15, 30, 15
    30, 15, 15, 15, 15, 15, 45
    30, 15, 15, 15, 15, 25, 35
    30, 15, 15, 15, 15, 30, 15, 15
    30, 15, 15, 15, 15, 30, 30
    30, 15, 15, 15, 15, 35, 25
    30, 15, 15, 15, 15, 45, 15
    30, 15, 15, 15, 25, 15, 35
    30, 15, 15, 15, 25, 25, 25
    30, 15, 15, 15, 25, 35, 15
    30, 15, 15, 15, 25, 50
    30, 15, 15, 15, 30, 15, 15, 15
    30, 15, 15, 15, 30, 15, 30
    30, 15, 15, 15, 30, 30, 15
    30, 15, 15, 15, 30, 45
    30, 15, 15, 15, 35, 15, 25
    30, 15, 15, 15, 35, 25, 15
    30, 15, 15, 15, 45, 15, 15
    30, 15, 15, 15, 45, 30
    30, 15, 15, 15, 50, 25
    30, 15, 15, 25, 15, 15, 35
    30, 15, 15, 25, 15, 25, 25
    30, 15, 15, 25, 15, 35, 15
    30, 15, 15, 25, 15, 50
    30, 15, 15, 25, 25, 15, 25
    30, 15, 15, 25, 25, 25, 15
    30, 15, 15, 25, 30, 35
    30, 15, 15, 25, 35, 15, 15
    30, 15, 15, 25, 35, 30
    30, 15, 15, 25, 50, 15
    30, 15, 15, 30, 15, 15, 15, 15
    30, 15, 15, 30, 15, 15, 30
    30, 15, 15, 30, 15, 30, 15
    30, 15, 15, 30, 15, 45
    30, 15, 15, 30, 25, 35
    30, 15, 15, 30, 30, 15, 15
    30, 15, 15, 30, 30, 30
    30, 15, 15, 30, 35, 25
    30, 15, 15, 30, 45, 15
    30, 15, 15, 35, 15, 15, 25
    30, 15, 15, 35, 15, 25, 15
    30, 15, 15, 35, 25, 15, 15
    30, 15, 15, 35, 25, 30
    30, 15, 15, 35, 30, 25
    30, 15, 15, 35, 55
    30, 15, 15, 45, 15, 15, 15
    30, 15, 15, 45, 15, 30
    30, 15, 15, 45, 30, 15
    30, 15, 15, 45, 45
    30, 15, 15, 50, 15, 25
    30, 15, 15, 50, 25, 15
    30, 15, 15, 55, 35
    30, 15, 25, 15, 15, 15, 35
    30, 15, 25, 15, 15, 25, 25
    30, 15, 25, 15, 15, 35, 15
    30, 15, 25, 15, 15, 50
    30, 15, 25, 15, 25, 15, 25
    30, 15, 25, 15, 25, 25, 15
    30, 15, 25, 15, 30, 35
    30, 15, 25, 15, 35, 15, 15
    30, 15, 25, 15, 35, 30
    30, 15, 25, 15, 50, 15
    30, 15, 25, 25, 15, 15, 25
    30, 15, 25, 25, 15, 25, 15
    30, 15, 25, 25, 25, 15, 15
    30, 15, 25, 25, 25, 30
    30, 15, 25, 25, 30, 25
    30, 15, 25, 25, 55
    30, 15, 25, 30, 15, 35
    30, 15, 25, 30, 25, 25
    30, 15, 25, 30, 35, 15
    30, 15, 25, 30, 50
    30, 15, 25, 35, 15, 15, 15
    30, 15, 25, 35, 15, 30
    30, 15, 25, 35, 30, 15
    30, 15, 25, 35, 45
    30, 15, 25, 45, 35
    30, 15, 25, 50, 15, 15
    30, 15, 25, 50, 30
    30, 15, 25, 55, 25
    30, 15, 25, 80
    30, 15, 30, 15, 15, 15, 15, 15
    30, 15, 30, 15, 15, 15, 30
    30, 15, 30, 15, 15, 30, 15
    30, 15, 30, 15, 15, 45
    30, 15, 30, 15, 25, 35
    30, 15, 30, 15, 30, 15, 15
    30, 15, 30, 15, 30, 30
    30, 15, 30, 15, 35, 25
    30, 15, 30, 15, 45, 15
    30, 15, 30, 25, 15, 35
    30, 15, 30, 25, 25, 25
    30, 15, 30, 25, 35, 15
    30, 15, 30, 25, 50
    30, 15, 30, 30, 15, 15, 15
    30, 15, 30, 30, 15, 30
    30, 15, 30, 30, 30, 15
    30, 15, 30, 30, 45
    30, 15, 30, 35, 15, 25
    30, 15, 30, 35, 25, 15
    30, 15, 30, 45, 15, 15
    30, 15, 30, 45, 30
    30, 15, 30, 50, 25
    30, 15, 35, 15, 15, 15, 25
    30, 15, 35, 15, 15, 25, 15
    30, 15, 35, 15, 25, 15, 15
    30, 15, 35, 15, 25, 30
    30, 15, 35, 15, 30, 25
    30, 15, 35, 15, 55
    30, 15, 35, 25, 15, 15, 15
    30, 15, 35, 25, 15, 30
    30, 15, 35, 25, 30, 15
    30, 15, 35, 25, 45
    30, 15, 35, 30, 15, 25
    30, 15, 35, 30, 25, 15
    30, 15, 35, 35, 35
    30, 15, 35, 45, 25
    30, 15, 35, 55, 15
    30, 15, 35, 70
    30, 15, 45, 15, 15, 15, 15
    30, 15, 45, 15, 15, 30
    30, 15, 45, 15, 30, 15
    30, 15, 45, 15, 45
    30, 15, 45, 25, 35
    30, 15, 45, 30, 15, 15
    30, 15, 45, 30, 30
    30, 15, 45, 35, 25
    30, 15, 45, 45, 15
    30, 15, 50, 15, 15, 25
    30, 15, 50, 15, 25, 15
    30, 15, 50, 25, 15, 15
    30, 15, 50, 25, 30
    30, 15, 50, 30, 25
    30, 15, 50, 55
    30, 15, 55, 15, 35
    30, 15, 55, 25, 25
    30, 15, 55, 35, 15
    30, 15, 55, 50
    30, 15, 70, 35
    30, 15, 80, 25
    30, 25, 15, 15, 15, 15, 35
    30, 25, 15, 15, 15, 25, 25
    30, 25, 15, 15, 15, 35, 15
    30, 25, 15, 15, 15, 50
    30, 25, 15, 15, 25, 15, 25
    30, 25, 15, 15, 25, 25, 15
    30, 25, 15, 15, 30, 35
    30, 25, 15, 15, 35, 15, 15
    30, 25, 15, 15, 35, 30
    30, 25, 15, 15, 50, 15
    30, 25, 15, 25, 15, 15, 25
    30, 25, 15, 25, 15, 25, 15
    30, 25, 15, 25, 25, 15, 15
    30, 25, 15, 25, 25, 30
    30, 25, 15, 25, 30, 25
    30, 25, 15, 25, 55
    30, 25, 15, 30, 15, 35
    30, 25, 15, 30, 25, 25
    30, 25, 15, 30, 35, 15
    30, 25, 15, 30, 50
    30, 25, 15, 35, 15, 15, 15
    30, 25, 15, 35, 15, 30
    30, 25, 15, 35, 30, 15
    30, 25, 15, 35, 45
    30, 25, 15, 45, 35
    30, 25, 15, 50, 15, 15
    30, 25, 15, 50, 30
    30, 25, 15, 55, 25
    30, 25, 15, 80
    30, 25, 25, 15, 15, 15, 25
    30, 25, 25, 15, 15, 25, 15
    30, 25, 25, 15, 25, 15, 15
    30, 25, 25, 15, 25, 30
    30, 25, 25, 15, 30, 25
    30, 25, 25, 15, 55
    30, 25, 25, 25, 15, 15, 15
    30, 25, 25, 25, 15, 30
    30, 25, 25, 25, 30, 15
    30, 25, 25, 25, 45
    30, 25, 25, 30, 15, 25
    30, 25, 25, 30, 25, 15
    30, 25, 25, 35, 35
    30, 25, 25, 45, 25
    30, 25, 25, 55, 15
    30, 25, 25, 70
    30, 25, 30, 15, 15, 35
    30, 25, 30, 15, 25, 25
    30, 25, 30, 15, 35, 15
    30, 25, 30, 15, 50
    30, 25, 30, 25, 15, 25
    30, 25, 30, 25, 25, 15
    30, 25, 30, 30, 35
    30, 25, 30, 35, 15, 15
    30, 25, 30, 35, 30
    30, 25, 30, 50, 15
    30, 25, 35, 15, 15, 15, 15
    30, 25, 35, 15, 15, 30
    30, 25, 35, 15, 30, 15
    30, 25, 35, 15, 45
    30, 25, 35, 25, 35
    30, 25, 35, 30, 15, 15
    30, 25, 35, 30, 30
    30, 25, 35, 35, 25
    30, 25, 35, 45, 15
    30, 25, 45, 15, 35
    30, 25, 45, 25, 25
    30, 25, 45, 35, 15
    30, 25, 45, 50
    30, 25, 50, 15, 15, 15
    30, 25, 50, 15, 30
    30, 25, 50, 30, 15
    30, 25, 50, 45
    30, 25, 55, 15, 25
    30, 25, 55, 25, 15
    30, 25, 70, 25
    30, 25, 80, 15
    30, 30, 15, 15, 15, 15, 15, 15
    30, 30, 15, 15, 15, 15, 30
    30, 30, 15, 15, 15, 30, 15
    30, 30, 15, 15, 15, 45
    30, 30, 15, 15, 25, 35
    30, 30, 15, 15, 30, 15, 15
    30, 30, 15, 15, 30, 30
    30, 30, 15, 15, 35, 25
    30, 30, 15, 15, 45, 15
    30, 30, 15, 25, 15, 35
    30, 30, 15, 25, 25, 25
    30, 30, 15, 25, 35, 15
    30, 30, 15, 25, 50
    30, 30, 15, 30, 15, 15, 15
    30, 30, 15, 30, 15, 30
    30, 30, 15, 30, 30, 15
    30, 30, 15, 30, 45
    30, 30, 15, 35, 15, 25
    30, 30, 15, 35, 25, 15
    30, 30, 15, 45, 15, 15
    30, 30, 15, 45, 30
    30, 30, 15, 50, 25
    30, 30, 25, 15, 15, 35
    30, 30, 25, 15, 25, 25
    30, 30, 25, 15, 35, 15
    30, 30, 25, 15, 50
    30, 30, 25, 25, 15, 25
    30, 30, 25, 25, 25, 15
    30, 30, 25, 30, 35
    30, 30, 25, 35, 15, 15
    30, 30, 25, 35, 30
    30, 30, 25, 50, 15
    30, 30, 30, 15, 15, 15, 15
    30, 30, 30, 15, 15, 30
    30, 30, 30, 15, 30, 15
    30, 30, 30, 15, 45
    30, 30, 30, 25, 35
    30, 30, 30, 30, 15, 15
    30, 30, 30, 30, 30
    30, 30, 30, 35, 25
    30, 30, 30, 45, 15
    30, 30, 35, 15, 15, 25
    30, 30, 35, 15, 25, 15
    30, 30, 35, 25, 15, 15
    30, 30, 35, 25, 30
    30, 30, 35, 30, 25
    30, 30, 35, 55
    30, 30, 45, 15, 15, 15
    30, 30, 45, 15, 30
    30, 30, 45, 30, 15
    30, 30, 45, 45
    30, 30, 50, 15, 25
    30, 30, 50, 25, 15
    30, 30, 55, 35
    30, 35, 15, 15, 15, 15, 25
    30, 35, 15, 15, 15, 25, 15
    30, 35, 15, 15, 25, 15, 15
    30, 35, 15, 15, 25, 30
    30, 35, 15, 15, 30, 25
    30, 35, 15, 15, 55
    30, 35, 15, 25, 15, 15, 15
    30, 35, 15, 25, 15, 30
    30, 35, 15, 25, 30, 15
    30, 35, 15, 25, 45
    30, 35, 15, 30, 15, 25
    30, 35, 15, 30, 25, 15
    30, 35, 15, 35, 35
    30, 35, 15, 45, 25
    30, 35, 15, 55, 15
    30, 35, 15, 70
    30, 35, 25, 15, 15, 15, 15
    30, 35, 25, 15, 15, 30
    30, 35, 25, 15, 30, 15
    30, 35, 25, 15, 45
    30, 35, 25, 25, 35
    30, 35, 25, 30, 15, 15
    30, 35, 25, 30, 30
    30, 35, 25, 35, 25
    30, 35, 25, 45, 15
    30, 35, 30, 15, 15, 25
    30, 35, 30, 15, 25, 15
    30, 35, 30, 25, 15, 15
    30, 35, 30, 25, 30
    30, 35, 30, 30, 25
    30, 35, 30, 55
    30, 35, 35, 15, 35
    30, 35, 35, 25, 25
    30, 35, 35, 35, 15
    30, 35, 35, 50
    30, 35, 45, 15, 25
    30, 35, 45, 25, 15
    30, 35, 50, 35
    30, 35, 55, 15, 15
    30, 35, 55, 30
    30, 35, 70, 15
    30, 45, 15, 15, 15, 15, 15
    30, 45, 15, 15, 15, 30
    30, 45, 15, 15, 30, 15
    30, 45, 15, 15, 45
    30, 45, 15, 25, 35
    30, 45, 15, 30, 15, 15
    30, 45, 15, 30, 30
    30, 45, 15, 35, 25
    30, 45, 15, 45, 15
    30, 45, 25, 15, 35
    30, 45, 25, 25, 25
    30, 45, 25, 35, 15
    30, 45, 25, 50
    30, 45, 30, 15, 15, 15
    30, 45, 30, 15, 30
    30, 45, 30, 30, 15
    30, 45, 30, 45
    30, 45, 35, 15, 25
    30, 45, 35, 25, 15
    30, 45, 45, 15, 15
    30, 45, 45, 30
    30, 45, 50, 25
    30, 50, 15, 15, 15, 25
    30, 50, 15, 15, 25, 15
    30, 50, 15, 25, 15, 15
    30, 50, 15, 25, 30
    30, 50, 15, 30, 25
    30, 50, 15, 55
    30, 50, 25, 15, 15, 15
    30, 50, 25, 15, 30
    30, 50, 25, 30, 15
    30, 50, 25, 45
    30, 50, 30, 15, 25
    30, 50, 30, 25, 15
    30, 50, 35, 35
    30, 50, 45, 25
    30, 50, 55, 15
    30, 50, 70
    30, 55, 15, 15, 35
    30, 55, 15, 25, 25
    30, 55, 15, 35, 15
    30, 55, 15, 50
    30, 55, 25, 15, 25
    30, 55, 25, 25, 15
    30, 55, 30, 35
    30, 55, 35, 15, 15
    30, 55, 35, 30
    30, 55, 50, 15
    30, 70, 15, 35
    30, 70, 25, 25
    30, 70, 35, 15
    30, 70, 50
    30, 80, 15, 25
    30, 80, 25, 15
    35, 15, 15, 15, 15, 15, 15, 25
    35, 15, 15, 15, 15, 15, 25, 15
    35, 15, 15, 15, 15, 25, 15, 15
    35, 15, 15, 15, 15, 25, 30
    35, 15, 15, 15, 15, 30, 25
    35, 15, 15, 15, 15, 55
    35, 15, 15, 15, 25, 15, 15, 15
    35, 15, 15, 15, 25, 15, 30
    35, 15, 15, 15, 25, 30, 15
    35, 15, 15, 15, 25, 45
    35, 15, 15, 15, 30, 15, 25
    35, 15, 15, 15, 30, 25, 15
    35, 15, 15, 15, 35, 35
    35, 15, 15, 15, 45, 25
    35, 15, 15, 15, 55, 15
    35, 15, 15, 15, 70
    35, 15, 15, 25, 15, 15, 15, 15
    35, 15, 15, 25, 15, 15, 30
    35, 15, 15, 25, 15, 30, 15
    35, 15, 15, 25, 15, 45
    35, 15, 15, 25, 25, 35
    35, 15, 15, 25, 30, 15, 15
    35, 15, 15, 25, 30, 30
    35, 15, 15, 25, 35, 25
    35, 15, 15, 25, 45, 15
    35, 15, 15, 30, 15, 15, 25
    35, 15, 15, 30, 15, 25, 15
    35, 15, 15, 30, 25, 15, 15
    35, 15, 15, 30, 25, 30
    35, 15, 15, 30, 30, 25
    35, 15, 15, 30, 55
    35, 15, 15, 35, 15, 35
    35, 15, 15, 35, 25, 25
    35, 15, 15, 35, 35, 15
    35, 15, 15, 35, 50
    35, 15, 15, 45, 15, 25
    35, 15, 15, 45, 25, 15
    35, 15, 15, 50, 35
    35, 15, 15, 55, 15, 15
    35, 15, 15, 55, 30
    35, 15, 15, 70, 15
    35, 15, 25, 15, 15, 15, 15, 15
    35, 15, 25, 15, 15, 15, 30
    35, 15, 25, 15, 15, 30, 15
    35, 15, 25, 15, 15, 45
    35, 15, 25, 15, 25, 35
    35, 15, 25, 15, 30, 15, 15
    35, 15, 25, 15, 30, 30
    35, 15, 25, 15, 35, 25
    35, 15, 25, 15, 45, 15
    35, 15, 25, 25, 15, 35
    35, 15, 25, 25, 25, 25
    35, 15, 25, 25, 35, 15
    35, 15, 25, 25, 50
    35, 15, 25, 30, 15, 15, 15
    35, 15, 25, 30, 15, 30
    35, 15, 25, 30, 30, 15
    35, 15, 25, 30, 45
    35, 15, 25, 35, 15, 25
    35, 15, 25, 35, 25, 15
    35, 15, 25, 45, 15, 15
    35, 15, 25, 45, 30
    35, 15, 25, 50, 25
    35, 15, 30, 15, 15, 15, 25
    35, 15, 30, 15, 15, 25, 15
    35, 15, 30, 15, 25, 15, 15
    35, 15, 30, 15, 25, 30
    35, 15, 30, 15, 30, 25
    35, 15, 30, 15, 55
    35, 15, 30, 25, 15, 15, 15
    35, 15, 30, 25, 15, 30
    35, 15, 30, 25, 30, 15
    35, 15, 30, 25, 45
    35, 15, 30, 30, 15, 25
    35, 15, 30, 30, 25, 15
    35, 15, 30, 35, 35
    35, 15, 30, 45, 25
    35, 15, 30, 55, 15
    35, 15, 30, 70
    35, 15, 35, 15, 15, 35
    35, 15, 35, 15, 25, 25
    35, 15, 35, 15, 35, 15
    35, 15, 35, 15, 50
    35, 15, 35, 25, 15, 25
    35, 15, 35, 25, 25, 15
    35, 15, 35, 30, 35
    35, 15, 35, 35, 15, 15
    35, 15, 35, 35, 30
    35, 15, 35, 50, 15
    35, 15, 45, 15, 15, 25
    35, 15, 45, 15, 25, 15
    35, 15, 45, 25, 15, 15
    35, 15, 45, 25, 30
    35, 15, 45, 30, 25
    35, 15, 45, 55
    35, 15, 50, 15, 35
    35, 15, 50, 25, 25
    35, 15, 50, 35, 15
    35, 15, 50, 50
    35, 15, 55, 15, 15, 15
    35, 15, 55, 15, 30
    35, 15, 55, 30, 15
    35, 15, 55, 45
    35, 15, 70, 15, 15
    35, 15, 70, 30
    35, 15, 100
    35, 25, 15, 15, 15, 15, 15, 15
    35, 25, 15, 15, 15, 15, 30
    35, 25, 15, 15, 15, 30, 15
    35, 25, 15, 15, 15, 45
    35, 25, 15, 15, 25, 35
    35, 25, 15, 15, 30, 15, 15
    35, 25, 15, 15, 30, 30
    35, 25, 15, 15, 35, 25
    35, 25, 15, 15, 45, 15
    35, 25, 15, 25, 15, 35
    35, 25, 15, 25, 25, 25
    35, 25, 15, 25, 35, 15
    35, 25, 15, 25, 50
    35, 25, 15, 30, 15, 15, 15
    35, 25, 15, 30, 15, 30
    35, 25, 15, 30, 30, 15
    35, 25, 15, 30, 45
    35, 25, 15, 35, 15, 25
    35, 25, 15, 35, 25, 15
    35, 25, 15, 45, 15, 15
    35, 25, 15, 45, 30
    35, 25, 15, 50, 25
    35, 25, 25, 15, 15, 35
    35, 25, 25, 15, 25, 25
    35, 25, 25, 15, 35, 15
    35, 25, 25, 15, 50
    35, 25, 25, 25, 15, 25
    35, 25, 25, 25, 25, 15
    35, 25, 25, 30, 35
    35, 25, 25, 35, 15, 15
    35, 25, 25, 35, 30
    35, 25, 25, 50, 15
    35, 25, 30, 15, 15, 15, 15
    35, 25, 30, 15, 15, 30
    35, 25, 30, 15, 30, 15
    35, 25, 30, 15, 45
    35, 25, 30, 25, 35
    35, 25, 30, 30, 15, 15
    35, 25, 30, 30, 30
    35, 25, 30, 35, 25
    35, 25, 30, 45, 15
    35, 25, 35, 15, 15, 25
    35, 25, 35, 15, 25, 15
    35, 25, 35, 25, 15, 15
    35, 25, 35, 25, 30
    35, 25, 35, 30, 25
    35, 25, 35, 55
    35, 25, 45, 15, 15, 15
    35, 25, 45, 15, 30
    35, 25, 45, 30, 15
    35, 25, 45, 45
    35, 25, 50, 15, 25
    35, 25, 50, 25, 15
    35, 25, 55, 35
    35, 30, 15, 15, 15, 15, 25
    35, 30, 15, 15, 15, 25, 15
    35, 30, 15, 15, 25, 15, 15
    35, 30, 15, 15, 25, 30
    35, 30, 15, 15, 30, 25
    35, 30, 15, 15, 55
    35, 30, 15, 25, 15, 15, 15
    35, 30, 15, 25, 15, 30
    35, 30, 15, 25, 30, 15
    35, 30, 15, 25, 45
    35, 30, 15, 30, 15, 25
    35, 30, 15, 30, 25, 15
    35, 30, 15, 35, 35
    35, 30, 15, 45, 25
    35, 30, 15, 55, 15
    35, 30, 15, 70
    35, 30, 25, 15, 15, 15, 15
    35, 30, 25, 15, 15, 30
    35, 30, 25, 15, 30, 15
    35, 30, 25, 15, 45
    35, 30, 25, 25, 35
    35, 30, 25, 30, 15, 15
    35, 30, 25, 30, 30
    35, 30, 25, 35, 25
    35, 30, 25, 45, 15
    35, 30, 30, 15, 15, 25
    35, 30, 30, 15, 25, 15
    35, 30, 30, 25, 15, 15
    35, 30, 30, 25, 30
    35, 30, 30, 30, 25
    35, 30, 30, 55
    35, 30, 35, 15, 35
    35, 30, 35, 25, 25
    35, 30, 35, 35, 15
    35, 30, 35, 50
    35, 30, 45, 15, 25
    35, 30, 45, 25, 15
    35, 30, 50, 35
    35, 30, 55, 15, 15
    35, 30, 55, 30
    35, 30, 70, 15
    35, 35, 15, 15, 15, 35
    35, 35, 15, 15, 25, 25
    35, 35, 15, 15, 35, 15
    35, 35, 15, 15, 50
    35, 35, 15, 25, 15, 25
    35, 35, 15, 25, 25, 15
    35, 35, 15, 30, 35
    35, 35, 15, 35, 15, 15
    35, 35, 15, 35, 30
    35, 35, 15, 50, 15
    35, 35, 25, 15, 15, 25
    35, 35, 25, 15, 25, 15
    35, 35, 25, 25, 15, 15
    35, 35, 25, 25, 30
    35, 35, 25, 30, 25
    35, 35, 25, 55
    35, 35, 30, 15, 35
    35, 35, 30, 25, 25
    35, 35, 30, 35, 15
    35, 35, 30, 50
    35, 35, 35, 15, 15, 15
    35, 35, 35, 15, 30
    35, 35, 35, 30, 15
    35, 35, 35, 45
    35, 35, 45, 35
    35, 35, 50, 15, 15
    35, 35, 50, 30
    35, 35, 55, 25
    35, 35, 80
    35, 45, 15, 15, 15, 25
    35, 45, 15, 15, 25, 15
    35, 45, 15, 25, 15, 15
    35, 45, 15, 25, 30
    35, 45, 15, 30, 25
    35, 45, 15, 55
    35, 45, 25, 15, 15, 15
    35, 45, 25, 15, 30
    35, 45, 25, 30, 15
    35, 45, 25, 45
    35, 45, 30, 15, 25
    35, 45, 30, 25, 15
    35, 45, 35, 35
    35, 45, 45, 25
    35, 45, 55, 15
    35, 45, 70
    35, 50, 15, 15, 35
    35, 50, 15, 25, 25
    35, 50, 15, 35, 15
    35, 50, 15, 50
    35, 50, 25, 15, 25
    35, 50, 25, 25, 15
    35, 50, 30, 35
    35, 50, 35, 15, 15
    35, 50, 35, 30
    35, 50, 50, 15
    35, 55, 15, 15, 15, 15
    35, 55, 15, 15, 30
    35, 55, 15, 30, 15
    35, 55, 15, 45
    35, 55, 25, 35
    35, 55, 30, 15, 15
    35, 55, 30, 30
    35, 55, 35, 25
    35, 55, 45, 15
    35, 70, 15, 15, 15
    35, 70, 15, 30
    35, 70, 30, 15
    35, 70, 45
    35, 80, 35
    35, 100, 15
    45, 15, 15, 15, 15, 15, 15, 15
    45, 15, 15, 15, 15, 15, 30
    45, 15, 15, 15, 15, 30, 15
    45, 15, 15, 15, 15, 45
    45, 15, 15, 15, 25, 35
    45, 15, 15, 15, 30, 15, 15
    45, 15, 15, 15, 30, 30
    45, 15, 15, 15, 35, 25
    45, 15, 15, 15, 45, 15
    45, 15, 15, 25, 15, 35
    45, 15, 15, 25, 25, 25
    45, 15, 15, 25, 35, 15
    45, 15, 15, 25, 50
    45, 15, 15, 30, 15, 15, 15
    45, 15, 15, 30, 15, 30
    45, 15, 15, 30, 30, 15
    45, 15, 15, 30, 45
    45, 15, 15, 35, 15, 25
    45, 15, 15, 35, 25, 15
    45, 15, 15, 45, 15, 15
    45, 15, 15, 45, 30
    45, 15, 15, 50, 25
    45, 15, 25, 15, 15, 35
    45, 15, 25, 15, 25, 25
    45, 15, 25, 15, 35, 15
    45, 15, 25, 15, 50
    45, 15, 25, 25, 15, 25
    45, 15, 25, 25, 25, 15
    45, 15, 25, 30, 35
    45, 15, 25, 35, 15, 15
    45, 15, 25, 35, 30
    45, 15, 25, 50, 15
    45, 15, 30, 15, 15, 15, 15
    45, 15, 30, 15, 15, 30
    45, 15, 30, 15, 30, 15
    45, 15, 30, 15, 45
    45, 15, 30, 25, 35
    45, 15, 30, 30, 15, 15
    45, 15, 30, 30, 30
    45, 15, 30, 35, 25
    45, 15, 30, 45, 15
    45, 15, 35, 15, 15, 25
    45, 15, 35, 15, 25, 15
    45, 15, 35, 25, 15, 15
    45, 15, 35, 25, 30
    45, 15, 35, 30, 25
    45, 15, 35, 55
    45, 15, 45, 15, 15, 15
    45, 15, 45, 15, 30
    45, 15, 45, 30, 15
    45, 15, 45, 45
    45, 15, 50, 15, 25
    45, 15, 50, 25, 15
    45, 15, 55, 35
    45, 25, 15, 15, 15, 35
    45, 25, 15, 15, 25, 25
    45, 25, 15, 15, 35, 15
    45, 25, 15, 15, 50
    45, 25, 15, 25, 15, 25
    45, 25, 15, 25, 25, 15
    45, 25, 15, 30, 35
    45, 25, 15, 35, 15, 15
    45, 25, 15, 35, 30
    45, 25, 15, 50, 15
    45, 25, 25, 15, 15, 25
    45, 25, 25, 15, 25, 15
    45, 25, 25, 25, 15, 15
    45, 25, 25, 25, 30
    45, 25, 25, 30, 25
    45, 25, 25, 55
    45, 25, 30, 15, 35
    45, 25, 30, 25, 25
    45, 25, 30, 35, 15
    45, 25, 30, 50
    45, 25, 35, 15, 15, 15
    45, 25, 35, 15, 30
    45, 25, 35, 30, 15
    45, 25, 35, 45
    45, 25, 45, 35
    45, 25, 50, 15, 15
    45, 25, 50, 30
    45, 25, 55, 25
    45, 25, 80
    45, 30, 15, 15, 15, 15, 15
    45, 30, 15, 15, 15, 30
    45, 30, 15, 15, 30, 15
    45, 30, 15, 15, 45
    45, 30, 15, 25, 35
    45, 30, 15, 30, 15, 15
    45, 30, 15, 30, 30
    45, 30, 15, 35, 25
    45, 30, 15, 45, 15
    45, 30, 25, 15, 35
    45, 30, 25, 25, 25
    45, 30, 25, 35, 15
    45, 30, 25, 50
    45, 30, 30, 15, 15, 15
    45, 30, 30, 15, 30
    45, 30, 30, 30, 15
    45, 30, 30, 45
    45, 30, 35, 15, 25
    45, 30, 35, 25, 15
    45, 30, 45, 15, 15
    45, 30, 45, 30
    45, 30, 50, 25
    45, 35, 15, 15, 15, 25
    45, 35, 15, 15, 25, 15
    45, 35, 15, 25, 15, 15
    45, 35, 15, 25, 30
    45, 35, 15, 30, 25
    45, 35, 15, 55
    45, 35, 25, 15, 15, 15
    45, 35, 25, 15, 30
    45, 35, 25, 30, 15
    45, 35, 25, 45
    45, 35, 30, 15, 25
    45, 35, 30, 25, 15
    45, 35, 35, 35
    45, 35, 45, 25
    45, 35, 55, 15
    45, 35, 70
    45, 45, 15, 15, 15, 15
    45, 45, 15, 15, 30
    45, 45, 15, 30, 15
    45, 45, 15, 45
    45, 45, 25, 35
    45, 45, 30, 15, 15
    45, 45, 30, 30
    45, 45, 35, 25
    45, 45, 45, 15
    45, 50, 15, 15, 25
    45, 50, 15, 25, 15
    45, 50, 25, 15, 15
    45, 50, 25, 30
    45, 50, 30, 25
    45, 50, 55
    45, 55, 15, 35
    45, 55, 25, 25
    45, 55, 35, 15
    45, 55, 50
    45, 70, 35
    45, 80, 25
    50, 15, 15, 15, 15, 15, 25
    50, 15, 15, 15, 15, 25, 15
    50, 15, 15, 15, 25, 15, 15
    50, 15, 15, 15, 25, 30
    50, 15, 15, 15, 30, 25
    50, 15, 15, 15, 55
    50, 15, 15, 25, 15, 15, 15
    50, 15, 15, 25, 15, 30
    50, 15, 15, 25, 30, 15
    50, 15, 15, 25, 45
    50, 15, 15, 30, 15, 25
    50, 15, 15, 30, 25, 15
    50, 15, 15, 35, 35
    50, 15, 15, 45, 25
    50, 15, 15, 55, 15
    50, 15, 15, 70
    50, 15, 25, 15, 15, 15, 15
    50, 15, 25, 15, 15, 30
    50, 15, 25, 15, 30, 15
    50, 15, 25, 15, 45
    50, 15, 25, 25, 35
    50, 15, 25, 30, 15, 15
    50, 15, 25, 30, 30
    50, 15, 25, 35, 25
    50, 15, 25, 45, 15
    50, 15, 30, 15, 15, 25
    50, 15, 30, 15, 25, 15
    50, 15, 30, 25, 15, 15
    50, 15, 30, 25, 30
    50, 15, 30, 30, 25
    50, 15, 30, 55
    50, 15, 35, 15, 35
    50, 15, 35, 25, 25
    50, 15, 35, 35, 15
    50, 15, 35, 50
    50, 15, 45, 15, 25
    50, 15, 45, 25, 15
    50, 15, 50, 35
    50, 15, 55, 15, 15
    50, 15, 55, 30
    50, 15, 70, 15
    50, 25, 15, 15, 15, 15, 15
    50, 25, 15, 15, 15, 30
    50, 25, 15, 15, 30, 15
    50, 25, 15, 15, 45
    50, 25, 15, 25, 35
    50, 25, 15, 30, 15, 15
    50, 25, 15, 30, 30
    50, 25, 15, 35, 25
    50, 25, 15, 45, 15
    50, 25, 25, 15, 35
    50, 25, 25, 25, 25
    50, 25, 25, 35, 15
    50, 25, 25, 50
    50, 25, 30, 15, 15, 15
    50, 25, 30, 15, 30
    50, 25, 30, 30, 15
    50, 25, 30, 45
    50, 25, 35, 15, 25
    50, 25, 35, 25, 15
    50, 25, 45, 15, 15
    50, 25, 45, 30
    50, 25, 50, 25
    50, 30, 15, 15, 15, 25
    50, 30, 15, 15, 25, 15
    50, 30, 15, 25, 15, 15
    50, 30, 15, 25, 30
    50, 30, 15, 30, 25
    50, 30, 15, 55
    50, 30, 25, 15, 15, 15
    50, 30, 25, 15, 30
    50, 30, 25, 30, 15
    50, 30, 25, 45
    50, 30, 30, 15, 25
    50, 30, 30, 25, 15
    50, 30, 35, 35
    50, 30, 45, 25
    50, 30, 55, 15
    50, 30, 70
    50, 35, 15, 15, 35
    50, 35, 15, 25, 25
    50, 35, 15, 35, 15
    50, 35, 15, 50
    50, 35, 25, 15, 25
    50, 35, 25, 25, 15
    50, 35, 30, 35
    50, 35, 35, 15, 15
    50, 35, 35, 30
    50, 35, 50, 15
    50, 45, 15, 15, 25
    50, 45, 15, 25, 15
    50, 45, 25, 15, 15
    50, 45, 25, 30
    50, 45, 30, 25
    50, 45, 55
    50, 50, 15, 35
    50, 50, 25, 25
    50, 50, 35, 15
    50, 50, 50
    50, 55, 15, 15, 15
    50, 55, 15, 30
    50, 55, 30, 15
    50, 55, 45
    50, 70, 15, 15
    50, 70, 30
    50, 100
    55, 15, 15, 15, 15, 35
    55, 15, 15, 15, 25, 25
    55, 15, 15, 15, 35, 15
    55, 15, 15, 15, 50
    55, 15, 15, 25, 15, 25
    55, 15, 15, 25, 25, 15
    55, 15, 15, 30, 35
    55, 15, 15, 35, 15, 15
    55, 15, 15, 35, 30
    55, 15, 15, 50, 15
    55, 15, 25, 15, 15, 25
    55, 15, 25, 15, 25, 15
    55, 15, 25, 25, 15, 15
    55, 15, 25, 25, 30
    55, 15, 25, 30, 25
    55, 15, 25, 55
    55, 15, 30, 15, 35
    55, 15, 30, 25, 25
    55, 15, 30, 35, 15
    55, 15, 30, 50
    55, 15, 35, 15, 15, 15
    55, 15, 35, 15, 30
    55, 15, 35, 30, 15
    55, 15, 35, 45
    55, 15, 45, 35
    55, 15, 50, 15, 15
    55, 15, 50, 30
    55, 15, 55, 25
    55, 15, 80
    55, 25, 15, 15, 15, 25
    55, 25, 15, 15, 25, 15
    55, 25, 15, 25, 15, 15
    55, 25, 15, 25, 30
    55, 25, 15, 30, 25
    55, 25, 15, 55
    55, 25, 25, 15, 15, 15
    55, 25, 25, 15, 30
    55, 25, 25, 30, 15
    55, 25, 25, 45
    55, 25, 30, 15, 25
    55, 25, 30, 25, 15
    55, 25, 35, 35
    55, 25, 45, 25
    55, 25, 55, 15
    55, 25, 70
    55, 30, 15, 15, 35
    55, 30, 15, 25, 25
    55, 30, 15, 35, 15
    55, 30, 15, 50
    55, 30, 25, 15, 25
    55, 30, 25, 25, 15
    55, 30, 30, 35
    55, 30, 35, 15, 15
    55, 30, 35, 30
    55, 30, 50, 15
    55, 35, 15, 15, 15, 15
    55, 35, 15, 15, 30
    55, 35, 15, 30, 15
    55, 35, 15, 45
    55, 35, 25, 35
    55, 35, 30, 15, 15
    55, 35, 30, 30
    55, 35, 35, 25
    55, 35, 45, 15
    55, 45, 15, 35
    55, 45, 25, 25
    55, 45, 35, 15
    55, 45, 50
    55, 50, 15, 15, 15
    55, 50, 15, 30
    55, 50, 30, 15
    55, 50, 45
    55, 55, 15, 25
    55, 55, 25, 15
    55, 70, 25
    55, 80, 15
    70, 15, 15, 15, 35
    70, 15, 15, 25, 25
    70, 15, 15, 35, 15
    70, 15, 15, 50
    70, 15, 25, 15, 25
    70, 15, 25, 25, 15
    70, 15, 30, 35
    70, 15, 35, 15, 15
    70, 15, 35, 30
    70, 15, 50, 15
    70, 25, 15, 15, 25
    70, 25, 15, 25, 15
    70, 25, 25, 15, 15
    70, 25, 25, 30
    70, 25, 30, 25
    70, 25, 55
    70, 30, 15, 35
    70, 30, 25, 25
    70, 30, 35, 15
    70, 30, 50
    70, 35, 15, 15, 15
    70, 35, 15, 30
    70, 35, 30, 15
    70, 35, 45
    70, 45, 35
    70, 50, 15, 15
    70, 50, 30
    70, 55, 25
    70, 80
    80, 15, 15, 15, 25
    80, 15, 15, 25, 15
    80, 15, 25, 15, 15
    80, 15, 25, 30
    80, 15, 30, 25
    80, 15, 55
    80, 25, 15, 15, 15
    80, 25, 15, 30
    80, 25, 30, 15
    80, 25, 45
    80, 30, 15, 25
    80, 30, 25, 15
    80, 35, 35
    80, 45, 25
    80, 55, 15
    80, 70
    100, 15, 35
    100, 25, 25
    100, 35, 15
    100, 50
    Press any key to continue . . .

    点赞 评论 复制链接分享
  • qq_17806019 qq_17806019 3年前

    提供一下我的思路:首先将数组做一个排序,按由大及小的相加来计算是否为目标值,若和值大于目标值,则执行下一趟循环,若和值等于目标值则计数器加一,若和值小于目标值则执行迭代操作,代码如下(默认数组已经排序)
    int GetSum(int[] arry,int start,int lastdata,int target){
    int count=0;
    for(int i=start;i int temp_lastdata=lastdata+arry[i];
    if(temp_lastdata>target){
    continue;
    }else if (temp_lastdata==target) {
    count++;
    }else {

                count=count+GetSum(arry, i, temp_lastdata, target);
            }
        }
        return count;
    }
    
    点赞 评论 复制链接分享