import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;

public class BacaUrunya {
    public static void main(String[] args) throws Exception {
        // seq menghasilkan 30000 baris (±168 KB), jauh melebihi kapasitas pipa.
        Process anak = new ProcessBuilder("/bin/sh", "-c", "seq 1 30000").start();

        BufferedReader pembaca = new BufferedReader(
                new InputStreamReader(anak.getInputStream(), StandardCharsets.UTF_8));

        long total = 0;
        int baris = 0;
        String awal = null, akhir = null;
        String barisSekarang;
        while ((barisSekarang = pembaca.readLine()) != null) {
            total += Long.parseLong(barisSekarang);
            if (awal == null) awal = barisSekarang;
            akhir = barisSekarang;
            baris++;
        }
        int keluar = anak.waitFor();   // aman: seluruh output sudah terbaca

        System.out.println("jumlah baris : " + baris);
        System.out.println("awal / akhir : " + awal + " / " + akhir);
        System.out.println("total        : " + total);
        System.out.println("exit code    : " + keluar);
    }
}
