can anyone help me out of this please
package com.codegym.task.task19.task1918;
/*
Introducing tags
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
BufferedReader reader1 = new BufferedReader(new FileReader(fileName));
String s;
StringBuilder sb = new StringBuilder();
while ((s = reader1.readLine()) != null){
sb.append(s);
sb.append("\n");
}
int i = -1;
int j = 0;
Matcher m1 = Pattern.compile("<[ \\n\\r]*"+args[0]).matcher(sb);
Matcher m2 = Pattern.compile("<[ \\n\\r]*/[ \\n\\r]*"+args[0]+"[ \\n\\r]*>").matcher(sb);
while (m1.find(i+1)){
i = m1.start();
j = i;
while (m2.find(j+1)){
j = m2.end();
String s1 = sb.substring(i, j);
int a = 0, b = 0;
Matcher m3 = Pattern.compile("<[ \\r\\n]*[^<>]+>").matcher(s1);
Matcher m4 = Pattern.compile("<([ \\n\\r])*(/)([ \\n\\r])*[^<>]+>").matcher(s1);
while (m3.find()){
a++;
}
while (m4.find()){
b++;
}
if(a == b){
System.out.println(s1);
break;
}
}
}
reader1.close();
//System.out.println(sb.toString());
}
}