求大神解答。。我这个做法哪里没对

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            int num = in.nextInt();
            for (int i = 0; i < num; i++) {
                int k = in.nextInt();
                int m = in.nextInt();
                int max=30/(k+1);
                if (m == 0) 
                    System.out.println(max);
               else {
                    int result = m;        
                    List<Integer> a = new ArrayList<Integer>(m);
                    for (int j = 0; j < m; j++) {
                        a.add(in.nextInt());
                    }
                    if (k == 0)
                        System.out.println(30);
                    else {
                        int teml=(a.get(0)-1)/(k+1);
                        if(teml>=1)
                          result=result+teml;
                        int temr=(30-a.get(a.size()-1))/(k+1);
                        if(temr>=1)
                              result=result+temr;    
                        for(int r=0;r<a.size()-1;r++)
                            {                
                               int tem=(a.get(r+1)-a.get(r))/(k+1);
                               if(tem>1)
                                   result=result+tem-1;                                                                                                            
                            }
                        System.out.println(result);
                    }
                    
                }

            }

        }
    }