Faits:
Faits:
A. K._, ressortissant du Kosovo, né le 19 août 1967, a été arrêté le 6 janvier 2004 et placé en détention préventive le lendemain dans le cadre d'une procédure pénale ouverte contre lui le 1er octobre 2002 des chefs d'infraction à la loi fédérale sur les stupéfiants, éventuellement de blanchiment d'argent. Il lui est reproché d'avoir vendu, à Neuchâtel et à Marin, du début 2001 à la fin de l'automne 2002, une quantité indéterminée, mais au minimum 336 grammes, de cocaïne.
Le 3 février 2004, le Juge d'instruction de Neuchâtel a rejeté une demande de mise en liberté provisoire émanant de K._ en raison notamment d'un risque de collusion, tenant au fait que l'accusation reposait sur des déclarations à charge de plusieurs toxicomanes ou anciens toxicomanes qu'il devait entendre prochainement sans que le prévenu ne puisse intervenir. Celui-ci a recouru en vain contre cette décision auprès de la Chambre d'accusation du Tribunal cantonal du canton de Neuchâtel (ci-après: la Chambre d'accusation ou la cour cantonale), puis auprès du Tribunal fédéral; son recours de droit public a été rejeté par un arrêt rendu le 16 mars 2004 (1P.128/2004).
Le 25 mars 2004, le Juge d'instruction de Neuchâtel a entendu cinq consommateurs de cocaïne ayant mis en cause K._ et les a confrontés au prévenu. A l'issue de l'audience, celui-ci a requis sa libération immédiate. Le magistrat instructeur a rejeté cette requête par décision du 26 mars 2004, en raison des risques de fuite et de récidive. Par arrêt rendu le 21 avril 2004 sur recours de K._, la Chambre d'accusation a confirmé le maintien de la détention en se fondant exclusivement sur le danger de fuite présenté par le prévenu.
Le 25 mars 2004, le Juge d'instruction de Neuchâtel a entendu cinq consommateurs de cocaïne ayant mis en cause K._ et les a confrontés au prévenu. A l'issue de l'audience, celui-ci a requis sa libération immédiate. Le magistrat instructeur a rejeté cette requête par décision du 26 mars 2004, en raison des risques de fuite et de récidive. Par arrêt rendu le 21 avril 2004 sur recours de K._, la Chambre d'accusation a confirmé le maintien de la détention en se fondant exclusivement sur le danger de fuite présenté par le prévenu.
B. Agissant par la voie du recours de droit public pour violation des art. 10 al. 2, 31 Cst. et 5 CEDH, K._ demande au Tribunal fédéral d'annuler cet arrêt et d'ordonner sa mise en liberté immédiate. Il requiert l'assistance judiciaire.
La Chambre d'accusation s'en remet aux considérants de son arrêt. Le Ministère public du canton de Neuchâtel et le Juge d'instruction de Neuchâtel concluent au rejet du recours.
K._ a répliqué.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Le recours de droit public est formé contre un arrêt rendu en dernière instance cantonale (art. 86 al. 1 OJ). Le recourant est personnellement touché par l'arrêt attaqué qui confirme son maintien en détention préventive et a qualité pour recourir selon l'art. 88 OJ. Par exception à la nature cassatoire du recours de droit public, la conclusion tendant à sa mise en liberté immédiate est recevable (<ref-ruling> consid. 4b/aa p. 333).
1. Le recours de droit public est formé contre un arrêt rendu en dernière instance cantonale (art. 86 al. 1 OJ). Le recourant est personnellement touché par l'arrêt attaqué qui confirme son maintien en détention préventive et a qualité pour recourir selon l'art. 88 OJ. Par exception à la nature cassatoire du recours de droit public, la conclusion tendant à sa mise en liberté immédiate est recevable (<ref-ruling> consid. 4b/aa p. 333).
2. Une mesure de détention préventive est compatible avec la liberté personnelle, garantie par les art. 10 al. 2 Cst. et 5 CEDH, pour autant qu'elle repose sur une base légale, qu'elle réponde à un intérêt public et qu'elle respecte le principe de la proportionnalité (art. 31 al. 1 et 36 al. 1 à 3 Cst.; <ref-ruling> consid. 2c p. 270). S'agissant d'une restriction grave à la liberté personnelle, le Tribunal fédéral examine librement ces questions, sous réserve toutefois de l'appréciation des preuves, revue sous l'angle de l'arbitraire (<ref-ruling> consid. 2d p. 271).
A teneur de l'art. 117 al. 1 du Code de procédure pénale neuchâtelois (CPP neuch.), le juge d'instruction peut arrêter tout prévenu contre lequel il existe des présomptions sérieuses de culpabilité, si les circonstances font craindre qu'il n'abuse de sa liberté pour prendre la fuite, ou pour compromettre le résultat de l'information, ou pour poursuivre son activité délictueuse. En vertu de l'<ref-law> neuch., le juge d'instruction maintient l'arrestation, si les conditions prévues à l'article 117 sont remplies et s'il a été requis par le ministère public d'ouvrir une information contre le prévenu, dans les trois jours qui ont suivi l'arrestation provisoire. Selon l'<ref-law> neuch., le prévenu mis en détention préventive est relâché, si les motifs qui avaient nécessité son arrestation ont cessé d'exister et si la libération est justifiée par les circonstances.
A teneur de l'art. 117 al. 1 du Code de procédure pénale neuchâtelois (CPP neuch.), le juge d'instruction peut arrêter tout prévenu contre lequel il existe des présomptions sérieuses de culpabilité, si les circonstances font craindre qu'il n'abuse de sa liberté pour prendre la fuite, ou pour compromettre le résultat de l'information, ou pour poursuivre son activité délictueuse. En vertu de l'<ref-law> neuch., le juge d'instruction maintient l'arrestation, si les conditions prévues à l'article 117 sont remplies et s'il a été requis par le ministère public d'ouvrir une information contre le prévenu, dans les trois jours qui ont suivi l'arrestation provisoire. Selon l'<ref-law> neuch., le prévenu mis en détention préventive est relâché, si les motifs qui avaient nécessité son arrestation ont cessé d'exister et si la libération est justifiée par les circonstances.
3. Le recourant ne conteste ni la base légale de son maintien en détention, ni l'existence de présomptions suffisantes de culpabilité à son encontre. Il nie en revanche tout risque de fuite propre à justifier le refus de sa mise en liberté provisoire.
3.1 Selon la jurisprudence, le risque de fuite ne peut s'apprécier sur la seule base de la gravité de l'infraction même si, compte tenu de l'ensemble des circonstances, la perspective d'une longue peine privative de liberté permet souvent d'en présumer l'existence (<ref-ruling> consid. 3a p. 62 et les arrêts cités); il doit s'analyser en fonction d'un ensemble de critères tels que le caractère de l'intéressé, sa moralité, ses ressources, ses liens avec l'Etat qui le poursuit ainsi que ses contacts à l'étranger, qui font apparaître le risque de fuite non seulement possible, mais également probable (<ref-ruling> consid. 4 p. 70 et les arrêts cités). Par ailleurs, le prévenu a le droit d'être libéré s'il lui est possible de fournir des sûretés propres à garantir sa présence aux débats et, s'il y a lieu, sa soumission au jugement, lorsque l'incarcération n'a plus d'autre justification que le danger de fuite (<ref-law> neuch.; voir aussi, <ref-ruling> consid. 4a p. 187).
3.2 En l'espèce, K._ est notamment prévenu d'infraction grave à la loi fédérale sur les stupéfiants pour avoir vendu à une dizaine de consommateurs, du début 2001 à la fin de l'automne 2002, une quantité indéterminée, mais au minimum 336 grammes, de cocaïne, à un prix oscillant entre 110 et 130 francs le gramme. Si sa culpabilité devait être établie, il s'exposerait à une peine ferme de réclusion ou d'emprisonnement supérieure à une année, s'agissant d'un cas grave (art. 19 ch. 1 et 2 let. a et c LStup). Le risque que le recourant veuille échapper à une possible condamnation pénale par la fuite est donc relativement élevé.
Sur le plan personnel, K._ est arrivé en Suisse en 1987. Après avoir occupé différents emplois, il travaille depuis 1997 en tant que monteur-soudeur auprès de l'entreprise X._, à Lausanne, au bénéfice d'une autorisation de séjour et de travail annuelle. Il a épousé en 1992 une ressortissante italienne, mère d'une adolescente de dix-sept ans issue d'un précédent mariage. Il a un frère établi à Neuchâtel depuis plus de vingt ans, une soeur qui vit à Zurich et un oncle résidant à Aarau. Si K._ peut donc se prévaloir de solides attaches avec la Suisse, il ressort du dossier et, plus particulièrement, des écoutes téléphoniques, qu'il entretient des contacts réguliers avec les autres membres de sa famille qui vivent au Kosovo, où il est copropriétaire d'une maison occupée par sa mère ainsi que deux de ses frères et leurs épouses. Par ailleurs, sa situation financière n'est pas saine puisqu'il fait personnellement l'objet de poursuites et d'actes de défaut de biens pour un montant supérieur à 140'000 fr., selon l'extrait du registre des poursuites annexé à la demande d'assistance judiciaire formulée le 27 février 2004. Compte tenu de l'ensemble de ces circonstances, la Chambre d'accusation a à juste titre considéré que le recourant pourrait préférer regagner son pays d'origine, plutôt que devoir purger une peine privative de liberté supérieure à une année, quand bien même il n'a entrepris aucune démarche pour quitter la Suisse en dépit du fait qu'il savait faire l'objet d'une information pénale dès le 1er octobre 1992. Pour le surplus, K._ ne prétend pas qu'une mesure moins incisive que son maintien en détention serait de nature à pallier le risque de fuite retenu par la cour cantonale.
Sur le plan personnel, K._ est arrivé en Suisse en 1987. Après avoir occupé différents emplois, il travaille depuis 1997 en tant que monteur-soudeur auprès de l'entreprise X._, à Lausanne, au bénéfice d'une autorisation de séjour et de travail annuelle. Il a épousé en 1992 une ressortissante italienne, mère d'une adolescente de dix-sept ans issue d'un précédent mariage. Il a un frère établi à Neuchâtel depuis plus de vingt ans, une soeur qui vit à Zurich et un oncle résidant à Aarau. Si K._ peut donc se prévaloir de solides attaches avec la Suisse, il ressort du dossier et, plus particulièrement, des écoutes téléphoniques, qu'il entretient des contacts réguliers avec les autres membres de sa famille qui vivent au Kosovo, où il est copropriétaire d'une maison occupée par sa mère ainsi que deux de ses frères et leurs épouses. Par ailleurs, sa situation financière n'est pas saine puisqu'il fait personnellement l'objet de poursuites et d'actes de défaut de biens pour un montant supérieur à 140'000 fr., selon l'extrait du registre des poursuites annexé à la demande d'assistance judiciaire formulée le 27 février 2004. Compte tenu de l'ensemble de ces circonstances, la Chambre d'accusation a à juste titre considéré que le recourant pourrait préférer regagner son pays d'origine, plutôt que devoir purger une peine privative de liberté supérieure à une année, quand bien même il n'a entrepris aucune démarche pour quitter la Suisse en dépit du fait qu'il savait faire l'objet d'une information pénale dès le 1er octobre 1992. Pour le surplus, K._ ne prétend pas qu'une mesure moins incisive que son maintien en détention serait de nature à pallier le risque de fuite retenu par la cour cantonale.
4. Le recours doit par conséquent être rejeté au sens des considérants. Les conditions d'octroi de l'assistance judiciaire étant réunies, il y a lieu de statuer sans frais; Me Jämes Dällenbach est désigné comme défenseur d'office du recourant et une indemnité lui sera versée à titre d'honoraires par la caisse du Tribunal fédéral (art. 152 al. 2 OJ).

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
1. Le recours est rejeté.
2. Le recourant est mis au bénéfice de l'assistance judiciaire. Me Jämes Dällenbach est désigné comme défenseur d'office et une indemnité de 1'500 fr. lui est allouée à titre d'honoraires, à payer par la Caisse du Tribunal fédéral.
2. Le recourant est mis au bénéfice de l'assistance judiciaire. Me Jämes Dällenbach est désigné comme défenseur d'office et une indemnité de 1'500 fr. lui est allouée à titre d'honoraires, à payer par la Caisse du Tribunal fédéral.
3. Il n'est pas perçu d'émolument judiciaire.
3. Il n'est pas perçu d'émolument judiciaire.
4. Le présent arrêt est communiqué en copie au mandataire du recourant, au Juge d'instruction de Neuchâtel, ainsi qu'au Ministère public et à la Chambre d'accusation du Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 18 mai 2004
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le juge présidant: Le greffier: