Faits:
Faits:
A. M._, ressortissante du Rwanda née en 1968, se trouve en détention préventive depuis le 2 juillet 2003, sous l'inculpation d'infraction à la LStup. Il lui est reproché d'avoir livré de la cocaïne, à vingt ou trente reprises, pour un total de 200 ou 300 grammes, dès février 2003.
La mise en liberté a été refusée par le Juge d'instruction du canton de Fribourg le 13 août 2003, en raison notamment du risque de fuite: la prévenue était arrivée en Suisse en 1999; elle bénéficiait, en tant que réfugiée, d'un permis B valable jusqu'au 4 avril 2004. Sa fille aînée, de quatorze ans, se trouvait en Suisse dans une famille d'accueil, alors que sa fille cadette, âgée de onze ans, vivait au Rwanda. Des confrontations devaient encore avoir lieu, de sorte qu'il existait également un risque de collusion.
Par arrêt du 27 août 2003, la Chambre pénale du Tribunal cantonal fribourgeois a rejeté le recours formé contre cette décision. Les soupçons de culpabilité étaient suffisants; l'intéressée était sans ressources ni situation professionnelle; elle s'était rendue plusieurs mois en Afrique en 2002, et son seul lien avec la Suisse était sa fille aînée.
Par arrêt du 27 août 2003, la Chambre pénale du Tribunal cantonal fribourgeois a rejeté le recours formé contre cette décision. Les soupçons de culpabilité étaient suffisants; l'intéressée était sans ressources ni situation professionnelle; elle s'était rendue plusieurs mois en Afrique en 2002, et son seul lien avec la Suisse était sa fille aînée.
B. Les 17 et 24 novembre 2003, le juge d'instruction a refusé la mise en liberté de M._, en retenant les risques de fuite et de collusion et en estimant que l'état de santé de la prévenue (atteinte d'une dépression sévère et du SIDA) ne s'opposait pas à sa détention, celle-ci ayant eu lieu depuis le 10 novembre 2003 dans des établissement hospitaliers.
Par arrêt du 10 décembre 2003, la Chambre pénale a confirmé l'existence du risque de fuite.
Par arrêt du 10 décembre 2003, la Chambre pénale a confirmé l'existence du risque de fuite.
C. M._ forme un recours de droit public, assorti d'une demande d'assistance judiciaire, contre ce dernier arrêt. Elle en demande l'annulation, et requiert sa mise en liberté immédiate.
La Chambre pénale n'a pas formulé d'observations. Le juge d'instruction se réfère à son ordonnance du 17 novembre 2003. Le Ministère public conclut au rejet du recours, pour autant que recevable. La recourante 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). La recourante, personnellement touchée par l'arrêt attaqué qui refuse sa mise en liberté provisoire, a qualité pour recourir selon l'art. 88 OJ. Par exception à la nature cassatoire du recours de droit public, la recourante peut conclure à sa mise en liberté immédiate (ATF 124 I 327 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). La recourante, personnellement touchée par l'arrêt attaqué qui refuse sa mise en liberté provisoire, a qualité pour recourir selon l'art. 88 OJ. Par exception à la nature cassatoire du recours de droit public, la recourante peut conclure à sa mise en liberté immédiate (ATF 124 I 327 consid. 4b/aa p. 333).
2. Une mesure de détention préventive n'est compatible avec la liberté personnelle, garantie par l'art. 10 al. 2 Cst. et par l'art. 5 CEDH, que si elle repose sur une base légale (art. 31 al. 1 et art. 36 al. 1 Cst.), soit en l'espèce l'art. 110 du code de procédure pénale fribourgeois (CPP/FR). Elle doit en outre correspondre à un intérêt public et respecter le principe de la proportionnalité (art. 36 al. 2 et 3 Cst.; art. 110 al. 2 CPP/FR; ATF 123 I 268 consid. 2c p. 270). Pour que tel soit le cas, la privation de liberté doit être justifiée par un risque de fuite, les besoins de l'instruction ou un danger de réitération (cf. art. 110 al. 1 let. a, b et c CPP/FR). La gravité de l'infraction - et l'importance de la peine encourue - n'est, à elle seule, pas suffisante (ATF 117 Ia 70 consid. 4a). Préalablement à ces conditions, il doit exister à l'égard de l'intéressé des charges suffisantes (art. 5 par. 1 let. c CEDH, art. 110 al. 1 CPP/FR; ATF 116 Ia 144 consid. 3). 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 restreint de l'arbitraire (ATF 123 I 268 consid. 2d p. 271). L'autorité cantonale dispose ainsi d'une grande liberté dans l'appréciation des faits (ATF 114 Ia 283 consid. 3, 112 Ia 162 consid. 3b).
2. Une mesure de détention préventive n'est compatible avec la liberté personnelle, garantie par l'art. 10 al. 2 Cst. et par l'art. 5 CEDH, que si elle repose sur une base légale (art. 31 al. 1 et art. 36 al. 1 Cst.), soit en l'espèce l'art. 110 du code de procédure pénale fribourgeois (CPP/FR). Elle doit en outre correspondre à un intérêt public et respecter le principe de la proportionnalité (art. 36 al. 2 et 3 Cst.; art. 110 al. 2 CPP/FR; ATF 123 I 268 consid. 2c p. 270). Pour que tel soit le cas, la privation de liberté doit être justifiée par un risque de fuite, les besoins de l'instruction ou un danger de réitération (cf. art. 110 al. 1 let. a, b et c CPP/FR). La gravité de l'infraction - et l'importance de la peine encourue - n'est, à elle seule, pas suffisante (ATF 117 Ia 70 consid. 4a). Préalablement à ces conditions, il doit exister à l'égard de l'intéressé des charges suffisantes (art. 5 par. 1 let. c CEDH, art. 110 al. 1 CPP/FR; ATF 116 Ia 144 consid. 3). 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 restreint de l'arbitraire (ATF 123 I 268 consid. 2d p. 271). L'autorité cantonale dispose ainsi d'une grande liberté dans l'appréciation des faits (ATF 114 Ia 283 consid. 3, 112 Ia 162 consid. 3b).
3. La recourante conteste l'existence d'un risque de fuite. La cour cantonale se serait fondée sur la seule absence de relation professionnelle. Elle aurait arbitrairement méconnu sa situation personnelle et mal apprécié la portée de certains faits. La recourante faisait état des atrocités qu'elle aurait subies en Ouganda et au Rwanda, où elle aurait été emprisonnée et violentée. Atteinte du SIDA, elle aurait pu s'enfuir en Suisse avec sa fille aînée, abandonnant sa cadette. C'est afin de pouvoir financer le voyage de cette dernière que la recourante aurait vendu de la drogue. Le voyage en Afrique en 2002 avait pour but de retrouver sa fille, et on ne saurait y voir un indice à l'appui du risque de fuite. En cas de fuite dans un pays tiers, elle ne verrait plus aucune de ses filles et risquerait de connaître des ennuis graves de santé, en raison de l'infection HIV à un stade avancé. Sous l'angle de la peine encourue, la recourante relève que le représentant du Ministère public aurait indiqué pouvoir requérir 24 mois de réclusion. Compte tenu des mobiles de la recourante, de son état de santé et du chiffre d'affaires réalisé, une peine sensiblement réduite pourrait être prononcée
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 (ATF 125 I 60 consid. 3a p. 62); 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 (ATF 117 Ia 69 consid. 4 et les arrêts cités).
3.2 Contrairement à ce que soutient la recourante, les éléments sur lesquels la cour cantonale s'est fondée apparaissent comme des critères déterminants. Pour savoir s'il existe un lien suffisant avec la Suisse, l'autorité doit d'abord s'interroger sur l'existence de relations familiales et professionnelles avec ce pays. En l'occurrence, la recourante est célibataire, arrivée en Suisse en 1999 où elle a obtenu le statut de réfugiée, assorti d'un permis B; sans aucune activité professionnelle, elle bénéficie d'une aide sociale du canton de Berne, de 600 fr. par mois. Seule sa fille aînée se trouve en Suisse, dans une famille d'accueil à Winnigen (BE); la recourante tente de démontrer qu'elle se trouverait mieux en Suisse qu'au Rwanda ou en Ouganda, pays où elle a subi diverses atrocités. Ses possibilités de fuite ne sont toutefois pas limitées à ces deux pays; par ailleurs, la situation, déjà précaire, de la recourante en Suisse, s'est encore dégradée en raison de la procédure pénale dont elle fait l'objet, et de ses conséquences possibles, en particulier sur le plan administratif. On peut aussi relever, à l'instar de la cour cantonale, que l'attitude de la recourante n'est pas dénuée d'ambiguïté puisque, d'une part, elle prétend craindre un retour en Afrique et que, d'autre part, elle y a séjourné plusieurs mois en 2002. De plus, elle clame son angoisse d'avoir laissé sa fille cadette au Rwanda, ce qui pourrait constituer une motivation supplémentaire de quitter la Suisse. Ce sont là autant d'éléments suffisants pour affirmer l'existence d'un risque concret de fuite. L'arrêt attaqué ne souffre, sur ce point, d'aucun arbitraire, et ne viole pas non plus la garantie de la liberté personnelle.
3.3 La recourante invoque enfin les principes de proportionnalité et de subsidiarité, concrétisés par l'art. 110 al. 1 CPP/FR. Elle reproche aux instances cantonales de n'avoir pas examiné la possibilité d'une mesure moins sévère telle que la saisie de documents ou un contrôle judiciaire. Toutefois, comme le relève la recourante elle-même, l'argument est soulevé pour la première fois devant le Tribunal fédéral. Certes, un nouveau moyen est recevable à l'encontre d'une autorité disposant d'un libre pouvoir d'examen et censée appliquer le droit d'office, comme cela semble être le cas de la cour cantonale (art. 116 et 206 CPP/FR). Le grief ainsi soulevé doit toutefois être suffisamment motivé (art. 90 al. 1 let. b OJ). En l'occurrence, si la recourante tient la mesure de détention pour disproportionnée, il lui appartenait de fournir une démonstration à ce propos, en indiquant une mesure de substitution adéquate, et en démontrant son effet dissuasif. Or, la recourante se contente de reprocher à la Chambre pénale de ne pas avoir examiné la possibilité d'une mesure moins sévère. Le grief n'est donc pas motivé sur le fond, ce qui entraîne son irrecevabilité.
3.3 La recourante invoque enfin les principes de proportionnalité et de subsidiarité, concrétisés par l'art. 110 al. 1 CPP/FR. Elle reproche aux instances cantonales de n'avoir pas examiné la possibilité d'une mesure moins sévère telle que la saisie de documents ou un contrôle judiciaire. Toutefois, comme le relève la recourante elle-même, l'argument est soulevé pour la première fois devant le Tribunal fédéral. Certes, un nouveau moyen est recevable à l'encontre d'une autorité disposant d'un libre pouvoir d'examen et censée appliquer le droit d'office, comme cela semble être le cas de la cour cantonale (art. 116 et 206 CPP/FR). Le grief ainsi soulevé doit toutefois être suffisamment motivé (art. 90 al. 1 let. b OJ). En l'occurrence, si la recourante tient la mesure de détention pour disproportionnée, il lui appartenait de fournir une démonstration à ce propos, en indiquant une mesure de substitution adéquate, et en démontrant son effet dissuasif. Or, la recourante se contente de reprocher à la Chambre pénale de ne pas avoir examiné la possibilité d'une mesure moins sévère. Le grief n'est donc pas motivé sur le fond, ce qui entraîne son irrecevabilité.
4. Sur le vu de ce qui précède, le recours de droit public doit être rejeté, dans la mesure où il est recevable. Les conditions d'octroi de l'assistance judiciaire étant réunies, Me André Clerc est désigné comme défenseur d'office de la recourante, et rétribué par la caisse du Tribunal fédéral. Il n'est pas perçu d'émolument judiciaire.
Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté dans la mesure où il est recevable.
1. Le recours est rejeté dans la mesure où il est recevable.
2. Le demande d'assistance judiciaire est admise; Me André Clerc est désigné comme défenseur d'office et une indemnité de 1500 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral.
2. Le demande d'assistance judiciaire est admise; Me André Clerc est désigné comme défenseur d'office et une indemnité de 1500 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 de la recourante, au Juge d'instruction, au Ministère public et à la Chambre pénale du Tribunal cantonal du canton de Fribourg.
Lausanne, le 16 février 2004
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le président: Le greffier: