import java.util.*;
public class Solution 
{
    public static void main (String[] args)
    {
        [0,2->4,6,8->9]
        int[] nums = new int[]{0,2,3,4,6,8,9};   //Test case 1    PASS             Junction 2,6,10,11,12,3,5,14,13,4
        //int[] nums = new int[]{-1};   //Test case 2             PASS             Junction 1
        //int[] nums = new int[]{0};   //Test case 3       PASS                    Junction 1
        //int[] nums = new int[]{0,1,2,4,5,7};   //Test case 4    PASS            Junction 2,3,5,6,10,14,9,7
        
        //For some reason, no test cases above went through junction 8. All others are valid.
        //So I devised a new test case below and it passes through it...
        
        //new test case:
        //int[] nums = new int[]{0,1,2,4,5,7,8,10,14};   //Test case 4    PASS            //Junction 2,3,5,6,10,14,7,8
        //int[] nums = new int[]{0,1,2,4,5,7,8,10,14,17,19,23,24,25,26,35,42,43,44};        //Junction 2,3,5,6,10,14,7,8,11,13,16
        
        //int[] nums = new int[]{60,59,57,55,51,50,49,48,47,42,35,26,25,24,23,19,17,14,10,8,7,5,4,2,0};
        
        System.out.println(summaryRanges(nums));
    }
    
    public static List<String> summaryRanges(int[] nums) 
    {
        List<String> sm = new ArrayList<>();
        int counter = 0;
        String start="";
        String end="";

        if (nums.length==1)
        {
            System.out.println("JUNCTION 1");
            sm.add(String.valueOf(nums[0]));
            System.out.println("1Writing Standalone: " + nums[0]);
            return sm;
        }

        for (int k=0; k<nums.length-1;k++)
        {
            System.out.println("value k: " + k);
            System.out.println("length nums: " + nums.length);
            System.out.println("value of counter: " + counter);

            if (k==0)
            {
                System.out.println("JUNCTION 2");
                start=String.valueOf(nums[k]);
            }
            //if the next element is ascending
            if ((nums[k])==(nums[k+1]+1))
            {
                end=String.valueOf(nums[k]);
            }
            else
            {
                if (k==(nums.length-2))
                {
                    sm.add(String.valueOf(start));
                    end=String.valueOf(nums[k+1]);
                }
                else
                {
                    end=String.valueOf(nums[k]);
                    sm.add(start+"->"+end);
                    start=String.valueOf(nums[k+1]);
                }
            }
        }
        return sm;
}
}