import com.github.javaparser.StaticJavaParser;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.body.MethodDeclaration;

public class MainClassIdentifier {

    public static void main(String[] args) {
        if (args.length != 1) {
            System.err.println("Provide the Java code as a string argument.");
            return;
        }
    
        String javaCode = args[0];
        CompilationUnit cu = StaticJavaParser.parse(javaCode);
        String mainClassName = findMainClassName(cu);

        if (mainClassName != null) {
            System.out.print(mainClassName);
        } else {
            System.out.println("No main class found.");
        }
    }

    private static String findMainClassName(CompilationUnit cu) {
        for (ClassOrInterfaceDeclaration cls : cu.findAll(ClassOrInterfaceDeclaration.class)) {
            for (MethodDeclaration method : cls.getMethodsByName("main")) {
                if (method.isPublic() && method.isStatic() && method.getType().asString().equals("void")) {
                    return cls.getNameAsString();
                }
            }
        }
        return null;
    }
}
