XML 33 R26.htm IDEA: XBRL DOCUMENT
v3.26.1

Earnings Per Share and Cash Dividends (Tables) | 3 Months Ended
--- | ---
Apr. 30, 2026
Earnings Per Share [Abstract] |
Schedule of Number of Shares Used in Calculating Basic and Diluted Earnings Per Share | The number of shares used in calculating basic and diluted earnings per share is as follows (in thousands):
| Three Months Ended April 30, |
| 2026 |  |  | 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 |

X
- References No definition available. + Details
Name: | us-gaap_EarningsPerShareAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit). + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 260 -SubTopic 10 -Section 50 -Paragraph 1 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1 + Details
Name: | us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration