import java.util.*;

class {class_name} {{

    private int nNeighbors;
    private int nTemplates;
    private int nClasses;
    private double power;
    private double[][] X;
    private int[] y;

    public {class_name}(int nNeighbors, int nClasses, double power, double[][] X, int[] y) {{
        this.nNeighbors = nNeighbors;
        this.nTemplates = y.length;
        this.nClasses = nClasses;
        this.power = power;
        this.X = X;
        this.y = y;
    }}

    private static class Neighbor {{
        Integer clazz;
        Double dist;
        public Neighbor(int clazz, double dist) {{
            this.clazz = clazz;
            this.dist = dist;
        }}
    }}

    {method}

    public static void main(String[] args) {{
        if (args.length == {n_features}) {{

            // Features:
            double[] features = new double[args.length];
            for (int i = 0, l = args.length; i < l; i++) {{
                features[i] = Double.parseDouble(args[i]);
            }}

            // Parameters:
            {X}
            {y}

            // Prediction:
            {class_name} clf = new {class_name}({n_neighbors}, {n_classes}, {power}, X, y);

            // Prediction:
            int estimation = clf.{method_name}(features);
            System.out.println(estimation);

        }}
    }}

}}