#!/usr/bin/env tclsh9.0 proc issafe {report} { set decrease 0; set increase 0 set curr [lindex $report 0] foreach value [lrange $report 1 end] { if {$value > $curr} {set increase 1} if {$value < $curr} {set decrease 1} set dist [expr {abs($value - $curr)}] if {$dist < 1 || $dist > 3} { return 0 } set curr $value } if {$increase && $decrease} {return 0} return 1 } proc check {report} { if {[issafe $report]} {return 1} for {set i 0} {$i < [llength $report]} {incr i} { if {[issafe [lreplace $report $i $i]]} {return 1} } return 0 } set count 0 while {[gets stdin line] >= 0} { if {$line eq ""} continue set report [split $line " "] if {[check $report]} {incr count} } puts $count