diff --git a/src/main.rs b/src/main.rs
index 52c070d4f036364d85967750c203386476fae0ac..5673df18ea838cb4b125d2a9481a28930ff0a681 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -61,6 +61,7 @@ fn main() -> std::io::Result<()> {
     let header_line_length: usize = 64;
     writeln!(sparse_matrix_file, "{}", "x".repeat(header_line_length))?;
 
+    let mut num_nonzeros: usize = 0;
     let mut g_idx: usize = 0;
     loop {
         // dbg!(&g_idx);
@@ -82,6 +83,7 @@ fn main() -> std::io::Result<()> {
             };
             // TODO: Make the output lexicographically ordered? Strictly speaking this is not the SMS format right now.
             writeln!(sparse_matrix_file, "{} {} {}", dg_idx + 1, g_idx + 1, c)?;
+            num_nonzeros += 1;
 
             let cg_data: HashMap<UndirectedGraph, HashMap<usize, usize>> =
                 dg.contractions(&dg_edge_orbits);
@@ -113,9 +115,10 @@ fn main() -> std::io::Result<()> {
     writeln!(sparse_matrix_file, "{}", header_line)?;
 
     eprintln!(
-        "Matrix size: {} x {}",
+        "Sparse {} x {} matrix with {} non-zero entries",
         cocycle_differential_graphs.len(),
-        cocycle_graphs.len()
+        cocycle_graphs.len(),
+        num_nonzeros
     );
 
     // TODO: Also output the ordered bases of graphs.