use std::env;
use std::fs::File;
use std::io::{BufRead, BufReader, Write};
fn main() {
let args: Vec<String> = env::args().collect();
let file = &args[1];
let pattern = &args[2];
let mut buffer = String::new();
let mut count = 0;
let mut line = String::new();
let mut linen = 0;
let f = File::open(file).unwrap();
let mut reader = BufReader::new(f);
let stdout = std::io::stdout();
let mut out = stdout.lock();
while reader.read_line(&mut line).unwrap() > 0 {
if line.contains(pattern) {
buffer.push_str(&(linen + 1).to_string()); buffer.push('\n'); count += 1;
if count == 64 { out.write_all(buffer.as_bytes()).unwrap(); buffer.clear(); count = 0; }
}
line.clear(); linen += 1;
}
if !buffer.is_empty() { out.write_all(buffer.as_bytes()).unwrap(); }
}