
Michael Yardy anchored Sussex 's 355 for eight with an unbeaten hundred which spanned almost the whole of the first day against Kent at Hove . The stoic left-hander came in to face the second ball of this Liverpool Victoria Division One match - after Sussex had lost Richard Montgomerie for nought - and remained an immovable object until stumps . Yardy ( 126 not out ) faced 298 balls and managed 13 fours - his watchfulness a necessary foil to the shot-makers who came and went around him , notable among whom was Murray Goodwin ( 82 ) for his domination of a third-wicket stand of 141 . The hosts , who chose to bat first on a sunny morning , closed day one already in possession of four of the seven points they need from this fixture to usurp Lancashire at the top of the table . But as championship cricket returned following the mid-summer Twenty20 break , they could hardly have got off to a worse start when Montgomerie went lbw pushing forward to Amjad Khan . The Kent fast bowler thought he had struck again three balls later , but this time Yardy survived on nought despite a significant appeal for caught behind . He remained in situ on an even batting surface for another six-and-a-half hours , having been heavily outscored in his 29-over association with Goodwin who hit 11 fours and a six in a fluent 108-ball stay . After South Africa seamer Tyron Henderson had opener Carl Hopkinson lbw padding up for a maiden championship wicket , Goodwin was initially circumspect . But the Zimbabwean gradually took the initiative either side of lunch with a clutch of crisp drives down the ground and good runs square of the wicket as well . With Yardy content to continue at his own unhurried tempo , though , Goodwin eventually paid for his adventure . Two balls after hitting Min Patel for a straight six , he again went down the wicket and was unable to regain his ground when the slow left-armer pushed the ball wider and flatter . Chris Adams and Matthew Prior both went cheaply , the captain lbw offering no stroke to Khan and the wicket-keeper becoming Dwayne Bravo 's first championship victim when he plonked a drive straight to short extra-cover . When Luke Wright somehow propelled an abortive leg-side thrash at Patel only as far as short mid-off to go for a duck Sussex had lost four wickets for only 44 runs . Yardy was unperturbed , however and - as the likes of Yasir Arafat and Ollie Rayner took transient responsibility for the run rate in a series of handy late-order stands - he inched into three figures by midway through the evening session . Along the way , there was plenty of lapping and sweeping of spinners Patel and James Tredwell as well as canny placement of pace and the occasional full-blooded pull . Yardy 's ritual and plentiful movement in the crease against the seamers resulted only in conspicuous strokelessness for long periods once the ball arrived . But when the loose deliveries came his way they were regularly dispatched as he continued his unfussy accumulation . His innings will rarely have anyone on the edge of their Hove deckchairs . Even so this second hundred of an injury-interrupted season could yet prove a springboard for Sussex as they go in search of championship title number two in the second half of the summer . Liverpool Victoria County Championship Division One Sussex v. Kent Hove : Thursday 13 July 2006 ( day 1 of 4 ) Toss : Sussex won the toss and elected to bat Umpires : V A Holder , R A Kettleborough Sussex First innings RR Montgomerie lbw b Khan 0 CD Hopkinson lbw b Henderson 20 MH Yardy not out 126 MW Goodwin st O'Brien b Patel 82 *CJ Adams lbw b Khan 3 +MJ Prior c Tredwell b Bravo 15 LJ Wright c Key b Patel 0 Yasir Arafat c Stevens b Patel 31 OP Rayner st O'Brien b Tredwell 23 RJ Kirtley not out 22 Extras ( b 5 , lb 14 , nb 12 , w 2 ) 33 Total for 8 wkt ( 104 overs ) 355 To bat : JD Lewry Fall of Wickets : 1-0 ( 0 RR Montgomerie ) , 2-39 ( 39 CD Hopkinson , 45 mins ) , 3-180 ( 141 MW Goodwin , 143 mins ) , 4-199 ( 19 CJ Adams , 14 mins ) , 5-223 ( 24 MJ Prior , 25 mins ) , 6-224 ( 1 LJ Wright , 2 mins ) , 7-268 ( 44 Yasir Arafat , 49 mins ) , 8-308 ( 40 OP Rayner , 32 mins ) Bowling A Khan 20 3 57 2 T Henderson 20 4 57 1 DJ Bravo 16 1 74 1 DI Stevens 3 0 14 0 JC Tredwell 16 1 52 1 MM Patel 29 4 82 3 Sussex : R R Montgomerie , C D Hopkinson , M H Yardy , M W Goodwin , C J Adams , M J Prior , O P Rayner , L J Wright , Yasir Arafat , R J Kirtley , J D Lewry Kent : R W T Key , D P Fulton , M van Jaarsveld , M J Walker , D I Stevens , D J Bravo , J C Tredwell , N J O'Brien , T Henderson , M M Patel , A Khan 