XML 35 R28.htm IDEA: XBRL DOCUMENT
v3.25.2

Earnings Per Share and Cash Dividends (Tables) | 6 Months Ended
--- | ---
Jul. 31, 2025
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 July 31, |  |  | Six Months Ended July 31, |
| 2025 |  |  | 2024 |  |  | 2025 |  |  | 2024 |
Weighted average common shares outstanding: |  |  |  |  |  |  |  |  |  |  |
Basic |  | 22,286 |  |  |  | 22,303 |  |  |  | 22,276 |  |  |  | 22,278 |
Effect of dilutive securities: |  |  |  |  |  |  |  |  |  |  |
Stock awards and options to purchase shares of common stock |  | 285 |  |  |  | 355 |  |  |  | 203 |  |  |  | 387 |
Diluted |  | 22,571 |  |  |  | 22,658 |  |  |  | 22,479 |  |  |  | 22,665 |

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