v3.26.1
Earnings Per Share and Cash Dividends - Schedule of Number of Shares Used in Calculating Basic and Diluted Earnings Per Share (Details) - shares
shares in Thousands
3 Months Ended
Apr. 30, 2026
Apr. 30, 2025
Weighted average common shares outstanding:    
Basic 22,191 22,267
Effect of dilutive securities:    
Stock awards and options to purchase shares of common stock 635 232
Diluted 22,826 22,499