I have two tables and columns as below

Product : Id, Name
Order : Id, ProductId, Name, CreatedDate

Now I want to do pagination of unique Product Id records.

Select P.Id As ProductId, P.Name As ProductName, O.Id As OrderId, O.Name As OrderName 
from Product P inner join O on P.Id = O.ProductId
ORDER BY P.Id    
OFFSET 0 ROWS    
FETCH NEXT 5 ROWS ONLY

Above query return result like below

ProductId | ProductName | OrderId | OrderName 

100       | ProductA    | 1001    | OrderA
100       | ProductA    | 1002    | OrderB
101       | ProductB    | 1011    | OrderC
101       | ProductB    | 1012    | OrderD
101       | ProductB    | 1013    | OrderE

this query not returning unique 5 productid records

I want result something like below which return 5 distinct product id on pagination

ProductId | ProductName | OrderId | OrderName 

100       | ProductA    | 1001    | OrderA
100       | ProductA    | 1002    | OrderB
101       | ProductB    | 1011    | OrderC
101       | ProductB    | 1012    | OrderD
101       | ProductB    | 1013    | OrderE
102       | ProductC    | 1021    | OrderF
103       | ProductD    | 1031    | OrderG
104       | ProductE    | 1041    | OrderH

I have tried to using Rownumber(), Rank() and Dense_Rank() but its not returning the expected result.
How can i get distinct records using pagination offset?