public void labelGrids(int k) throws FileNotFoundException {
    // Initializing the global arraylist
    trainingData = new ArrayList<>();

    int count = 0;
    Scanner input = new Scanner(new File("data.txt"));
    int noOfRows = input.nextInt();
    int noOfColumns = input.nextInt();
    input.nextLine();
    String[] row;

    for (int i = 0; i < noOfRows; i++) {
      row = input.nextLine().split(" ");
      for (int j = 0; j < row.length; j++) {
        if (row[j].equals("+")) {
          TrainingExample newExample = new TrainingExample();
          newExample.x2 = i;
          newExample.x1 = j;
          newExample.y = '+';
          newExample.ex_no = count;
          count++;
          trainingData.add(newExample);
        } else if (row[j].equals("-")) {
          TrainingExample newExample = new TrainingExample();
          newExample.x2 = i;
          newExample.x1 = j;
          newExample.y = '-';
          newExample.ex_no = count;
          count++;
          trainingData.add(newExample);
        } else {
          TrainingExample newExample = new TrainingExample();
          newExample.x2 = i;
          newExample.x1 = j;
          newExample.y = '.';
          newExample.ex_no = count;
          count++;
          trainingData.add(newExample);
        }
      }
    }

    for (int i = 0; i < trainingData.size(); i++) {
      kNN(trainingData, i, 1, k, false, true);
    }

    labelPrint(trainingData, noOfRows, noOfColumns);
  }